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发送过来的汇总日志以图形化的方式呈现出来

在安装之前,先修改以下配置

# 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