Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[logstash/kibana] Draw a Map on Kibana by data from Logstash – Fix “Index pattern does not contain any geospatial fields”

Posted on January 24, 2022February 4, 2022 By nim 3 Comments on [logstash/kibana] Draw a Map on Kibana by data from Logstash – Fix “Index pattern does not contain any geospatial fields”

Như ở một bài viết mình đã giới thiêụ cách chuyển IP public -> thành phố, quốc gia, … trên logstash

[Logstash] Discovering Pipeline inside Logstash

Contents

Toggle
  • 1) create Map Chart and first issue
  • 2) research on “index_template“
  • 3) Draw the map chart on kibana

1) create Map Chart and first issue

Mục tiêu của bài này là làm sao chúng ta đưa data đó lên 1 bảng đồ trên kibana.

Để tạo chart đầu tiên chúng ta làm như hình

Và bạn nếu lần đầu làm thì sẽ thấy dòng chữ này:
Index pattern does not contain any geospatial fields

Nhưng mà mình sẽ cho bạn thấy index đã có thông tin GeoIP

Vậy tại sao mình vẫn ko vẽ được?

2) research on “index_template“

Bạn theo mình từng bước nhé:

Đi vào devtools của kibana và gõ
GET _index_template

nó sẽ show ra một mớ index template ở đây.

hoặc là GET _template

Bạn sẽ thấy có template là logstash
Vì mình đã chạy logstash trên này.

Chúng ta sẽ tìm hiểu thử template của logstash nhé:

chúng ta đi vào index_patterns là Logstash-*
rồi tìm vào trong mappings
Bạn lăn xuống sẽ có phần là properties

trong này bạn thấy có
+ @timestamp: thì có @ ở đầu nghĩ là các field mà được tạo tự động bới kibana thì phải?
+ geoip cái này cần chú ý nè.

Từ template mà mình show cho các bạn thì nó sinh ra thêm 1 cái là mapping
template là cái chung nó sẽ được sử dụng trước khi cái index được tạo.

GET kongapi-2022.01.22/_mapping

Ở cái mapping của từng index theo từng ngày như trên:
Bạn sẽ thấy trong mapping có những field nào và kiểu dữ liệu như thế nào?

–> vậy mapping của từng ngày sẽ có thể khác nhau. Tuỳ vào ngày đó có nhiều field hay ít field.

Chỗ này chúng ta cần tìm hiểu 1 síu về vụ *.keywork

chúng ta có là:
city_name: Ho Chi Minh (1)
city_name.keyword: “Ho Chi Minh”

city_name: Bien Ho (2)

Khi bạn search
Nếu bạn dò là city_name = Ho thì nó sẽ match với (1) (2)
Nếu bạn dò là city_name.keyword: “Ho Chi Minh” thì nó sẽ match mới (1)

Từ đó mà khi chúng ta tạo virtualization chúng ta nên sử dụng xxx.keyword

"ignore_above" : 256
1 text mà trên 256 kí tự thì nó sẽ không đem vào keyword.

Ồ sau khi đã tìm hiểu cũng kha khá nhiều òi
Giờ quay lại với việc làm sao để kong-* vẽ được cái bản đồ.

Cần stop logstash nhé.

root@elastic1-u20:~# docker ps
CONTAINER ID   IMAGE                                        COMMAND                  CREATED      STATUS      PORTS                                                           NAMES
7d356e7c2bf8   docker_kibana                                "/bin/tini -- /usr/l…"   2 days ago   Up 2 days   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                       docker_kibana_1
81324a583d60   docker.elastic.co/logstash/logstash:7.16.3   "/usr/local/bin/dock…"   2 days ago   Up 2 days   5044/tcp, 0.0.0.0:5000->5000/udp, :::5000->5000/udp, 9600/tcp   docker_logstash_1
root@elastic1-u20:~# docker stop 81324a583d60

