原日志从logstash输入,根据filter匹配或者修改,通过json输出到elasticsearch,然后到kibana3。所以要显示地理位置,要在logstash里面设置。logstash的jar包默认应该是有GeoIP的包的。下面是配置,pattern主要是针对Nginx的combined日志格式
log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" filter { grok { type => "linux-syslog" pattern => "%{IPORHOST:source_ip} - %{USERNAME:remote_user} \[%{HTTPDATE:time_local}\] %{QS:request} %{INT:status} %{INT:body_bytes_sent} %{QS:http_referer} %{QS:http_user_agent} } geoip { source => "source_ip" type => "linux-syslog" add_tag => [ "geoip" ] # database => "/var/geoip/GeoLiteCity.dat" 不是必须 } }
看上面的图表,有很多geoip的信息,连经度纬度都有了。
转载请注明:爱开源 » logstash+kibana3 GeoIP地理位置