近期公司要上elk做日志分析,原来的日志一直是手动拿没什么问题,现在要做规范化抽取了,有两种方案,一种是撸正则,一种是直接搞json模块,明显json会好很多,省去一堆的辣鸡报错而且还省服务器资源
修改nginx配置文件,阔以把原来的注释掉
access_log /var/log/nginx/access_json.log json;
log_format json '{"@timestamp":"$time_iso8601','
'"@version":"1",'
'"client":"$remote_addr",'
'"url":"$uri",'
'"status":"$status",'
'"domain":"$host",'
'"host":"$server_addr",'
'"size":"$body_bytes_sent",'
'"responsetime":"$request_time",'
'"referer":"$http_referer",'
'"ua":"$http_user_agent",'
'} ';
Logstash 服务文件配置模板
input {
file {
path=> "/var/log/nginx/access_json.log"
codec => "json"
}
}
output {
stdout {
codec => "rubydebug"
}
}
启动的命令
/opt/logstash/bin/logstash -f json.conf