在-Docker-容器中运行-Elasticsearch-和-Cerebro

43次阅读

共计 2410 个字符,预计需要花费 7 分钟才能阅读完成。

接上篇:Elasticsearch 7.x 的安装与简单配置(阿里云 Ubuntu)

Cerebro 是一个使用 Scala,Play Framework,AngularJS 和 Bootstrap 构建的开源(MIT 许可)elasticsearch web 管理工具。

系统环境

  • 操作系统:Ubuntu 18.04 LTS(阿里云)
  • 系统 IP
# 内网,私有地址
172. 内. 内. 内
# 外网,公有地址
112. 外. 外. 外 
  • Elasticsearch 版本:7.2
  • Docker 版本:18.09
  • Cerebro 版本: 0.8.3

安装

  • cerebro github: https://github.com/lmenezes/c…
  • 安装 docker
$ sudo apt install docker
# 将当前用户加入 docker 组,避免 root 权限运行 docker 命令
$ sudo usermod -aG docker ${USER}
$ docker --version
Docker version 18.09.7, build 2d0083d
  • 安装 docker.io
$ sudo apt install docker.io
  • 安装 docker-compose
$ sudo apt install docker-compose
$ docker-compose --version
docker-compose version 1.17.1, build unknown

配置 docker 镜像加速器

  • 阿里云控制台 -> 产品与服务 -> 弹性计算 -> 容器镜像服务

创建并启动 docker 容器

  • 将 docker-compose.yaml 保持到 Ubuntu 本地目录,内容如下,对原课程 github 上的文件有微调
  • 课程 docker-compose.yaml
# docker-compose.yaml
version: '2.2'
services:
  cerebro:
    image: lmenezes/cerebro:0.8.4
    container_name: cerebro
    ports:
      - "9000:9000"
    command:
      - -Dhosts.0.host=http://elasticsearch:9200
    networks:
      - es72net
  kibana:
    image: kibana:7.2.0
    container_name: kibana72
    environment:
      #- I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
    networks:
      - es72net
  elasticsearch:
    image: elasticsearch:7.2.0
    container_name: es72_01
    environment:
      - cluster.name=geektime
      - node.name=es72_01
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es72_01,es72_02
      #- network.publish_host=elasticsearch
      - cluster.initial_master_nodes=es72_01,es72_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es72data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - es72net
  elasticsearch2:
    image: elasticsearch:7.2.0
    container_name: es72_02
    environment:
      - cluster.name=geektime
      - node.name=es72_02
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es72_01,es72_02
      #- network.publish_host=elasticsearch
      - cluster.initial_master_nodes=es72_01,es72_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es72data2:/usr/share/elasticsearch/data
    networks:
      - es72net

volumes:
  es72data1:
    driver: local
  es72data2:
    driver: local

networks:
  es72net:
    driver: bridge
  • 在 docker-compose.yaml 所在目录运行以下命令,创建并启动容器
$ docker-compose up

安全组端口

  • 本文涉及应该放行的安全组端口有 3 个
elasticsearch: 9200
kibana: 5601
cerebro: 9000

结果查看

  • elasticsearch
# url
http://112. 外. 外. 外:9200/_cat/health?v
# 页面内容
epoch      timestamp cluster  status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1565407420 03:23:40  geektime green           2         2      2   1    0    0        0             0                  -                100.0%
  • kibana 可以把测试数据加上
# url
http://112. 外. 外. 外:5601

  • cerebro
# url
http://112. 外. 外. 外:9000


本文是阮一鸣《Elasticsearch 核心技术与实战》的学习笔记。

正文完
 0