CentOS 7 快速部署 ELK
先简单说一下部署思路及原理(不一定正确,只是个人理解而已)
1.修改系统参数,以便安装软件
2.安装配置elasticsearch,这个相当于总监测中心,用来收集logstash监测的各种服务应用日志,然后将监测的各个logstash的日志发送给kibana
discovery.zen.ping.unicast.hosts: ["192.168.0.53:9300"] #这个相当于内部通讯端口,用于es节点之间的通讯,另一个9200端口则是用于做外部通讯
3.安装配置logstash,这个相当于单点监测中心,因为我们可能需要同时监测几十服务器的日志,可以在各个服务器上安装logstash,收集所在服务器的日志信息
4.安装配置kibana,这个相当图形监控界面,将elasticsearch发送过来的汇总日志以图形化的方式呈现出来
默认端口:ElasticSearch 的9200, Kibana 的 5601, 还有 Logstash 的 5044
在安装之前,先修改以下配置
# vim /etc/security/limit.conf * hard nofile 65536 * soft nofile 65536 * soft nproc 65536 * hard nproc 65536 # vim /etc/sysctl.conf vm.max_map_count = 262144 net.core.somaxconn=65535 net.ipv4.ip_forward = 1 # sysctl -p # systemctl disabled firewalld # systemctl stop firewalld # iptables -F
三个软件的下载连接如下
https://www.elastic.co/cn/downloads
下载这三个包
kibana-6.2.4-x86_64.rpm elasticsearch-6.2.4.rpm logstash-6.2.4.rpm
部署java环境,可以参考https://www.cnblogs.com/biaopei/p/7730484.html
安装 yum install elasticsearch-6.2.4.rpm -y
修改配置文件
# grep -v ^# /etc/elasticsearch/elasticsearch.yml cluster.name: elk-stack node.name: elk.com path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.0.53:9300"] (ip也要修改) discovery.zen.minimum_master_nodes: 1
启动服务
systemctl start elasticsearch
查看端口是否正常开启(用netstat也可,ss好像是比netstat好一点)
ss -ntlup| grep -E "9200|9300"
安装logstash
# yum install logstash-6.2.4.rpm -y # echo 'path.config: /etc/logstash/conf.d' >>/etc/logstash/logstash.yml
配置文件
# vim /etc/logstash/conf.d/syslog.conf input { #收集本地log file { type => "logtest" path => "/var/log/messages" start_position => "beginning" } #filebeat客户端 beats { port => 5044 } } #筛选 #filter { } output { #标准输出,调试使用 stdout { codec => rubydebug { } } # 输出到es elasticsearch { hosts => ["http://192.168.0.53:9200"] ip也需要修改 index => "%{type}-%{+YYYY.MM.dd}" } }
调试启动
# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit # /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf # systemctl enable logstash # systemctl start logstash
安装配置kibana
yum install kibana-6.2.4-x86_64.rpm nodejs -y
修改配置文件
# egrep -v "^#|^$" /etc/kibana/kibana.yml server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://192.168.0.53:9200" 这个ip需要根据自己的实际服务器ip修改,就是改为本地ip就行了 kibana.index: ".kibana"
汉化kibana
# yum install -y git # git clone https://github.com/anbai-inc/Kibana_Hanization.git # cd Kibana_Hanization # python main.py /usr/share/kibana
重启kibana
# systemctl restart kibana
浏览器访问kibana
ip:5601