如何使用elasticsearchlogstashkibana快速搭建实时日志分析平台

Posted 专注PHP学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用elasticsearchlogstashkibana快速搭建实时日志分析平台相关的知识,希望对你有一定的参考价值。

最近使用ELK收集分析日志感觉很不错,于是乎就在本地环境尝试搭建了一下,顺便了解一下实现的流程。


虽然ELK很牛逼,可考虑有的小伙伴在实战中还没用到,分享一下网上比较靠谱的简介:


日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。


通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。


集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。


开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。



如何使用elasticsearch、logstash、kibana快速搭建实时日志分析平台



ELK原理


如何使用elasticsearch、logstash、kibana快速搭建实时日志分析平台


了解以上基本情况后,我们开始分步骤进行安装实战。


1 去官网分别下载:logstash、elasticsearch、kibana

  


2 将下载的ELK解压到指定目录

   我的目录是:/usr/local/elk

如何使用elasticsearch、logstash、kibana快速搭建实时日志分析平台


3 安装logstash

  ① logstash 依赖于java 需要安装java环境(自行查询安装)

  ② 配置logstash,我们使用配置文件形式启动

    $ cd /usr/local/elk/logstash-5.3.0/config

    $ vim simple-config.conf

    添加如下内容:

    input {stdin{}}

  output {stdout {codec=>rubydebug}}


    启动logStash

    $ /usr/local/elk/logstash-5.3.0/bin/logstash -f simple-config.conf

    在终端输入:

    $ hello world

 

    终端会显示类似下面的结果,代表成功:

   如何使用elasticsearch、logstash、kibana快速搭建实时日志分析平台


4 安装elasticSearch

  ① 修改配置:

     $ cd /usr/local/elk/elasticsearch-5.3.0/config

     $ vim elasticsearch.yml

     修改如下内容:

     network.host: 127.0.0.1

     http.port: 9200

  ② 启动elasticSearch,任选下面3种之一

     a. /usr/local/elk/elasticsearch-5.3.0/bin/elasticsearch

     b. /usr/local/elk/elasticsearch-5.3.0/bin/elasticsearch -d #表示以daemon的方式启动

     c. nohup /usr/local/elk/elasticsearch-5.3.0/bin/elasticsearch > /var/log/logstash.log 2>&1 &


  ③ elasticSearch和logStash结合

    新增logStash配置文件

    $ cd /usr/local/elk/logstash-5.3.0/config

         $ vim ela.conf

    添加如下内容

  input {

    stdin {

        add_field => {"newFiled" => "hedong"}

        codec => "plain"

        tags => ["add"]

        type => "std"

    }

  }

  output {

    elasticsearch {

        hosts => ["127.0.0.1:9200”] # elasticSearch的端口是9200

        index => "logstash-%{type}-%{+YYYY.MM.dd}” #索引名

        document_type => "%{type}"

        flush_size => 20 # 攒够20条一次性发送

        idle_flush_time => 2 # 如果2秒内还没攒够20条,会自动发送

        sniffing => true

        template_overwrite => true

    }

  }


启动logStash

$ logstash -f ela.conf

这样logStash中收集的日志会自动存入elasticSearch中

使用curl或在浏览器中访问: 

内容类似:

如何使用elasticsearch、logstash、kibana快速搭建实时日志分析平台


5 安装kibana:对收集的日志进行可视化搜索、查看

  ① 配置kibana

    $ cd /usr/local/elk/kibana-5.3.0/config

    $ vim kibana.yml

     修改如下内容:

     server.port: 5601 #监听端口

     server.host: “127.0.0.1"

     elasticsearch.url: "http://127.0.0.1:9200”


  ② 启动kibana

   $ /usr/local/elk/kibana-5.3.0/bin/kibana


  ③ 打开浏览器访问:

     首次会提示设置,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。

 

如何使用elasticsearch、logstash、kibana快速搭建实时日志分析平台


搜索刚才写入elasticSearch的日志,大功告成。




总结:

       以上只是ELK平台的搭建过程,还有好多强大的功能,需要结合官网及搜索引擎进一步探索,其实平台搭建起来就完成80%的工作了,剩下的只是细节问题,比如:你可以使用redis队列形式存储日志、可自定义配置日志字段等,希望本篇文章对你有所帮助。


参考文章:

https://www.gitbook.com/book/chenryn/elk-stack-guide-cn

http://www.tuicool.com/articles/YR7RRr

http://467754239.blog.51cto.com/4878013/1700828/

http://oceanszf.blog.51cto.com/6268931/1717952

https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7

http://storysky.blog.51cto.com/628458/1158707/


推荐文章:

上篇文章:




以上是关于如何使用elasticsearchlogstashkibana快速搭建实时日志分析平台的主要内容,如果未能解决你的问题,请参考以下文章

ELK 企业级日志分析系统(ElasticSearchLogstash 和 Kiabana 详解)

部署 elk 日志系统 elasticsearchlogstash kibana

CentOS7 安装 Logstash

日志分析系统ELK之Logstash

日志分析系统ELK之Logstash

记一次学习kibaba踩过的坑(Windows环境)