栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch集群和logstash同步txt-json文件

elasticsearch集群和logstash同步txt-json文件

elasticsearch集群和logstash同步txt/json文件 1.ES集群
前期准备:
1.3台linux中JAVA环境配置,docker安装

可以参考:
https://blog.csdn.net/yuanpeij/article/details/116491684
1.三台docker先pull elasticsearch
docker pull elasticsearch:7.0.0
2.添加配置文件 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: false 
2.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: false 

2.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: false 

3.启动
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.0
4.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 -p
2.logstash同步文件下的所有txt/json文件 2.1 连接外网的linux装logstash
docker pull logstash:7.0.0
2.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中了
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584182.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号