ELK如何分析nginx access日志
admin
2023-03-25 00:01:19
0

注意:修改配置后建议重新创建index

1、nginx 日志文件格式

log_format elk "$http_clientip | $http_x_forwarded_for | $time_local | $request | $status | $body_bytes_sent | "
 "$request_body | $content_length | $http_referer | $http_user_agent | "
 "$http_cookie | $remote_addr | $hostname | $upstream_addr | $upstream_response_time | $request_time";

2、logstash nginx 服务器上的配置文件 agent.conf

input {  
        file {  
                type => "elk_frontend_access"  
                path => ["/data/logs/flight1-access_log"]  
        }
}  
filter {
ruby {
init => "@kname = ['http_clientip','http_x_forwarded_for','time_local','request','status','body_bytes_sent','request_body','content_length','http_referer','http_user_agent','http_cookie','remote_addr','hostname','upstream_addr','upstream_response_time','request_time']"
code => "new_event = LogStash::Event.new(Hash[@kname.zip(event.get('message').split('|'))])
new_event.remove('@timestamp')
event.append(new_event)"
}
if [request] {
ruby {
init => "@kname = ['method','uri','verb']"
code => "new_event = LogStash::Event.new(Hash[@kname.zip(event.get('request').split(' '))])
new_event.remove('@timestamp')
event.append(new_event)
"
}
if [uri] {
ruby {
init => "@kname = ['url_path','url_args']"
code => "new_event = LogStash::Event.new(Hash[@kname.zip(event.get('uri').split('?'))])
new_event.remove('@timestamp')
event.append(new_event)
"
}
kv {
prefix => "url_"
source => "url_args"
field_split => "& "
remove_field => [ "url_args","uri","request" ]
}
}
}
mutate {
convert => ["body_bytes_sent" , "integer", "content_length", "integer", "upstream_response_time", "float","request_time", "float"]
}
date {
match => [ "time_local", "dd/MMM/yyyy:hh:mm:ss Z" ]
locale => "en"
}
        grok {
        match => { "message" => "%{IP:clientip}" }
  }
        geoip 
{
        source => "clientip"
        }
}
output {
        redis {  
                host => "10.10.45.200"  
                data_type => "list"  
                key => "elk_frontend_access:redis"  
                port=>"5379"  
        }  
}

3、logstash elk服务器上的配置文件server.conf

input {  
        redis {  
                host => "10.10.45.200"  
                data_type => "list"  
                key => "elk_frontend_access:redis"  
                port =>"5379"  
        }  
}  
output {  
        elasticsearch {  
                hosts => "10.10.45.200:8200"  
                index => "logstash-zjzc-frontend-%{+YYYY.MM.dd}"  
        }  
        stdout {  
            codec => rubydebug  
        }  
}

注意:如果修改后没有生效,在kibana上重建索引。

相关内容

热门资讯

终于懂了“爱来掌中宝有挂吗?”... 您好:爱来掌中宝这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
玩家最新攻略“拱趴游戏有挂吗?... 玩家最新攻略“拱趴游戏有挂吗?”(原来真的有挂)您好,拱趴游戏这个游戏其实有挂的,确实是有挂的,需要...
【第一资讯】“白金岛红拐弯开挂... 【第一资讯】“白金岛红拐弯开挂神器?”(详细开挂教程)您好,白金岛红拐弯这个游戏其实有挂的,确实是有...
终于懂了“新皇豪拼三张开挂器?... 有 亲,根据资深记者爆料新皇豪拼三张是可以开挂的,确实有挂(咨询软件无需...
【今日要闻】“大宝麻将是不是有... 有 亲,根据资深记者爆料大宝麻将是可以开挂的,确实有挂(咨询软件无需打开...
玩家分享攻略“七彩丹霞究竟有挂... 有 亲,根据资深记者爆料七彩丹霞是可以开挂的,确实有挂(咨询软件无需打开...
终于懂了“樱花牛牛辅助器?”(... 有 亲,根据资深记者爆料樱花牛牛是可以开挂的,确实有挂(咨询软件无需打开...
我来教教您“新版悟空开挂神器?... 我来教教您“新版悟空开挂神器?”(透视曝光猫腻)您好,新版悟空这个游戏其实有挂的,确实是有挂的,需要...
玩家最新攻略“熊猫麻将是不是有... 您好:熊猫麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...
【第一财经】“数独大赛怎么装挂... 家人们!今天小编来为大家解答数独大赛透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...