网站首页 > 技术文章 正文
简述
这里我们使用docker-compose快速搭建:cerebro+kibana+2节点elasticsearch
并在最后附上我搭建过程中遇到的问题。可供参考。
docker-compose.yaml 配置文件
cerebro+kibana+2节点elasticsearch
[root@localhost bin]# touch docker-compose.yaml [root@localhost bin]# vi docker-compose.yaml version: '2.2' services: cerebro: image: lmenezes/cerebro:0.8.3 container_name: cerebro ports: - "9000:9000" command: - -Dhosts.0.host=http://es7_01:9200 networks: - es7net kibana: image: docker.io/kibana:7.1.0 container_name: kibana7 environment: - I18N_LOCALE=zh-CN - XPACK_GRAPH_ENABLED=true - TIMELION_ENABLED=true - XPACK_MONITORING_COLLECTION_ENABLED="true" ports: - "5601:5601" networks: - es7net elasticsearch: image: docker.io/elasticsearch:7.3.2 container_name: es7_01 environment: - cluster.name=geektime - node.name=es7_01 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es7_01,es7_02 - cluster.initial_master_nodes=es7_01,es7_02 ulimits: memlock: soft: -1 hard: -1 volumes: - es7data1:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - es7net elasticsearch2: image: docker.io/elasticsearch:7.3.2 container_name: es7_02 environment: - cluster.name=geektime - node.name=es7_02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - discovery.seed_hosts=es7_01,es7_02 - cluster.initial_master_nodes=es7_01,es7_02 ulimits: memlock: soft: -1 hard: -1 volumes: - es7data2:/usr/share/elasticsearch/data networks: - es7net volumes: es7data1: driver: local es7data2: driver: local networks: es7net: driver: bridge [root@localhost bin]#
启动容器
[root@localhost bin]# ll -rw-r--r--. 1 root root 1600 9月 24 17:18 docker-compose.yaml [root@localhost bin]# docker-compose up > log.txt Starting es7_01 ... done Starting cerebro ... done Starting kibana7 ... done Starting es7_02 ... done
如果启动成功,会显示以上内容,并把启动日志保存到当前目录的log.txt中。(注意:这里不要使用ctrl+c退出窗口,否则容器都会stop,新开一个命令行窗口)
在另一个命令行窗口查看运行状态:
[root@localhost bin]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9ea1ee424001 docker.io/elasticsearch:7.3.2 "/usr/local/bin/do..." 22 minutes ago Up 12 minutes 9200/tcp, 9300/tcp es7_02 3704143fe6cd docker.io/kibana:7.1.0 "/usr/local/bin/ki..." 22 minutes ago Up 12 minutes 0.0.0.0:5601->5601/tcp kibana7 5ce37aebf865 lmenezes/cerebro:0.8.3 "/opt/cerebro/bin/..." 22 minutes ago Up 12 minutes 0.0.0.0:9000->9000/tcp cerebro 5f046e5a2a52 docker.io/elasticsearch:7.3.2 "/usr/local/bin/do..." 22 minutes ago Up 12 minutes 0.0.0.0:9200->9200/tcp, 9300/tcp es7_01 ##容器名称
检查es运行状态:
[root@localhost bin]# curl http://localhost:9200 { "name" : "es7_01", "cluster_name" : "geektime", "cluster_uuid" : "vjTBSm4NT3yZoshs2OFbBA", "version" : { "number" : "7.3.2", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "1c1faf1", "build_date" : "2019-09-06T14:40:30.409026Z", "build_snapshot" : false, "lucene_version" : "8.1.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
es7_01容器中运行Elasticsearch端口为9200。由于我们在docker-compose.yaml中,把es7_01容器中的9200端口映射到本机的9200端口上。
所以上面我们使用curl http://localhost:9200可以访问到Elasticsearch服务。
使用cerebro访问Elasticsearch
cerebro是Elasticsearch的可视化客户端,使用docker ps 我们能看到cerebro端口为:9000
[root@localhost bin]# docker ps | grep cerebro 5ce37aebf865 lmenezes/cerebro:0.8.3 "/opt/cerebro/bin/..." 30 minutes ago Up 20 minutes 0.0.0.0:9000->9000/tcp cerebro
访问http://localhost:9000
点击进来之后,我看到的是:
查看当前docker服务器ip和容器中对外暴露端口 的工具
说明:这个对于搭建Elasticsearch不是必须的。
我的使用场景是:由于我是window电脑,我在vm ware虚拟机中安装了centos mini系统,并在此centos系统中安装了docker。
由于centos是最简版的——没有图形界面,没有浏览器。所以我使用以下工具——dockerhostip.sh,来快速查看centos虚拟机的当前ip和docker端口号。
以便我能快速复制出来虚拟机的ip和docker容器的端口,快速在window浏览器上访问。
[root@localhost bin]# touch dockerhostip.sh [root@localhost bin]# vi dockerhostip.sh echo '=============================================' echo '当前centos虚拟机ip:' hostname -I | awk -F ' ' '{print $1}' echo '' count=`docker ps -q | wc -l` if [ $count -gt '0' ];then docker ps --format='{{.Names}} {{.Ports}}' | sed -s "s/0.0.0.0/`hostname -I | awk -F ' ' '{print $1}'`/g" else echo 'No container is running....' fi echo '=============================================' [root@localhost bin]# chmod +x dockerhostip.sh ## 运行dockerhostip.sh查看输出: [root@localhost bin]# dockerhostip.sh ============================================= 当前ip: 192.168.xxx.xxx ##这里是备注:这里使用xxx.xxx来脱敏ip了。 es7_02 9200/tcp, 9300/tcp kibana7 192.168.xxx.xxx:5601->5601/tcp cerebro 192.168.xxx.xxx:9000->9000/tcp es7_01 192.168.xxx.xxx:9200->9200/tcp, 9300/tcp =============================================
这里我直接在window浏览器中输入http://192.168.xxx.xxx:9000就能直接访问cerebro了。
报错及解决
一、docker-compose up -d 启动时报错:
exec: "docker-proxy": executable file not found in $PATH
解决:https://www.cnblogs.com/cxbhakim/p/9149596.html
解决之后,再次使用docker-compose up -d 报错:
failed: port is already allocated
原因:docker-proxy报错时,此时端口号已经分配了,所以这里要重新启动一下docker服务器。重启后,ok
二、[36mes7_01 |[0m [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
启动一会之后,查看docker ps 发现es的容器都停止了。
查看日志发现报错信息:
[36mes7_01 |[0m [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改:修改方案参考
查看当前vm.max_map_count 配置:
grep vm.max_map_count /etc/sysctl.conf
修改配置:
sysctl -w vm.max_map_count=262144
重新启动容器:
docker-compose up
一段时间后,查看es,仍在运行。
猜你喜欢
- 2024-10-19 Skywalking环境搭建 skywalking client js
- 2024-10-19 Docker部署各种服务 docker部署项目的两种方式
- 2024-10-19 技术学习1:elasticsearch elasticsearch基础教程
- 2024-10-19 Kafka与容器化:Docker与Kubernetes集成
- 2024-10-19 (Elasticsearch+Filebeat+Kibana)K8s集群日志平台EFK搭建Demo
- 2024-10-19 Filebeat on k8s 日志采集实战操作
- 2024-10-19 Docker部署SkyWalking+ElasticSearch+Agent
- 2024-10-19 搭建EFK(elasticsearch + fluentd + kibana)日志系统
- 2024-10-19 Docker部署单点ElasticSearch docker build 点
- 2024-10-19 kubernetes-4:阿里云上创建容器镜像服务
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)