当前位置:   article > 正文

搭建ELK-Filebeat采集系统日志

搭建ELK-Filebeat采集系统日志

1、解压到/data/elk/filebeat

  1. mkdir -p /data/elk/filebeat
  2. tar -zxf filebeat-7.17.7-linux-x86_64.tar.gz -C /data/elk/filebeat --strip-components=1 #--strip-components选项表示从目录级别上去除指定的前缀,以实现更加控制解压的效果

2、修改配置文件

  1. vi /data/elk/filebeat/filebeat.yml
  2. # ============================== Filebeat inputs ===============================
  3. filebeat.inputs:
  4. - type: log
  5. enabled: true
  6. paths:
  7. - /data/nginx/*.log
  8. ### 添加字段
  9. # 添加一些字段以识别项目和主机环境
  10. fields:
  11. hostenv: "production" # 主机环境
  12. project: "nginx" # 所属项目
  13. ### 多行选项
  14. # 多行选项,期望输出连续的多行日志,比如Java日志。
  15. multiline.type: pattern
  16. multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
  17. # 使用正则表达匹配行。
  18. multiline.negate: true
  19. # 定义行是否被否定,若被否定,则执行"multiline.match"
  20. multiline.match: after
  21. # 设置将匹配行与上一行(before)合并为一个事件输出,还是将匹配行与下一行(after)合并为一个事件输出。
  22. # ================================== Outputs ===================================
  23. # ...
  24. # ------------------------------ Kafka Output -------------------------------
  25. output.kafka:
  26. hosts: ["192.168.0.193:9092"]
  27. # 指定Kafka服务器连接地址,我这边由于网络环境问题,所以使用Kafka服务器的公网主机IP地址。
  28. username: "admin"
  29. # 设置连接Kafka所使用的的用户名
  30. password: "admin888"
  31. # 设置连接Kafka所使用的的用户密码
  32. topic: '%{[fields.hostenv]}-%{[fields.project]}'
  33. # 设置主题名称
  34. partition.round_robin:
  35. group_events: 1
  36. reachable_only: false
  37. # 设置消息写入主题的分区策略:默认使用hash方法。
  38. # random.group_events, 随机写入主题的任意一个分区,并设置写入分区时消息事件的数量,默认为1
  39. # round_robin.group_events,有序的轮询的写入主题分区,并设置写入分区时消息时间的数量,默认为1
  40. # hash.hash,通过哈希计算分区中的字段列表,将匹配的字段写入到同一个分区中,如果没有配置字段,则使用事件键值。
  41. # - hash.random,如果无法计算哈希或键值,则随机分发事件。
  42. # reachable_only: 默认分区都尝试向所有分区发布事件,如果一个分区的leader在这个beat下变得不可用,输出可能会阻塞,则开启该项表示允许将事件发送到可用分区。
  43. required_acks: 1
  44. # 设置Kafka代理要求的ACK可靠性级别:
  45. # 0,无响应。
  46. # 1,等待本地提交。
  47. # -1,等待所有副本提交。
  48. # 注:如果设置为0,则Kafka不会返回任何ACK。出现错误时,消息可能会自动丢失。
  49. compression: gzip
  50. # 设置输出压缩编解码器,默认为gzip。支持none、snappy、lz4和zip压缩方式。
  51. compression_level: 4
  52. # 设置压缩级别,默认为4。如果设置为0,则表示不压缩。
  53. max_message_bytes: 10000000
  54. # JSON编码消息最大允许大小。更大的信息将被删除。默认是1M。该值应该小于或等于Kafka代理服务器
  55. # 的"message.max.bytes"

3、设置开机启动

  1. vi /lib/systemd/system/filebeat.service
  2. [Unit]
  3. Description=filebeat
  4. Wants=network-online.target
  5. After=network-online.target
  6. [Service]
  7. User=root
  8. ExecStart=/data/elk/filebeat/filebeat -c /data/elk/filebeat/filebeat.yml
  9. Restart=always
  10. [Install]
  11. WantedBy=multi-user.target
  12. #加入开机启动
  13. systemctl daemon-reload
  14. systemctl enable filebeat

4、常用命令

  1. systemctl start filebeat.service #启动
  2. systemctl stop filebeat.service #停止
  3. systemctl status filebeat.service #状态

启动后,filebeat会直接把对应的文件里面的日志自动发送到kafka对应的主题。如果不会安装kafka,请点击链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/1021476
推荐阅读
相关标签
  

闽ICP备14008679号