ELK Stack 日志分析监控平台

来源:互联网 发布:常青藤富豪知乎 编辑:程序博客网 时间:2024/05/14 07:17

ELK Stack

最近因工作需要部署一个日志分析监控平台, 最后选型ELK Stack:

  • elasticsearch-2.1.1
  • logstash-2.1.1
  • kibana-4.3.1
  • redis-3.0.6

Deployment Diagram

部署图

说明:

  • AppServer: 应用(Application)部署的服务器,应用运行会在本地写日志, 这里的Logstash负责收集这些日志并将日志输出到Broker中
  • Broker: 把AppServer的日志传给LogServer过程中的缓冲队列, 官方推荐使用Redis
  • LogServer: 汇总各个AppServer的日志进行分析处理展示.

过程:

  1. AppServer中的Logstash收集本地的日志,将日志发送到Broker中Redis.
  2. LogServer中的Logstash收集Broker(Redis)中的日志发送给Elasticsearch.
  3. Kibana将Elasticsearch处理的结果进行展示.

Installation

  1. Download

    logstash2.1.1.tar.gz
    elasticsearch-2.1.1.tar.gz
    kibana-4.3.1-linux-x64.tar.gz

  2. Installation

    1. 安装Reids, 略.
    2. LogServer

      • 解压上面下载的三个文件分别到/usr/local/logstash, /usr/local/elasticsearch, /usr/local/kibana
      • 启动elasticsearch /usr/local/ealsticsearch/bin/ealsticsearch
      • 启动kibana/usr/local/kibana/bin/kibana
      • 默认配置下已经可以通过127.0.0.1:5601访问了
      • 创建logstash的配置文件:

        vim /usr/local/logstash/conf/logstash.conf

        conf目录是没有的, 新建. logstash.conf文件也没有的, 新建.

      • 配置文件的内容:

        input {    redis{       host => "127.0.0.1" #Broker的IP,当前示例中Broker与LogServer为同一台机       port => "6379"       type => "stagefalcon"       data_type => "list"       key => "stagefalcon"    }}output {    stdout {codec=>rubydebug}    elasticsearch{       hosts =>["127.0.0.1:9200"]    }}
      • 表示从127.0.0.1中的redis中取出数据,输出到elasticsearch中. elasticsearch默认通讯端口9200.

      • 配置文件检查命令:

        /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf --configtest
      • 启动logstash:

        /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf
    3. AppServer

      • 解压logstash2.1.1.tar.gz到/usr/local/logstash
      • 创建logstash的配置文件:

        vim /usr/local/logstash/conf/logstash.conf

        conf目录是没有的, 新建. logstash.conf文件也没有的, 新建.

      • 配置文件的内容:

        input {     file {      type => "stagefalcon"      tags => "falcon"      path => "/var/log/falcon/access.log" # 日志文件路径      start_position => beginning # 文件开始位置      sincedb_path => "/usr/local/logstash/conf/access.sincedb" # 如果传输文件过程记录位置,下次启动时从上次终端位置开始传输,否则文件开头开始传输    }}output {    stdout {}    redis {        host => "10.0.72.50" #Broker的IP        port => "6379"        data_type => "list"        key => "stagefalcon"    }}
      • 配置文件检查命令:

        /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf --configtest
      • 启动logstash:

        /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf

参考资料

ELK安装配置
官方下载
ELK Stack Install Guide
ELKstack 中文指南

0 0
原创粉丝点击