CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)
第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了。
很多企业都表示出他们很关心安全,不过他们压根就没看过和关注过自己服务器的日志,这是有点讽刺的。先把日志管理好,然后我们再去深入讨论安全。
Mirantis的Fuel,已经引入ELK作为OpenStack的监控工具,所以我们也需要重点去学习一下ELK。
刚好看到一个老外的视频,介绍CentOS 7安装ELK,讲的很实在,至少我比较喜欢这种形式。
视频地址 http://yunpan.cn/cd5feBr4diFDn 访问密码 019a 文档的内容,我基本是完全照搬视频的内容。
动手验证一遍,顺便把CentOS 7也熟悉一下,真的是第一次在CentOS7下来装东西。目前文档还有问题。正在完善中。都是使用当前最新的版本软件。kibana,估计需要投入很大的精力去配置,才能实现很好的展现。
Contents [hide]
基本介绍
Elasticsearch 目前最新的版本是1.7.1 ,
Logstash 目前最新版本是1.5.3
kibana 目前最新版本是:4.1.1
Logstash Forwarder,目前最新的版本是0.4.0
安装过程
创建一个虚拟机CentOS7.1,分配公网IP,来进行测试
准备
查看操作系统版本
cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)
查看Selinux状态
sestatus SELinux status: disabled
FQDN
设置FQDN,其实有两种方法,http://www.opsers.org/base/linux-fqdn-set.html 这位朋友总结的很好。
记住:创建SSL证书的时候需要用到,这是必做
cat /etc/hostname #i-2053f7hj elk
# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # hostname loopback address 127.0.1.1 i-2053f7hj 10.70.26.187 elk.chenshake.com elk
然后运行
hostname -F /etc/hostname
这时候你可以查看自己的FQDN名字
# hostname -f elk.chenshake.com # hostname elk
安装Firewall
CentOS7有一个重大改变,用firewalld取代iptables,大家都习惯iptables,所以青云默认的镜像,就是使用iptables,没有安装firewalld。
yum install firewalld firewall-config systemctl start firewalld.service systemctl enable firewalld.service systemctl status firewalld
查看是否生效
firewall-cmd --state
安装java
yum install java-1.7.0-openjdk
Elasticsearch
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.noarch.rpm
安装
yum localinstall elasticsearch-1.7.1.noarch.rpm
启动相关服务
照提示做就可以。
systemctl daemon-reload systemctl enable elasticsearch.service systemctl start elasticsearch systemctl status elasticsearch
查看Elasticsearch的配置文件
# rpm -qc elasticsearch /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/logging.yml /etc/init.d/elasticsearch /etc/sysconfig/elasticsearch /usr/lib/sysctl.d/elasticsearch.conf /usr/lib/systemd/system/elasticsearch.service /usr/lib/tmpfiles.d/elasticsearch.conf
查看端口使用情况
# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 606/sshd tcp6 0 0 :::9200 :::* LISTEN 3051/java tcp6 0 0 :::9300 :::* LISTEN 3051/java tcp6 0 0 :::22 :::* LISTEN 606/sshd
在使用9200和9300端口,防火墙打开端口
firewall-cmd --permanent --add-port={9200/tcp,9300/tcp} firewall-cmd --reload
查看防火墙端口情况
# firewall-cmd --list-all public (default, active) interfaces: eth0 sources: services: dhcpv6-client ssh ports: 9200/tcp 9300/tcp masquerade: no forward-ports: icmp-blocks: rich rules:
kibana
下载tar包
wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz
解压
tar zxf kibana-4.1.1-linux-x64.tar.gz -C /usr/local/ cd /usr/local/ mv kibana-4.1.1-linux-x64 kibana
创建启动文件
创建一个kibana.service文件。
cat > /etc/systemd/system/kibana.service <<EOF [Service] ExecStart=/usr/local/kibana/bin/kibana [Install] WantedBy=multi-user.target EOF
启动kibana服务
systemctl enable kibana systemctl start kibana systemctl status kibana
查看端口
# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 3830/node tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 977/sshd tcp6 0 0 :::9200 :::* LISTEN 978/java tcp6 0 0 :::9300 :::* LISTEN 978/java tcp6 0 0 :::22 :::* LISTEN 977/sshd
操作过程基本一样,打开5601端口
firewall-cmd –permanent –add-port=5601/tcp firewall-cmd –reload firewall-cmd –list-all
这个时候,访%9