暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Filebeat实战-采集Json格式日志

DevOps架构实战 2022-02-21
4130

        

点击关注公众号

分享到“朋友圈”,每天上午 08:00,干货推送!

 使用nginx进行服务器管理时候,日志对于统计、审查、排错来说非常有利,通过日志能更准确的定位信息,快速解决问题,日志转化成json格式,更好的查看和定位问题,是日志采集的标准。

filebeat保持每个文件的状态并频繁刷新状态到磁盘上的注册文件,状态用于记忆收割者读取的最后一个偏移量并确保所有的日志行被发送,如果一个es或logstash的输出不可达时,filebeat将持续追踪发送的最后一样并继续读取文件,尽快可以变为可用的输出,当filebeat运行时,状态信息将被每个勘探者保存在内存中,当filebeat被重启,会使用注册文件读取数据重建状态,并且让每个收割者从一直的最后位置开始;每个勘探者为他发现的每个文件保持一个状态,因为文件可能被删除或移动,文件名和路径不足以确定一个文件。

Nginx使用Json格式日志

log_format json '{"@timestamp":"$time_iso8601",'

                 '"clientip":"$remote_addr",'

                 '"status":$status,'

                 '"bodysize":$body_bytes_sent,'

                 '"referer":"$http_referer",'

                 '"ua":"$http_user_agent",'

                 '"handletime":$request_time,'

                 '"url":"$uri"}';

access_log  /usr/local/nginxlogs/access.log  json;

Filebeat采集Json格式的日志

filebeat.inputs:

- type: log

  tail_files: true

  backoff: "2s"

  paths:

      - /usr/local/nginx/logs/access.log

output:

  logstash:

    hosts: ["192.168.20.179:5044"]

Logstash解析Json日志

input {

  beats {

    host => '0.0.0.0'

    port => 5044

  }

}

filter {

  json {    source => "message"    remove_field => ["message","@version","path","beat","input","log","offset","prospector","source","tags"]  }

}

output {

  elasticsearch {

    hosts => ["http://192.168.20.182:9200","http://192.168.20.181:9200","http://192.168.20.180:9200"]

  }

}

----------------------end---------------------

推荐阅读:

1、Filebeat实战--收集系统日志

2、日志系统ELK+Filebeat集群部署

3、ELK收集Nginx日志

4、ES超级简单实用操作

5、Prometheus如何实现监控--干货

文章转载自DevOps架构实战,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论