点击关注公众号
分享到“朋友圈”,每天上午 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---------------------
推荐阅读:




