码迷,mamicode.com
首页 > 其他好文 > 详细

ELKStack

时间:2017-09-11 23:03:26      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:elk   redis   搭建一套   

利用ELK+redis搭建一套nginx日志分析平台。

 

使用Elasticsearch + Logstash + Kibana+redis来搭建nginx日志监控分析。

nginx的每个请求状态等都有日志文件来记录,可以通过读取日志文件来分析;

logstashagentShipper)和serverIndexer)端,agent端负责监控本地日志文件的变化,

及时把日志文件的最新内容收集起来,输出到Redis暂存;

redislist结构正好可以作为队列使用,用来存储logstash传输的日志数据;

server端:日志存储,负责从Redis接收日志;

分析之后存储到elasticsearch进行搜索分析再由统一的kibana进行日志web界面的展示.

实现所需架构图:

技术分享

 

部署3台服务器:

1.192.168.0.156:安装nginx+logstash+redis:负责监控本地日志文件的变化,

及时把日志文件的最新内容收集起来,输出到Redis暂存

2.192.168.0.155:安装logstash,作为server端,日志存储者,负责从Redis接收日志

3.192.168.0.188:安装elasticsearch+kibana,搜索分析再由统一的kibana进行日志web界面的展示

实现步骤:

  1. 首先在192.168.0.156安装nginx+logstash+redis:(提前下载好logstash1.5.4

[root@node4 ~]# yum install nginx -y

[root@node4 ~]# systemctl startnginx.service                      ###启动nginx

[root@node4 ~]# yum install redis -y

[root@node4 ~]# vim /etc/redis.conf

bind 0.0.0.0                                                       ###监听本机所有地址

[root@node4 ~]# systemctl start redis.service                      ###启动redis

[root@node4 ~]# yum install java-1.8.0-openjdk    java-1.8.0-openjdk-devel –y     

###安装jdk

[root@node4 dylan]# yum localinstalllogstash-1.5.4-1.noarch.rpm –y    

 ###安装logstash1.5.4

[root@node4 dylan]# vim/etc/profile.d/logstash.sh

export PATH=/opt/logstash/bin:$PATH

[root@node4 dylan]# ./etc/profile.d/logstash.sh

[root@node4 dylan]# cd/etc/logstash/conf.d/

[root@node4 conf.d]# vim/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core

-0.3.0/patterns/grok-patterns                     ###ngigx_log的匹配方式,添加以下日志格式

#NGINX

NGUSERNAME [a-zA-Z\.\@\-\+_%]+

NGUSER %{NGUSERNAME}

NGINXACCESS %{IPORHOST:clientip} -%{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] \"(%{WORD:verb}%{NOTSPACE:request}(?:HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response}(?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent}%{NOTSPACE:http_x_forwarded_for}

[root@node4 conf.d]# vimnglogredissample.conf          ###配置logstash收集nginx日志

input {

  file { 

       path    =>["/var/log/nginx/access.log"]      

                   type    => "nginxlog"

       start_position => "beginning"

        }

}      

 

filter {

   grok {

       match => { "message" => "%{NGINXACCESS}"}           }      

}      

 

output {

  redis {                                                ###日志发往redis暂存

       port    => "6379"

       host    =>["127.0.0.1"]

       data_type      =>"list"

                   key     =>"logstash-%{type}"

          }      

}  

[root@node4 conf.d]# logstash -f./nglogredissample.conf –configtest      ###测试配置文件

Configuration OK

[root@node4 conf.d]# logstash -f./nglogredissample.conf                   ###启用配置文件

Logstash startup completed

[root@node4 /]# redis-cli                                                  ###连接至redis

127.0.0.1:6379> LINDEX logstash-nginxlog1                               ###可通过redis查看

 

  1. 192.168.0.155安装logstash,作为server端,日志存储者,负责从Redis接收日志

[root@node3 ~]# yum install java-1.8.0-openjdk    java-1.8.0-openjdk-devel –y   

  ###安装jdk

[root@node3 dylan]# yum localinstalllogstash-1.5.4-1.noarch.rpm –y       

 ###安装logstash1.5.4

[root@node3 dylan] vim/etc/profile.d/logstash.sh

export PATH=/opt/logstash/bin:$PATH

[root@node3 dylan]# ./etc/profile.d/logstash.sh

[root@node3 dylan]# cd/etc/logstash/conf.d/

[root@node3 conf.d]# vim server.conf                   ###配置logstash server

input {

       redis {                                         ###redis获取数据

                port => "6379"                          ###redis端口

                host =>"192.168.0.156"                  ###redis主机

                data_type =>"list"

                key     => "logstash-nginxlog"

       }

}

output {                                                                                                         

       elasticsearch{                                    ###输出至elasticsearch

                cluster =>"logstash"                     ###elasticsearch中的cluster

                index   => "logstash-%{+YYYY.MM.dd}"      ###索引格式

       }

}

[root@node3 conf.d]# logstash -f./server.conf –configtest   ###测试语法

[root@node3 conf.d]# logstash -f./server.conf                ###运行server配置

 

  1. 192.168.0.188:安装elasticsearch+kibana, 搜索分析再由统一的kibana进行日志web界面的展示。

提前下载准备好:

elasticsearch-1.7.2.noarch.rpm

bigdesk-latest.zip  (一个ES插件扩展,可查看es集群的各种状态)

kibana-4.1.2-linux-x64.tar.gz

 

[root@node1 ~]# yum install java-1.8.0-openjdkjava-1.8.0-openjdk-devel –y 

 ###安装jdk

[root@node1 dylan]# yun installelasticsearch-1.7.2.noarch.rpm –y                        ###安装es1.7.2

[root@node1 elasticsearch]# vim/etc/elasticsearch/elasticsearch.yml

cluster.name: logstash                                             ###配置cluster

node.name: "node1.xiao.com"

[root@node1 elasticsearch]# systemctldaemon-reload

[root@node1 elasticsearch]# systemctl startelasticsearch.service      ###启动es

es节点之间交互的tcp端口,默认是9300

对外服务的http端口,默认为9200

[root@node1 ~]#/usr/share/elasticsearch/bin/plugin -i bigdesk -ufile:///dylan/plugins/bigdesk-latest.zip ###安装bigdesk插件

http://192.168.0.188:9200/_plugin/bigdesk                    ###网页端访问可查看

 

[root@node1 dylan]# tar xfkibana-4.1.2-linux-x64.tar.gz -C /usr/local      ###解压kibana

[root@node1 dylan]# cd /usr/local/

[root@node1 local]# ln -svkibana-4.1.2-linux-x64 kibana                     ###创建链接

"kibana" ->"kibana-4.1.2-linux-x64"

[root@node1 local]# cd kibana/config/

[root@node1 config]# vim kibana.yml                               ###编辑配置文件

elasticsearch_url:"http://localhost:9200"                                                   ###同属同一台服务器

[root@node1 config]# cd ..

[root@node1 kibana]# bin/kibana                                    ###启动kibana

网页端输入:http://192.168.0.188:5601  查看

测试:在网页端刷新nginx,产生日志,即可通过kibana查看。

技术分享


ELKStack

标签:elk   redis   搭建一套   

原文地址:http://rylan.blog.51cto.com/11290766/1964405

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!