网站首页 > 技术教程 正文
nginx日志详细的记录了客户端访问的各类细节参数,如IP、URL、请求类型、返回值等,EFK通过分析IP字段,可以地图插件的支持下显示客户端地理分布。
§格式化nginx日志
首先,为了方便收集nginx日志,先格式化nginx日志为json,打开nginx.conf配置文件,在http{}中添加如下日志格式化参数
1 log_format logstash_json '{ "@fields": { ' 2 '"@timestamp": "$time_iso8601", ' 3 '"remote_addr": "$remote_addr", ' 4 '"remote_user": "$remote_user", ' 5 '"body_bytes_sent": "$body_bytes_sent", ' 6 '"request_time": "$request_time", ' 7 '"http_device_id": "$http_device_id", ' 8 '"http_client_type": "$http_client_type",' 9 '"http_device_name":"$http_device_name",' 10 '"status": "$status", ' 11 '"request": "$request", ' 12 '"request_method": "$request_method", ' 13 '"host": "$host", ' 14 '"server_port": "$server_port", ' 15 '"http_referrer": "$http_referer", ' 16 '"body_bytes_sent":"$body_bytes_sent", ' 17 '"http_x_forwarded_for": "$http_x_forwarded_for", ' 18 '"http_user_agent": "$http_user_agent" } }';
其次,在站点配置中引用,如下示例
1 access_log logs/yiqihao_staging_access.log logstash_json;
§Fluentd添加地图库插件fluent-plugin-geoip
插件地址,以下为CentOS7的安装
1 yum groupinstall "Development Tools" 2 yum install geoip-devel --enablerepo=epel 3 td-agent-gem install fluent-plugin-geoip
在GeoIP官网下载免费地图数据库包(GeoLite City即可),解压并放在路径/etc/td-agent/下,假设文件名为GeoLiteCity.dat
§Fluentd添加geoip配置信息
1 # Parse IP to Geo 2 <filter staging.nginx**> 3 @type geoip 4 5 # Specify one or more geoip lookup field which has ip address (default: host) 6 # in the case of accessing nested value, delimit keys by dot like 'host.ip'. 7 geoip_lookup_keys @fields.remote_addr 8 9 # Specify optional geoip database (using bundled GeoLiteCity databse by default) 10 geoip_database "/etc/td-agent/GeoLiteCity.dat" 11 # Specify optional geoip2 database 12 # geoip2_database "/path/to/your/GeoLite2-City.mmdb" (using bundled GeoLite2-City.mmdb by default) 13 # Specify backend library (geoip2_c, geoip, geoip2_compat) 14 backend_library geoip2_c 15 16 # Set adding field with placeholder (more than one settings are required.) 17 <record> 18 city ${city.names.en["@fields.remote_addr"]} 19 #latitude ${location.latitude["@fields.remote_addr"]} 20 #longitude ${location.longitude["@fields.remote_addr"]} 21 location '[${location.longitude["@fields.remote_addr"]},${location.latitude["@fields.remote_addr"]}]' 22 country ${country.iso_code["@fields.remote_addr"]} 23 country_name ${country.names.en["@fields.remote_addr"]} 24 #postal_code ${postal.code["@fields.remote_addr"]} 25 </record> 26 27 # To avoid get stacktrace error with `[null, null]` array for elasticsearch. 28 skip_adding_null_record true 29 30 # Set @log_level (default: warn) 31 @log_level info 32 </filter>
§修改location字段默认类型为geo_point
先不要启动fluentd,需要在elasticsearch未生成nginx的索引日志时,将location字段的默认类型个性为geo_point(若不修改,默认会是float,无法生成地图数据);直接在kibana的Dev Tools中执行如下命令(索引根据实际情况)
1 PUT _template/logstash-nginx-prod* 2 { 3 "template": "logstash-nginx-prod*", 4 "mappings": { 5 "_default_": { 6 "properties" : { 7 "location": { "type": "geo_point"} 8 } 9 } 10 } 11 }
然后开启nginx的日志收集
1 service td-agent start/restart
§然后在kibana中直接创建Tile Map即可
默认地图全是英文名称,要添加高德中文名称地图支持,在kibana.yaml文件最后添加如下一行配置,并重启kibana即可
1 tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={
猜你喜欢
- 2024-10-10 通过nginx日志分析IP UV和PV量(nginx日志访问量前十的ip)
- 2024-10-10 Nginx 之 realip模块 使用详解(nginx rewrite模块)
- 2024-10-10 nginx+lua站点防止ip刷新数据处理
- 2024-10-10 生产环境用shell进行nginx日志访问IP和URL统计
- 2024-10-10 https网站(nginx服务器)如何禁止“直接通过IP地址访问”
- 2024-10-10 Nginx通过ip进行限流,并增加白名单
- 2024-09-14 nginx允许IP访问不生效问题「原创」
- 2024-09-14 Linux 配置Nginx反向代理教程和说明
- 2024-09-14 Nginx反向代理:通过外网访问内网数据库(mysql)
- 2024-09-14 详解nginx限制IP恶意调用短信接口处理方法
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)