Docker安装ElasticSearch7.1.0 + Kibana

ElasticSearch是这两年非常流行的搜索引擎+数据库解决方案;ES具有可扩展、易于多语言操作等优势。Docker是云生态下流行的即开即用技术工具。本文简单介绍下利用docker搭建ES集群的过程。

参考文档

  1. Docker集群部署—单机多容器实例
  2. Docker中Kibana安装
1. Docker拉取ES镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.0
2. 启动

启动master

docker run -d -p 9200:9200 -p 9300:9300 --name elas1 -h elas1  -e cluster.name=xxx-es -e cluster.initial_master_nodes=elas1 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e xpack.security.enabled=false docker.elastic.co/elasticsearch/elasticsearch:7.1.0

报错1

max virtual memory areas vm.max_map_count [65530] is too low

查下来提示是母机操作系统参数设置太小,更改/etc/sysctl.conf中的参数。

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

报错2

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

7.1.0版本启动时需要加上日志里面提供的3个参数之一;这里我加上cluster.initial_master_nodes这个。

启动slave1 和 slave2两个节点

docker run -d -p 9211:9200 -p 9311:9300 --link elas1  --name elas2 -e cluster.name=xxx-es -e cluster.initial_master_nodes=elas1 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e xpack.security.enabled=false -e discovery.zen.ping.unicast.hosts=elas1 docker.elastic.co/elasticsearch/elasticsearch:7.1.0
docker run -d -p 9222:9200 -p 9322:9300 --link elas1  --name elas3 -e cluster.name=xxx-es -e cluster.initial_master_nodes=elas1 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e xpack.security.enabled=false -e discovery.zen.ping.unicast.hosts=elas1 docker.elastic.co/elasticsearch/elasticsearch:7.1.0
3.安装Kibana
docker run -d --name kibana  --link elas1 -e ELASTICSEARCH_HOSTS=http://elas1:9200 -p 5601:5601 docker.elastic.co/kibana/kibana:7.1.0

在启动kibana容器失败后查看日志,发现有一个没法路由的地址elasticsearch,怀疑是启动参数的问题,终于在中文版的栈溢出网站找到了原因,因为新版本的ES更改了环境变量名字为ELASTICSEARCH_HOSTS。更新后重新拉起容器即可。

{"type":"log","@timestamp":"2019-06-25T13:56:10Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"}
    {"type":"log","@timestamp":"2019-06-25T13:56:10Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
    {"type":"log","@timestamp":"2019-06-25T13:56:10Z","tags":["warning","task_manager"],"pid":1,"message":"PollError No Living connections"}
4. 验证(略)
curl http://localhost:9200/_cat/health?v
以下是在Docker安装ElasticsearchKibana的步骤: 1. 安装DockerDocker Compose 2. 创建一个文件夹并在其中创建一个名为docker-compose.yml的文件 3.docker-compose.yml文件中添加以下内容: ``` version: '3' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 container_name: es01 environment: - node.name=es01 - discovery.seed_hosts=es02 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - esnet es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 container_name: es02 environment: - node.name=es02 - discovery.seed_hosts=es01 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata02:/usr/share/elasticsearch/data networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:7.15.1 container_name: kibana environment: ELASTICSEARCH_URL: http://es01:9200 ports: - 5601:5601 networks: - esnet volumes: esdata01: driver: local esdata02: driver: local networks: esnet: ``` 4. 保存并关闭文件 5. 在终端中导航到该文件夹并运行以下命令: ``` docker-compose up -d ``` 6. 等待一段时间,直到所有容器都启动并运行 7. 打开浏览器并输入以下地址来访问Kibana: ``` http://localhost:5601 ``` 8. 你现在可以开始使用ElasticsearchKibana进行数据分析和可视化了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值