前期准备: 1.3台linux中JAVA环境配置,docker安装 可以参考: https://blog.csdn.net/yuanpeij/article/details/1164916841.三台docker先pull elasticsearch
docker pull elasticsearch:7.0.02.添加配置文件 2.1 第一台
mkdir /home/esconfig vi /home/esconfig/es1.yml
cluster.name: ES-Cluster #节点名 node.name: node-1 #设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0, #指绑定这台机器的任何一个ip network.host: 0.0.0.0 #设置其它节点和该节点交互的ip地址,如果不设置它会自动判断, #值必须是个真实的ip地址 network.publish_host: 172.16.10.115 #设置对外服务的http端口,默认为9200 http.port: 9200 #设置节点之间交互的tcp端口,默认是9300 transport.tcp.port: 9300 #是否允许跨域REST请求 http.cors.enabled: true #允许 REST 请求来自何处 http.cors.allow-origin: "*" #节点角色设置 node.master: true node.data: true #有成为主节点资格的节点列表 discovery.seed_hosts: ["172.16.10.115:9300","172.16.10.116:9300","172.16.10.117:9300"] cluster.initial_master_nodes: ["node-1","node-2","node-3"] #集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1) # (totalnumber of master-eligible nodes / 2 + 1) discovery.zen.minimum_master_nodes: 1 #xpack.security.enabled: false2.2 第二台
mkdir /home/esconfig vi /home/esconfig/es1.yml
cluster.name: ES-Cluster #节点名 node.name: node-2 #设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0, #指绑定这台机器的任何一个ip network.host: 0.0.0.0 #设置其它节点和该节点交互的ip地址,如果不设置它会自动判断, #值必须是个真实的ip地址 network.publish_host: 172.16.10.116 #设置对外服务的http端口,默认为9200 http.port: 9200 #设置节点之间交互的tcp端口,默认是9300 transport.tcp.port: 9300 #是否允许跨域REST请求 http.cors.enabled: true #允许 REST 请求来自何处 http.cors.allow-origin: "*" #节点角色设置 node.master: true node.data: true #有成为主节点资格的节点列表 discovery.seed_hosts: ["172.16.10.115:9300","172.16.10.116:9300","172.16.10.117:9300"] cluster.initial_master_nodes: ["node-1","node-2","node-3"] #集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1) # (totalnumber of master-eligible nodes / 2 + 1) discovery.zen.minimum_master_nodes: 1 #xpack.security.enabled: false2.3 第三台
mkdir /home/esconfig vi /home/esconfig/es1.yml
cluster.name: ES-Cluster #节点名 node.name: node-3 #设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0, #指绑定这台机器的任何一个ip network.host: 0.0.0.0 #设置其它节点和该节点交互的ip地址,如果不设置它会自动判断, #值必须是个真实的ip地址 network.publish_host: 172.16.10.117 #设置对外服务的http端口,默认为9200 http.port: 9200 #设置节点之间交互的tcp端口,默认是9300 transport.tcp.port: 9300 #是否允许跨域REST请求 http.cors.enabled: true #允许 REST 请求来自何处 http.cors.allow-origin: "*" #节点角色设置 node.master: true node.data: true #有成为主节点资格的节点列表 discovery.seed_hosts: ["172.16.10.115:9300","172.16.10.116:9300","172.16.10.117:9300"] cluster.initial_master_nodes: ["node-1","node-2","node-3"] #集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1) # (totalnumber of master-eligible nodes / 2 + 1) discovery.zen.minimum_master_nodes: 1 #xpack.security.enabled: false3.启动
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /home/esconfig/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name node-1 elasticsearch:7.0.0
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /home/esconfig/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name node-2 elasticsearch:7.0.0
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /home/esconfig/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name node-3 elasticsearch:7.0.04.pull kibana
我是一台连外网, 2台内网的, 连外网的pull kibana
通过外网linux当跳板机连接内网linux: https://blog.csdn.net/yuanpeij/article/details/121399893
docker pull kibana:7.0.0
拉下来后, 启动: ELASTICSEARCH_HOSTS:填写你自己linux的
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://xxx.xx:9200 -e SERVER_PORT=5601 -e SERVER_HOST=0.0.0.0 -p 5601:5601 -d kibana:7.0.0
然后 ip:5601进入kibana
5.常见报错firewall-cmd --zone=public --add-port=9200/tcp --permanent # 开放9200端口 firewall-cmd --reload # 配置立即生效 查看防火墙所有开放的端口 firewall-cmd --zone=public --list-ports
首先查看docker启动日志 docker logs -f 容器id
错误消息
ERROR: [2] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] [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
修改配置文件 vi /etc/sysctl.conf 添加: vm.max_map_count=655360 修改完成后,执行此命令: sysctl -p2.logstash同步文件下的所有txt/json文件 2.1 连接外网的linux装logstash
docker pull logstash:7.0.02.2 logstash.yml配置文件放在宿主机(连接外网的linux)/data/elk/logstash目录下,内容如下:
mkdir /data/elk/logstash
vi /data/elk/logstash/logstash.yml
path.config: /usr/share/logstash/conf.dtest*.txt"2.4启动logstash
mkdir /data/elk/logstash/txtfile
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -p 5044:5044 --name logstash -v /data/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /data/elk/logstash/conf.d/:/usr/share/logstash/conf.d/ -v /data/elk/logstash/txtfile/:/usr/share/logstash/txtfile/ logstash:7.0.0
然后给当前linux /data/elk/logstash/txtfile中放入.json或者.txt文件(内容是json类型), 然后logstash就会自动同步到es中了



