共计 3853 个字符,预计需要花费 10 分钟才能阅读完成。
一、beats 介绍
因为 logstash 太费内存 了, 如果在要采集的服务上都安装 logstash, 你可以想象这样这样资源消耗多高。所以我们要用 轻量级 的采集工具才更高效, 更省资源。
beats 是轻量级的日志收集处理工具,Beats 占用资源少
- Packetbeat:网络数据(收集网络流量数据)
- Metricbeat:指标(收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
- Filebeat:文件(收集日志文件数据)
- Winlogbeat:windows 事件日志(收集 Windows 事件日志数据)
- Auditbeat:审计数据(收集审计日志)
- Heartbeat:运行时间监控(收集系统运行时的数据)
我们这里主要是收集日志信息, 所以只讨论 filebeat。
filebeat 可以直接将采集的日志数据传输给 ES 集群(EFK), 也可以给 logstash(**5044** 端口接收)。
二、filebeat
准备工作
机器:node4(192.168.98.204)
部署前准备参考 https://www.zutuanxue.com/home/4/52_138
filebeat 安装
a、yum 安装
b、rpm 安装
c、源码安装
a、yum 安装
如果你安装 ES 的时候设置过 yum 源可以直接使用 yum 命令:
# yum -y install filebeat
b、rpm 安装
[ | ]|
警告:filebeat-7.6.0-x86_64.rpm: 头 V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY | |
-i install |
c、源码安装
参考官方手册
相关文件及目录
安装目录: /usr/share/filebeat
配置文件目录: /etc/filebeat
配置文件:/etc/filebeat/filebeat.yml
服务启动管理
[root@node4 ~]# systemctl enable filebeat | |
Synchronizing state of filebeat.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. | |
Executing: /usr/lib/systemd/systemd-sysv-install enable filebeat | |
Created symlink /etc/systemd/system/multi-user.target.wants/filebeat.service → /usr/lib/systemd/system/filebeat.service. | |
# 没有修改配置文件,起不来 | |
[root@node4 ~]# systemctl start filebeat |
三、filebeat 配置文件
[root@node4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$' | |
filebeat.inputs: | |
- type: log | |
enabled: false # 默认 false,修改为 true | |
paths: | |
- /var/log/*.log # 收集日志的路径 | |
filebeat.config.modules: | |
path: ${path.config}/modules.d/*.yml | |
reload.enabled: false | |
setup.template.settings: | |
index.number_of_shards: 1 | |
# 定义 kibana 地址 | |
setup.kibana: | |
# 定义 ES 地址接收数据 | |
output.elasticsearch: | |
hosts: ["192.168.98.201:9200"] | |
processors: | |
- add_host_metadata: ~ | |
- add_cloud_metadata: ~ | |
- add_docker_metadata: ~ | |
- add_kubernetes_metadata: ~ |
四、收集日志给 ES 集群
案例:filebeat 收集本机 messages 日志到 ES,通过 ES-head 查看
业务拓扑
注意:每做下一个实验前,建议大家把之前的索引数据清除,通过 es-head,这样没有干扰,也好验证效果。否则那么多索引信息,对前期学习的你来说,干扰太多了。
a、设置 filebeat 配置文件
[root@node4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$' | |
filebeat.inputs: | |
- type: log | |
enabled: true # 默认 false,修改为 true | |
paths: | |
- /var/log/messages # 收集日志的路径 | |
filebeat.config.modules: | |
path: ${path.config}/modules.d/*.yml | |
reload.enabled: false | |
setup.template.settings: | |
index.number_of_shards: 1 | |
# 定义 kibana 地址 | |
setup.kibana: | |
# 定义 ES 地址接收数据 | |
output.elasticsearch: | |
hosts: ["192.168.98.201:9200"] | |
processors: | |
- add_host_metadata: ~ | |
- add_cloud_metadata: ~ | |
- add_docker_metadata: ~ | |
- add_kubernetes_metadata: ~ |
b、重启 filebeat 服务,生效配置
[root@node4 ~]# systemctl restart filebeat
c、通过 ES-head 验证日志收集
拓展:关于 filebeat 设置数据索引
[root@node4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$' | |
filebeat.inputs: | |
- type: log | |
enabled: true | |
paths: | |
- /var/log/messages | |
filebeat.config.modules: | |
path: ${path.config}/modules.d/*.yml | |
reload.enabled: false | |
setup.template.settings: | |
index.number_of_shards: 1 | |
setup.kibana: | |
# 在 output.* 输出全局中插入这行插入,下面三行 | |
# 禁用 ilm | |
setup.ilm.enabled: false | |
# 设置索引模板名 | |
setup.template.name: "node4_messages" | |
# 索引前缀 | |
setup.template.pattern: "node4_messages-*" | |
output.elasticsearch: | |
hosts: ["192.168.98.201:9200"] | |
# 定义索引 | |
index: "node4_messages-%{+yyyy.MM.dd}" | |
processors: | |
- add_host_metadata: ~ | |
- add_cloud_metadata: ~ | |
- add_docker_metadata: ~ | |
- add_kubernetes_metadata: ~ |
五、收集日志给 logstash
案例:收集本机 messages 日志到 logstash,通过 ES-head 查看, 要求索引为 zutuanxue_node4_messages
业务拓扑:
案例分析:
a、设置 filebeat 配置文件,将采集的日志发送给 logstash
b、logstash 收到日志添加索引后给 ES
c、ES-head 验证
a、设置 filebeat 配置文件,将采集的日志发送给 logstash
[root@node4 ~]# cat /etc/filebeat/filebeat.yml |grep -v '#' |grep -v '^$' | |
filebeat.inputs: | |
- type: log | |
enabled: true | |
paths: | |
- /var/log/messages | |
filebeat.config.modules: | |
path: ${path.config}/modules.d/*.yml | |
reload.enabled: false | |
setup.template.settings: | |
index.number_of_shards: 1 | |
setup.kibana: | |
# 定义输出到 logstash | |
output.logstash: | |
hosts: ["192.168.98.203:5044"] | |
processors: | |
- add_host_metadata: ~ | |
- add_cloud_metadata: ~ | |
- add_docker_metadata: ~ | |
- add_kubernetes_metadata: ~ |
b、logstash 收到日志添加索引后给 ES
[ | ]|
input { | |
beats {port => 5044 | |
} | |
} | |
output { | |
elasticsearch {hosts => ["192.168.98.201:9200"] | |
index => "zutuanxue_node4-%{+YYYY.MM.dd}" | |
} | |
} |
重启 filebeat、logstash 服务生效配置
[ | ]|
[ | ]
c、ES-head 验证
完美,实验完成
