ELK應用之二:Kibana顯示Nginx中來訪客戶端IP地域分布


在Kibana的visualize中顯示Nginx訪問日志客戶端IP地域分布圖

 

官網介紹:

https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-geoip.html

https://www.elastic.co/guide/en/elasticsearch/plugins/5.5/ingest-geoip.html

 

一、插件及文件配置

1 、首先,Elsaticsearch服務器中需要安裝 ingest-geoip 插件:

bin/elasticsearch-plugin install ingest-geoip

Elasticsearch安裝插件后,需要重啟服務。

2、Kibana中添加地圖:

為了顯示中文,這里我調用了高德的地圖,具體配置如下:

kibana.yml

tilemap.url: "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}"
#tilemap.url: "https://tiles.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana"
tilemap.options.minZoom: "1"
tilemap.options.maxZoom: "10"
tilemap.options.attribution: "© [Elastic Maps Service](https://www.elastic.co/elastic-maps-service)"

3、創建一個pipeline,定義client_geoip字段:

在kibana的控制台中(Dev Tools->Console)執行以下命令:

PUT _ingest/pipeline/geoip-info
{
  "description": "Add geoip info",
  "processors": [
    {
      "geoip": {
        "field": "client_ip",
        "target_field": "client_geoip",
        "properties": ["location"],
        "ignore_failure": true
      }
    }
  ]
}

4、修改packetbeat配置文件,加入剛才定義的pipeline:

#vim packetbeat.yml


output.elasticsearch:
  hosts: ["192.168.1.23:9200"]     #指定輸出的elasticsearch
  pipeline: geoip-info              
  index: 'packetbeat-nginx'        #創建一個索引,針對本次抓去的日志

注意,本次packetbeat若只抓取nginx的日志,請將其他端口注釋掉,只保留80。

修改完后,重啟packetbeat。

 

二、Kibana地圖顯示

1、創建索引

Kibana->Management->index Patterns->Create Index Patterns

注意,創建的索引名稱必須以packetbeat-*、filebeat-*、logstash-*等內置字段開頭,否則某些配置無效。

這里創建名稱為 packetbeat-nginx 的索引(同packetbeat配置文件中index字段一樣)

創建完索引后,回到Discover中,選擇新創建的 packetbeat-nginx 就可以看到抓取來的nginx日志了。

2、Kibana中創建Visualize:

Visualize->create new visualization->Coordinate Map

2.1、左側選擇新創建的packetbeat-nginx索引;

2.2、Data配置如下:

 

2.3、Options配置如下:

 

以上配置完畢后,點擊開始按鈕,右側就可以顯示客戶端IP分布地圖了:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM