使用Elasticsearch + Logstash + Kibana搭建日志集中分析

在上周的上海Gopher Meetup的聚会上,听了ASTA谢的演讲。然后公司最近也需要实现一个日志集中分析平台。ASTA谢恰好也讲了他使用了Elasticsearch + Logstash + Kibana这个组合进行日志分析。回来之后就买了一本书然后各种google把它配置好了,当然只是把框架搭好了。这三个组建还有很多功能并没有熟悉。本文只是简单的介绍在CentOS如果配置ELK(因为公司的服务器是Centos的,个人比较喜欢Ubuntu 哈哈)

什么是ELK:

Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,分析网站的访问情况时我们一般会借助Google/百度/CNZZ等方式嵌入JS做数据统计,但是当网站访问异常或者被攻击时我们需要在后台分析如Nginx的具体日志,而Nginx日志分割/GoAccess/Awstats都是相对简单的单节点解决方案,针对分布式集群或者数据量级较大时会显得心有余而力不足,而ELK的出现可以使我们从容面对新的挑战。

Logstash:负责日志的收集,处理和储存

Elasticsearch:负责日志检索和分析

Kibana:负责日志的可视化

官方网站:

JDK – Oracle.com/technetwork/Java/javase/downloads/index.html
Elasticsearch – https://www.elastic.co/downloads/elasticsearch
Logstash – https://www.elastic.co/downloads/logstash
Kibana – https://www.elastic.co/downloads/kibana
Nginx-https://www.nginx.com/

服务端配置:

安装Java JDK:

cat /etc/RedHat-release
//这是我linux的版本
CentOS Linux release 7.1.1503 (Core)
//我们通过yum 方式安装Java Jdk
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

#启动相关服务
service elasticsearch start
service elasticsearch status

#查看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 127.0.0.1:25            0.0.0.0:*              LISTEN      1817/master       
tcp        0      0 0.0.0.0:5601            0.0.0.0:*              LISTEN      27369/node         
tcp        0      0 0.0.0.0:80              0.0.0.0:*              LISTEN      31848/nginx: master
tcp        0      0 0.0.0.0:22              0.0.0.0:*              LISTEN      16567/sshd         
tcp6      0      0 127.0.0.1:8005          :::*                    LISTEN      8263/java         
tcp6      0      0 :::5000                :::*                    LISTEN      2771/java         
tcp6      0      0 :::8009                :::*                    LISTEN      8263/java         
tcp6      0      0 :::3306                :::*                    LISTEN      28839/mysqld       
tcp6      0      0 :::80                  :::*                    LISTEN      31848/nginx: master
tcp6      0      0 :::8080                :::*                    LISTEN      8263/java         
tcp6      0      0 :::9200                :::*                    LISTEN      25808/java         
tcp6      0      0 :::9300                :::*                    LISTEN      25808/java         
tcp6      0      0 :::9301                :::*                    LISTEN      2771/java         
tcp6      0      0 :::22                  :::*                    LISTEN      16567/sshd 

我们看到9200端口了说明我们安装成功了,我们可以在终端输入

#测试访问
curl -X GET :9200/

或者直接浏览器打开我们可以看到

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f82bb2215467ee5168016121512a2150.html