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
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.
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-157.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-158.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-159.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-160.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-161.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-162.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-163.png)
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
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-164.png)
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
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-166.png)
hoặc là GET _template
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-167.png)
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é:
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-168.png)
rồi tìm vào trong mappings
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-169.png)
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
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-170.png)
Ở 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
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-171.png)
"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-*
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-172.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-173.png)
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:
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-174.png)
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.
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-175.png)
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 đã.
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-176.png)
khới động lại logstash.
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-177.png)
3) Draw the map chart on kibana
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-178.png)
Ấn Next nào!
![](https://nimtechnology.com/wp-content/uploads/2022/01/Screen-Shot-2022-01-26-at-14.55.57.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-211.png)
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
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-212.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-213.png)
còn như mình thì mình tạo mới.
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-214.png)
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-215.png)
thì 1 dashboard sẽ có nhiều chart
![](https://nimtechnology.com/wp-content/uploads/2022/01/image-216.png)
Note:
Nếu IP đó là IP public hoặc geoip ko hiểu được bạn sẽ thấy 1 lỗi.
![](https://nimtechnology.com/wp-content/uploads/2022/02/image-29.png)
Đỉnh của chóp, đúng thứ đang tìm. Cảm ơn bác nhiều nhé !
You save my day and fixed my problem with geoip filter at all!!!! Thank you so much a keep push. Well done!!!
So Happy! When my post has helped you to resolve your problem!