阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ELK-beats数据采集

159次阅读
没有评论

共计 3853 个字符,预计需要花费 10 分钟才能阅读完成。

一、beats 介绍

因为 logstash 太费内存 了, 如果在要采集的服务上都安装 logstash, 你可以想象这样这样资源消耗多高。所以我们要用 轻量级 的采集工具才更高效, 更省资源。

ELK-beats 数据采集

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 安装

[root@node4 ~]# rpm -i filebeat-7.6.0-x86_64.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 查看

业务拓扑

ELK-beats 数据采集

注意:每做下一个实验前,建议大家把之前的索引数据清除,通过 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 验证日志收集

ELK-beats 数据采集

拓展:关于 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

业务拓扑:

ELK-beats 数据采集

案例分析:

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

[root@node3 conf.d]# cat filebeat_to_logstash_es.conf input { beats {port => 5044 } } output { elasticsearch {hosts => ["192.168.98.201:9200"] index => "zutuanxue_node4-%{+YYYY.MM.dd}" # 定义索引 } }

重启 filebeat、logstash 服务生效配置

[root@node4 ~]# systemctl restart filebeat [root@node3 ~]# systemctl restart logstash

c、ES-head 验证

ELK-beats 数据采集

完美,实验完成

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-09发表,共计3853字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中