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?



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

启动以后

http://127.0.0.1:5601 

需要修改配置文件,然后重启可以通过在最后加入 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!!


欢迎打算使用阿里云服务器的小伙伴,加我私聊!!QQ:3533470970  或直接领取阿里云幸运券:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=b6h928qb&utm_source=b6h928qb