ELK日志分析系统
一、ELK介绍
ELK顾名思义:是由Elasticsearch,Logstash 和 Kibana三部分组成的。
其中Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。目前,最新的版本是 5.4。
主要特点
实时分析
分布式实时文件存储,并将每一个字段都编入索引
文档导向,所有的对象全部是文档
高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。见图 2 和图 3
接口友好,支持 JSON
Logstash 是一个具有实时渠道能力的数据收集引擎。使用 JRuby 语言编写。其作者是世界著名的运维工程师乔丹西塞 (JordanSissel)。目前最新的版本是 5.4。
主要特点
几乎可以访问任何数据
可以和多种外部应用结合
支持弹性扩展
Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。目前最新的版本是 5.4。
截取官网中部分:
Logstash: Collect, Enrich, and Transport
Elasticsearch: Store, Search, and Analyze
Kibana: Explore, Visualize, and Share
Beats: Collect, Parse, and Ship
What is the difference between Logstash and Beats?edit
Beats are lightweight data shippers that you install as agents on your servers to send specific types of operational data to Elasticsearch. Beats have a small footprint and use fewer system resources than Logstash.
由此可以看出,各部分的分工:收集,分析,传输(Logstash)----->存储,查找,分析(Elasticsearch)----->浏览,分析,分享(Kibana)。
以及beats跟logstash的比较,Beats 平台是 Elastic.co 从 packetbeat 发展出来的数据收集器系统。beat 收集器可以直接写入 Elasticsearch,也可以传输给 Logstash。其中抽象出来的 libbeat,提供了统一的数据发送方法,输入配置解析,日志记录框架等功能。
也就是说,所有的 beat 工具,在配置上,除了 input 以外,在 output、filter、shipper、logging、run-options 上的配置规则都是完全一致的。
二、ELK安装配置
服务器环境:CentOS 7.2
ELK各个版本:5.4
yum install java-1.8.0-openjdk #提前安装java
1、Installing Elasticsearch
curl -L -O rpm -i elasticsearch-5.4.0.rpm systemctl start elasticsearch
安装以后
curl http://127.0.0.1:9200
查看是否正常返回。
2、Installing Logstash
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.rpm rpm -i logstash-5.4.0.rpm
修改配置文件,设置输入,输出
vim logstash.conf
input { beats { port => 5044 } }output { elasticsearch { hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
3、Installing kibana
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz tar xzvf kibana-5.4.0-linux-x86_64.tar.gz cd kibana-5.4.0-linux-x86_64/ ./bin/kibana
启动以后
需要修改配置文件,然后重启可以通过在最后加入 server.host: "0.0.0.0"
4、Installing Beats
STEP1 Installing Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-x86_64.rpm sudo rpm -vi filebeat-5.4.0-x86_64.rpm
STEP2 Configuring Filebea
https://www.elastic.co/guide/en/beats/filebeat/5.4/filebeat-configuration.html 由于配置文件中缩进特别重要,所以附上原网站。
filebeat.prospectors: - input_type: log paths: - /var/log/*.log output.elasticsearch: hosts: ["192.168.1.42:9200"]
STEP3 Configuring Filebeat to Use Logstash
you edit the Filebeat configuration file to disable the Elasticsearch output by commenting it out and enable the Logstash output by uncommenting the logstash section:
#----------------------------- Logstash output -------------------------------- output.logstash: hosts: ["127.0.0.1:5044"]
通过修改配置文件,禁用输出到Elasticsearch 而是输出到logstash,由logstash处理。
come on boy!!