首页 > 系统管理 > 日志系统 > 使用ELK+redis搭建日志分析平台
2016
01-27

使用ELK+redis搭建日志分析平台

一、ELK简介

Elk是指logstash,elasticsearch,kibana三件套,我们一般使用它们做日志分析。

ELK工作原理图

简单来讲他具体的工作流程就是 logstash agent(shipper) 监控并过滤日志,将过滤后的日志内容发给indexer,然后logstash indexer将数据发送到redis (这里的redis只处理队列不做存储),然后ElasticSearch从redis中获取数据并生产索引,然后使用Kibana进行页面展示。

这里我们使用的ELK软件都是最新版本,如果想使用之前版本,可以参考我之前的文章 http://tshare365.com/archives/35.html

二、ELK安装部署

对于ELK的安装文档网络上多之又多,我们在安装的时候一定要注意版本,各个版本之间区别还是很大的,各个版本还的配合使用,这里我们使用的是最新版本

下载地址:https://www.elastic.co/downloads

2.1、ELK准备环境配置

yum install redis java-1.7.0-openjdk nginx

注:

 如果软件包不能安装,请安装EPEL源,参考链接 http://tshare365.com/archives/1109.html

2.2、安装配置Logstash

[root@localhost ELK]# pwd
/root/ELK
#软件包都已经下载好了,并解压完成,conf是我们一会要写存放配置文件的目录
[root@localhost ELK]# ls
conf  elasticsearch-2.1.1.rpm  kibana-4.3.1-linux-x64  kibana-4.3.1-linux-x64.tar.gz  logstash-2.1.1  logstash-2.1.1.tar.gz
[root@localhost ELK]# 
#conf/client.conf 我们定义监控nginx日志的文件
[root@localhost ELK]# cat conf/client.conf 
input {
    file {
    add_field => {"Local_Host" => "nginx2"}
    type => "nginx_access"
    path => ["/var/log/nginx/access.log"]
    codec => json {
	charset => "UTF-8"
}
    }
  }
output {
        redis {
                host => "127.0.0.1"
                data_type => "list"
                key => "logstash:redis"
        }
}
[root@localhost ELK]# 
#conf/server.conf 定义server端的日志
[root@localhost ELK]# cat conf/server.conf 
input {
   redis {
    host => '127.0.0.1'
    data_type => 'list'
    port => "6379"
    key => 'logstash:redis'
    type => 'redis-input'
       }
       }
output {
	elasticsearch {
        hosts => ["localhost:9200"]

 }

  }
[root@localhost ELK]#

通过上面conf下的两个文件我们可以看出我们是监控的本机的nginx访问日志,我们最终想实现的效果是将nginx的访问日志WEB展示出来,挺起来挺高大上吧,下面我们一步一步的看看。

2.3、安装配置elasticsearch

[root@localhost ELK]# rpm -ivh elasticsearch-2.1.1.rpm 
[root@localhost ELK]# /etc/init.d/elasticsearch start

2.4、安装配置kibana

[root@localhost ELK]# ./kibana-4.3.1-linux-x64/bin/kibana

注意这样启动是在前台运行,终端不能断开

2.5、配置nginx并启动agent和server服务

#Nginx修改日志为json格式
cat /etc/nginx/nginx.conf
log_format json '{"@timestamp":"$time_iso8601",'
               '"@version":"1",'
               '"host":"$server_addr",'
               '"client":"$remote_addr",'
               '"size":$body_bytes_sent,'
               '"responsetime":$request_time,'
               '"domain":"$host",'
               '"url":"$uri",'
               '"status":"$status"}';
    access_log  /var/log/nginx/access.log json;

#启动之前我们设置的client和server文件
[root@localhost ELK]# ./logstash-2.1.1/bin/logstash -f conf/client.conf 
[root@localhost ELK]# ./logstash-2.1.1/bin/logstash -f conf/server.conf

三、访问kibana查看效果图

3.1、创建索引

使用http://kibanaServerIP :5601 访问 Kibana ,登录后,首先配置一个索引,默认Kibana的数据被指向Elasticsearch,使用默认的logstash-* 的索引名称并且是基于时间的,点“ Create ”即可。

blob.png

看到如下界面说明索引创建完成。

blob.png

3.2、查看效果图

点击“ Discover ”,可以搜索和浏览Elasticsearch中的数据,默认搜索的是最近15分钟的数据。可以自定义选择时间,如果没有数据,请访问Nginx,生成数据

blob.png

总结

  ELK的安装配置就到此结束了,是不是感觉很高大上,我们会持续更新ELK的文章,希望大家持续关注Tshare365。




最后编辑:
作者:tshare365
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复