Mình phải xoá các index kongapi-*
DELETE kongapi-*

Khi dò lại thì ko còn index kongapi-*

Giờ minh cung cấp cho bạn các command để tạo template

##### Get template by name
GET _index_template/kongapi


##### Create new index template
PUT _index_template/kongapi
{
  "index_patterns": ["kongapi-*"],
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 0
    },
    "mappings": {
      "properties": {
        "@timestamp" : {
          "type" : "date"
        },
        "geoip": {
          "dynamic": true,
          "properties": {
            "location": {
              "type": "geo_point"
            }
          }
        },
        "@version" : {
          "type" : "keyword"
        }
      }
    },
    "aliases": {
      "mydata": { }
    }
  }
}

bạn cần chú ý ở đây:

Nghĩ là mình mình sẽ có 1 bản data primary và 0 có bản data replicas

Vì mình chỉ dựng 1 elastic trên môi trường production thì bạn nên để tối thiểu là 1 replicas nhé.

Ngoài ra bạn có thể kiểm tra các index khác config như thế nào bằng cách.

Và vụ này chúng ta sem tìm hiểu kĩ hơn sau nhé.
Tạm thời setup như các index khách đi đã.

put vào trong elastic

khới động lại logstash.

giờ mình đã thấy có index kongapi

3) Draw the map chart on kibana

vậy là đã chạy rồi anh em nhé
Ấn Next nào!
Đặt tên cho layer này.
tooltip anh chọn số thông tin cần thiết
Khi chúng ta đưa chuột nó sẽ hiện popup.
Ở đây là mình muốn hiên City and Country.

Sau đó ấn save and close

nếu bạn muốn add map thì chọn Existing
còn như mình thì mình tạo mới.
Ấn save lần nữa cho chắc ăn
Chỗ này mới đặt tên dashboard

thì 1 dashboard sẽ có nhiều chart

cách đổi tên chart

Note:

Nếu IP đó là IP public hoặc geoip ko hiểu được bạn sẽ thấy 1 lỗi.

Lỗi này nhé: “_geoip_lookup_failure”
ELK, Kibana, Logstash

Post navigation

Previous Post: [Logstash] Discovering Pipeline inside Logstash
Next Post: [Kubernetes] RBAC Demo

More Related Articles

[Kibana-ELK] Installing and Seting a Kibana For ELK ELK
[Kibana] Create a Tag cloud or TEXT Chart on Kibana! Kibana
[Logstash] Discovering Pipeline inside Logstash ELK
[Logstash] Install Logstash and send logs from Kong Gateway to Logstash. So fast and easy – ELK ELK
[Golang/Elasticsearch] How to send data or anything to Elasticsearch by Golang ELK
[error] Solve elasticsearch error Limit of total fields [1000] in index [xxx] ELK

Comments (3) on “[logstash/kibana] Draw a Map on Kibana by data from Logstash – Fix “Index pattern does not contain any geospatial fields””

  1. Tri Nguyen says:
    March 11, 2022 at 8:51 am

    Đỉnh của chóp, đúng thứ đang tìm. Cảm ơn bác nhiều nhé !

    Reply
  2. Mike Thx says:
    May 25, 2022 at 7:43 pm

    You save my day and fixed my problem with geoip filter at all!!!! Thank you so much a keep push. Well done!!!

    Reply
    1. nim says:
      May 26, 2022 at 10:51 am

      So Happy! When my post has helped you to resolve your problem!

      Reply

Leave a Reply to Mike Thx Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Azure] The subscription is not registered to use namespace ‘Microsoft.ContainerService’ May 8, 2025
  • [Azure] Insufficient regional vcpu quota left May 8, 2025
  • [WordPress] How to add a Dynamic watermark on WordPress. May 6, 2025
  • [vnet/Azure] VNet provisioning via Terraform. April 28, 2025
  • [tracetcp] How to perform a tracert command using a specific port. April 3, 2025

Archives

  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.