本博在 ELK日志分析系统搭建 一文中,介绍了使用 Elasticsearch、Logstash、Kibana 来搭建ELK。不过由于 Logstash 是一个功能强大的日志服务,作为日志采集器会占用较多的系统资源,如果需要添加插件,全部服务器的 Logstash 都要添加插件,扩展性很差。而 Filebeat 作为一个轻量级的日志服务,占用资源少,只负责采集日志,不做其他的事情,把 Logstash 抽出来,专门做一些滤处理之类的工作。
一、Filebeat 是什么?
Filebeat 是一个日志文件托运工具,在服务器上安装客户端后,Filebeat 会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到 Elasticsearch 或者 Logstarsh 中存放。
二、集成 Filebeat
1.安装 Filebeat
2.配置
Filebeat 配置文件 filebeat.yml 内容修改如下:
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /home/source/api/logs/*.out
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
Logstash 配置文件 config/logstash-sample.conf 内容修改如下:
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
port => 5044
codec => "json"
}
}
filter {
mutate {
remove_field => [ "host" ]
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "user-%{+YYYY.MM.dd}"
}
}
3.启动
启动 Filebeat:
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
启动 Logstash:
nohup ./bin/logstash -f ./config/logstash-sample.conf &