好久不给大家写脚本了,波哥是真的忙。但是还不能给大家透露再忙什么。不过相信波哥的这次选择会在不久的将来给大家带来更多更精彩的内容。
转眼2021了。时间过得真快,那段过年后被居家隔离的日子视乎就在昨天。天天在家闷到发臭,头不洗,胡子也不刮,蓬头垢面的盼着疫情赶快过去。现在想想又似乎是最快乐的时光,那是大学毕业之后第一次在家过元宵节。家门出不去只能一家人天天在家玩牌。真的好久没有那种感觉了!
2020还是有很多值得总结的,相信各位关注波哥的老朋友应该能察觉到,就是在这一年,波哥的公众号接了第一个广告。这个跟钱其实没多大关系,那一刻还是略有感动。2019年4月份开始写公众号,20个月中从文章、架构、脚本到自己开发全栈工具、再到录制各类教学视频。
波哥一路的坚持,也感谢各位的陪伴,我也在不断的勾勒着未来。以后可能会从更宏观的角度来分享关于IT的内容。
说的有点多,还是进入到今天的正题吧!
######################################
网上有不少关于elk集群的文章,但是都是二进制部署的文章,当然也有容器部署的。但是也都是一台机器拉起来的伪集群。
波哥抽了点时间做了一套可跨机器的docker部署的真集群,版本采用最新的7.9,带账号认证。
案例中的三台机器:
192.168.77.14
192.168.77.15
192.168.77.16
分别安装docker和docker_compose
三个节点都创建 /data/elasticsearch/data目录,将elastic-certificates.p12证书上传到目录中。
目录赋权限chmod -R 777 /data/elasticsearch
将yaml文件放到/data目录解压
接下来给大家介绍一下yaml文件中需要替换的变量:
主节点
node.name=elasticsearch
其他节点分别为:
node.name=es02
node.name=es03
discovery.seed_hosts=节点1IP,节点2IP,节点3IP
network.publish_host=节点IP
"ES_JAVA_OPTS=-Xms10g -Xmx10g" 这个可以根据服务器情况调整内容值。
代码语言:javascript复制 environment:
- discovery.zen.minimum_master_nodes=2
- bootstrap.memory_lock=true
- node.name=elasticsearch
- node.master=true
- node.data=true
- http.cors.enabled=true
- http.cors.allow-origin="*"
- http.cors.allow-headers=Authorization,X-Requested-With,Content-Length,Content-Type
- cluster.name=es-docker-cluster
- discovery.seed_hosts=192.168.77.14:9300,192.168.77.15:9300,192.168.77.16:9300
- discovery.zen.fd.ping_timeout=1m
- discovery.zen.fd.ping_retries=5
- network.publish_host=192.168.77.14
- cluster.initial_master_nodes=elasticsearch,es02,es03
- cluster.routing.allocation.cluster_concurrent_rebalance=32
- cluster.routing.allocation.node_concurrent_recoveries=32
- cluster.routing.allocation.node_initial_primaries_recoveries=32
- "ES_JAVA_OPTS=-Xms10g -Xmx10g"
# - action.destructive_requires_name=true
# - action.auto_create_index=.security,.monitoring*,.watches,.triggered_watches,.watcher-history*
- xpack.security.enabled=true
- xpack.license.self_generated.type=basic
#- xpack.security.authc.accept_default_password=true
- xpack.security.transport.ssl.enabled=true
- xpack.ml.enabled=true
- xpack.security.transport.ssl.verification_mode=certificate
- xpack.security.transport.ssl.keystore.path=/usr/share/elasticsearch/data/elastic-certificates.p12
- xpack.security.transport.ssl.truststore.path=/usr/share/elasticsearch/data/elastic-certificates.p12
- network.host=0.0.0.0
其他节点类似上面的配置:
分别拉起三个节点的es容器:
docker-compose -f elkMain.yaml up
主节点进入es容器:
docker exec -it elasticsearch /bin/bash
生产账号密码;
./bin/elasticsearch-setup-passwords auto
这个生成的密码要记住了奥。
elastic这个账号是最高权限的。
######################################
主节点部署:logstash,kibana
主节点: mkdir -p /data/logstash
logstash修改红色密码:
代码语言:javascript复制 - xpack.monitoring.elasticsearch.password="9NxTijtJTtY43nRpx5gu"
kibana修改红色密码:
代码语言:javascript复制ELASTICSEARCH_PASSWORD: "PwgIEHctaLAPanhdP2Jw"
再次拉起logstash,kibana
重新启动一下:logstash,kibana容器
然后就可以访问了kibana:
https://节点1IP:5601
elasticsearch
https://节点1IP:9200
或者
http://节点1IP:9200
http://节点1IP:5601
账号:elastic