Filebeat,Redis和ELK6.x集中式日志解决方案
2018-01-22 13:20
561 查看
简介
ELK 不是一款软件,而是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写。这三者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack。而redis作为一款性能优良的消息队列。更是适合用在此场景中。
下面是针对每个技术我的博客详解。
1.Elasticsearch6.x介绍
2.Logstash6.x介绍
3.Kibana6.x 介绍
4.redis基础介绍
filebeat就在这里介绍了。
Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。所以说filebeat就是logstash-agent端的取代产品。且性能优良。
基本架构
下图是经典的日志收集流程,只不过我们这次要在filebeat与Logstash之间加上一个消息队列redis,Logstash服务端只需要从redis中获取想要的数据。而所有的客户端直接将数据发往redis。准备环境。
Centos7 3台,Elasticsearch6.1,logstash6.1,kibana6.1,filebeat安装包。epel的yum源
1.首先配置 filebeat。
安装filebeat。只需 yum -y install filebeat 。安装完成后,修改配置文件 /etc/filebeat/filebeat.yml
内容如下:
filebeat.prospectors:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 3
setup.kibana:
output.redis:
hosts: ["192.168.40.133"]
port: 6379
key: "nginx-log"
这样的配置是 从 /var/log/nginx下读取所有以.log结尾的文件。且发送到redis。且redis中以list方式存储。键名为 nginx-log
配置完成后。启动redis。再启动filebeat。
systemctl start redis
systemctl start filebeat
接下来应该让logstash从redis中间键中读取数据。那么配置logstash。配置文件为 /etc/logstash/conf.d/nginx.conf
input {
redis {
port => "6379"
host => "192.168.40.133"
data_type => "list"
type => "log"
key => "nginx-log"
}
}
filter {
grok {
match => {
"message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:time}\] "%{WORD:request_action} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"'
}
}
date {
match => [ "time", "dd/MMM/YYYY:HH:mm:ss Z" ]
locale => en
}
geoip {
source => "remote_ip"
target => "geoip"
}
useragent {
source => "agent"
target => "user_agent"
}
}
output {
elasticsearch {
hosts => "192.168.40.133:9200"
index => "logstash-%{+YYYY.MM.dd}"
}
}
配置完成后,启动logstash。 logstash -f /etc/logstash/conf.d/nginx.conf。或systemctl start logstash
这里logstash从redis中读取数据。而将数据过滤后再发送至Elasticsearch。过滤时用到了grok将数据格式化。user_agent,geoip等等插件。
再启动Elasticsearch和kibana。
在浏览器访问kibana所在主机的5601端口。选择Management。创建index parttern。
创建 logstash-*
好了,大功告成!
相关文章推荐
- ELK+Filebeat集中式日志解决方案(centos7)
- ELK+Filebeat 集中式日志解决方案详解
- ELK+Filebeat 集中式日志解决方案实践---概述(一)
- ELK+Filebeat+Nginx集中式日志解决方案(一)
- ELK+Filebeat+Nginx集中式日志解决方案(二)——添加ElasticSearch集群
- ELK+Filebeat+Nginx集中式日志解决方案(三)—— 添加kafka+zookeeper集群
- Linux搭建ELK日志收集系统:FIlebeat+Redis+Logstash+Elasticse
- 6.3.1版本elk+redis+filebeat收集docker+swarm日志分析
- 集中式日志分析平台 - ELK Stack - Filebeat 压测
- ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台
- elk日志分析filebeat配置(filebeat + logstash)
- logstash与filebeat收集日志
- logstash与filebeat收集日志
- ELK日志系统:Filebeat使用及Kibana如何设置登录认证
- 使用 Filebeat 收集日志
- Filebeat+Logstash+Elasticsearch抓取日志
- ELK+fileBeat 日志系统搭建
- logstash与filebeat收集日志
- logstash与filebeat收集日志