如果对日志采集要求比较高的,最好采用filebeat。
总体架构图:
在 ELK学习笔记(二)【原创】中我们介绍了使用logstash的file input, 这个和filebeat很像。只是logstash是java编写的,比较耗资源。filebeat更轻量,性能更好,安装更方便。beats包括:
Packetbeat(搜集网络流量数据);
Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据);
Filebeat(搜集文件数据);
Winlogbeat(搜集 Windows 事件日志数据)。
这里只着重介绍filebeat.
1. 下载和安装
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm sudo rpm -vi filebeat-6.1.1-x86_64.rpm
2. 修改配置
#/etc/filebeat/filebeat.yml
filebeat.prospectors: - paths: - /var/log/logstash/*.log input_type: log exclude_lines: ['DEBUG'] multiline: pattern: '^\[' negate: true match: after output.logstash: hosts: ["logstash.zjportdns.gov.cn:5000"]
3. 启动
sudo service filebeat start
4. 设置开机自启动
vi /etc/rc.local
sudo service filebeat start
5.logstash配置
input{ beats { type => "beat" port => 5000 } }
完整的配置见 附件(为了兼容log4j,对filter做了一些转换)