小生博客:http://xsboke.blog.51cto.com
<代码> - - - - - - -谢谢您的参考,如有疑问,欢迎交流代码><人力资源/>
目录
-
<李>需求李>
<李>环境李>
<李> logstash配置李>
<李> kibana配置李>
需求
<代码>使用Geoip解析nginx用户IP地理位置,然后通过kibana的“坐标图”实现映射用户地理位置可视化代码>
环境
这里主要展示<代码> logstash过滤器插件代码>和<代码> kibana> 代码的配置,之前的配置请参考:ELK7.4——快速入门实现数据收集
<代码> web 172.16.100.251 nignx/filebeat/logstash elasticsearch 172.16.100.252 elasticsearch/kibana 代码>
<代码>网络> 代码配置
-
<李>
添加<代码> 代码>管道配置
<代码> vim/etc/logstash/conf.d/nginx.conf 输入{ 节拍{ 端口=比;5044 } } 过滤器{ 如果在[标记]“nginx_access”{ 神交{ 匹配=比;{“消息”=比;“%{号码:request_time} \ | % {IPORHOST: access_domain} \ | % {IPORHOST: remote_addr} \ | %{用户名:remote_user} \ | \ [% {HTTPDATE: time_local} \] \ | % {NOTSPACE: request_method} % {NOTSPACE:请求}(?:HTTP/%{号码:http_version}) %{号码:地位}\ \ | | %{号码:upstream_status} \ | %{号码:upstream_response_time} \ | % {NOTSPACE: upstream_addr} \ | %{号码:body_bytes_sent} \ | % {NOTSPACE: request_body} \ | % {NOTSPACE: http_referer} \ | % {GREEDYDATA: http_user_agent} \ | % {NOTSPACE: http_x_forwarded_path} \ | % {NOTSPACE: upstream_cache_status} "} } geoip { 源=比;“remote_addr” 目标=比;“geoip”#要发送的字段,默认为此 add_field=比;[" [geoip](坐标)”,“% {[geoip][经度]}”)#获取经度 add_field=比;[" [geoip](坐标)”,“% {[geoip](纬度)}”)#获取纬度 } 变异{ 转换=比;[" [geoip](坐标)”,“浮动”)#修改经纬度为浮点数 } } } 输出{ 如果在[标记]“nginx_access”{ elasticsearch { 主机=比;[" 172.16.100.252:9200 "] 指数=比;“logstash-nginx_access——% {+ YYYY.MM。dd}“#使用以logstash索引可以免除手动指定geoip为geo_point类型。 } } } 代码>李>
<代码> elasticsearch> 代码配置
-
<李>
<代码> kibana> 代码配置
<代码>默认情况下kibana使用“弹性地图服务”显示地图模块,要使用其他服务提供商的模块可以通过修改“map.tilemap.url”实现,下面是修改为高德地图 # map.tilemap。url: http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&大?1,规模=1,风格=7,x={x}, y={y}, z={z} ' 7.4版本的kibana对中文兼容性更好,个人建议使用kibana默认的“弹性地图服务”显示地图模块,可以修改kibana的语言从而显示中文: # i18n。地区:“应用”代码>李> <李>
<代码> kibana Web> 代码配置
新建<代码>可视化> 代码→<代码>坐标地图代码>→选择<代码> logstash索引代码>
根据下图进行配置然后保存即可
李>