侧边栏壁纸
  • 累计撰写 121 篇文章
  • 累计创建 25 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

filebeat收集不同格式日志类型

梁来福
2024-05-15 / 0 评论 / 0 点赞 / 10 阅读 / 2615 字
温馨提示:
本文最后更新于 2024-05-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

如果日志格式不是标准的Json格式,那么该如何收集呢?

例如收集Nginx的error错误日志。

方法一

第一种方法,通过日志的字段来区分,分别收集。

简单来说,就是Nginx的access和error两个日志分别收集,然后通过共同的字段日志的path来做区分。

filebeat配置

filebeat配置文件如下

cat > /etc/filebeat/filebeat.yml << 'EOF'
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  json.keys_under_root: true
  json.overwrite_keys: true

- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log

output.elasticsearch:
  hosts: ["172.16.49.130:9200"]
  indices:
    - index: "nginx-access-%{[agent.version]}-%{+yyyy.MM}"
      when.contains:
        log.file.path: "/var/log/nginx/access.log"
    - index: "nginx-error-%{[agent.version]}-%{+yyyy.MM}"
      when.contains:
        log.file.path: "/var/log/nginx/error.log"

setup.ilm.enabled: false
setup.template.enabled: false
EOF

重启filebeat

systemctl restart filebeat
systemctl status filebeat

查看ES数据

此时,es的数据已经正常分开显示了。

方法二(推荐)

第二种方法通过标签来区分。

如果按照字段区分的话,还需要关注存到es里有哪些字段,比较繁琐。通过标签,可以自定义标签存入es,很方便。

filebeat配置

cat > /etc/filebeat/filebeat.yml << 'EOF'
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["access"]

- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  tags: ["error"]

output.elasticsearch:
  hosts: ["172.16.49.130:9200"]
  indices:
    - index: "nginx-access-%{[agent.version]}-%{+yyyy.MM}"
      when.contains:
        tags: "access"
    - index: "nginx-error-%{[agent.version]}-%{+yyyy.MM}"
      when.contains:
        tags: "error"

setup.ilm.enabled: false
setup.template.enabled: false
EOF

重启filebeat

systemctl restart filebeat
systemctl status filebeat

查看ES数据

此时,es的数据已经也正常分开显示了。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论