01. elastcsearch-monitor (es 监控)
文章目錄
- 1.數據的搜集目的地維度可以有兩個
- 2. 監控在一個集群內的配置也可以有多個維度
- 3. 監控的實現方式也有多種
- 4. kibana配置監控
- 4.1 監控相關的通用配置
- 4.2 kibana的monitor-data相關
- 4.3 極簡集群搭建
- 4.4 開啟集群監控功能
- 4.4.1 通過es開啟集群監控
- 4.4.2 通過kibana開啟集群監控
- 4.5 kibana monitor-data的設置
- 4.6 簡單回顧
- 5. logstash monitor-data設置
- 5.1 監控相關的配置
- 5.2 logstash使用metrict作為監控
- 6. elasticsearch 的配置
- 6.1 相關配置概覽
- 6.2 xpack.monitoring.enabled
- 6.2.1 當前節點為非master節點
- 6.2.2 當前節點為master節點
- 6.3 xpack.monitoring.elasticsearch.collection.enabled
這里主要是學習一下es的monitor機制
首先是整個鏈路的數據都要監控的包括filebeat,logstash,kibana,es,都可以收集到es集群中去。
借用es官方的一個圖
1.數據的搜集目的地維度可以有兩個
2. 監控在一個集群內的配置也可以有多個維度
3. 監控的實現方式也有多種
4. kibana配置監控
因為kibana是用來顯示所有的監控數據的,他的監控數據也可以分發到任意的其他集群。
kibana是使用node-server將數據發送到了對應的es當中,不像es,logstash可以使用exporter,metricbeat多種收集方式,
4.1 監控相關的通用配置
xpack.monitoring.enabled: true 打開監控的features,如果設置為false,負責監控的進程的進程就不會啟動, 包括產生kibana的監控數據,包括去es中拉取對應的其他的比如es,logstash,filebeat等的監控數據。下面3個配置的是kibana監控數據將發到那個es集群 xpack.monitoring.elasticsearch.hosts xpack.monitoring.elasticsearch.username xpack.monitoring.elasticsearch.password4.2 kibana的monitor-data相關
1. xpack.monitoring.kibana.collection.enabled: true 這個是設置收集kibana monitor data數據到es當中 2. xpack.monitoring.kibana.collection.interval: 監控數據收集的間隔ms4.3 極簡集群搭建
es的配置為
cluster.name: dev-log node.name: ES01 bootstrap.system_call_filter: false network.host: 10.76.0.98 http.port: 12200 transport.port: 12300 discovery.seed_hosts: ["10.76.0.98:12300","10.76.3.145:12300","10.76.0.129:12300"] cluster.initial_master_nodes: ["ES01", "ES02","ES03"]此時的kibana配置
server.name: ch-dev server.port: 45601 server.host: 10.76.0.129 elasticsearch.hosts: ["http://10.76.0.98:12200"]此時可以看到沒有任何關于監控的顯式設置,監控相關都是使用的默認設置
啟動es之后,直接打開kibna,如果打開監控對應的菜單,顯示
說明默認情況下數據并不能成功的收集到集群當中去。還是需要開啟的。
4.4 開啟集群監控功能
??通過上面的配置不能進行監控,并不是kibana的設置有問題,而是整個集群的監控功能沒有開啟,xpack.monitoring.collection.enabled 配置就是針對整個集群的配置,這個配置針對的是es,告訴es是否收集自己的monitor-data,是否接收由kibana,logstash,filebeat等發送過來的監控數據。這個可以直接通過api在集群中進行動態的設置。也可以在每個es節點中進行設置。
4.4.1 通過es開啟集群監控
如果在每個es節點中都設置
xpack.monitoring.collection.enabled: true重啟整個集群,kibana就不會有這個提示了,而且可以直接顯示出來監控面板
同時還有kibana的監控菜單里面也有kibana的monitor-data
4.4.2 通過kibana開啟集群監控
在kibana的提示下開啟監控:
這個時候是使用集群的_cluster/setting api進行設置的
點擊完kibana的確認按鈕之后可以查詢接口查詢到cluster已經有了這樣的設置。
4.5 kibana monitor-data的設置
如果將
xpack.monitoring.kibana.collection.enabled: false添加到kibana的配置當中,那么kibana的數據就從監控面板中消失了,但是es的數據還是有的
如果再添加一個設置
xpack.monitoring.enabled: falsekibana服務還可以訪問,但是監控的菜單直接消失了,就是所有的監控相關的功能都不再提供了,不會去es中拉取相關的數據了。
所以xpack.monitoring.enabled 控制的是kibana中提供監控展示等服務模塊是否還工作。
4.6 簡單回顧
在進一步學習之前,通過對kibana的監控配置簡單做一個回顧
集群做了很多的默認配置,使監控變得更加簡單,但是默認情況下是無法進行監控的,需要通過
來開啟集群的設置,然后kibana通過開啟
xpack.monitoring.enabled: true 打開監控的features,如果設置為false,負責監控的進程的進程就不會啟動,包括產生kibana的監控數據,包括去es中拉取對應的其他的比如es,logstash,filebeat等的監控數據。xpack.monitoring.elasticsearch.hosts 默認使用kibana連接的集群,可以單獨配置 xpack.monitoring.elasticsearch.username 在集群開啟security配置的時候才需要這個 xpack.monitoring.elasticsearch.password 同上 xpack.monitoring.kibana.collection.enabled: true 這個是設置收集kibana monitor-data數據到es當中, xpack.monitoring.kibana.collection.interval: 10000 (10s)5. logstash monitor-data設置
logstash相對于es和kibana需要設置的東西更少,因為在整個監控鏈路中,es不僅作為被監控對象,同時作為監控數據的存儲庫,kibana不僅作為被監控對象,而且是監控數據的展示終端,需要有專門的進程去對監控數據做聚合等查詢,而logstash則僅僅是作為被監控對象存在。
5.1 監控相關的配置
在es節點或者_cluster/setting當中進行設置了
在config/logstash.yml中配置
可以看到,直接通過xpack.monitoring.enabled控制了是否收集logstash的數據。
不像kibana中單獨使用了xpack.monitoring.kibana.collection.enabled來進行kibana數據是否搜集的配置,同樣在es中也有一個類似的這樣的配置
5.2 logstash使用metrict作為監控
在5.1中logstash使用的監控默認的是internal的collection收集方式
可以使用metricbeat來進行收集,應為使用metricbeat是單獨部署的方式,后面再看
6. elasticsearch 的配置
es身兼的角色比較多,所以相關的配置也更多。
6.1 相關配置概覽
首先,集群級別的配置
xpack.monitoring.collection.enabled: true可以通過cluster-setting api進行設置,也可以通過在es的配置文件中進行設置
接下來是es的三個相關設置
xpack.monitoring.enabled: true 開啟當前node的monitor設置 xpack.monitoring.elasticsearch.collection.enabled: true 這個設置了是否收集es相關的data xpack.monitoring.collection.interval: 10000xpack.monitoring.collection.enabled: true的作用自不必多說,下面主要說一下其他兩個的作用
6.2 xpack.monitoring.enabled
當我在es的節點上設置
xpack.monitoring.enabled: false出現了下面兩種情況
6.2.1 當前節點為非master節點
只要這個節點不是master節點話,kibana上的監控都比較正常,有kibana的數據,也有es的數據,但是對應的那個設置為false的es節點的數據沒有了。
這個也很自然,這個配置理論上至少可以達到禁止當前節點的monitor的效果。
6.2.2 當前節點為master節點
如果master節點設置了
xpack.monitoring.enabled: false打開kibana的監控菜單,會看到這樣的信息
You need to make some adjustments To run monitoring please perform the following stepsWe checked the nodeId: ADi2c-NmTnWhTmb2dDlCeA settings and found that xpack.monitoring.enabled is set to false set, which disables monitoring. Removing the xpack.monitoring.enabled: false setting from your configuration will put the default into effect and enable Monitoring.
也就是說這個應該是以master的為主,在es集群內生效,可能會導致kibana拿不到數據。
6.3 xpack.monitoring.elasticsearch.collection.enabled
這個配置的含義是比較直觀的,經過測試,確實是這樣,他的作用類似
xpack.monitoring.kibana.collection.enabled: true 這個是設置收集kibana monitor-data數據到es當中,就是設置了當前node的數據是否收集到es當中
在實際測試中當master節點設置了false的話,kibana的顯示也是不正常的,監控菜單打不開,
但是這個時候kibana的數據實際上是能夠進入es的,因為在調整為true后發現es對應節點在過去的一段時間里面是沒有數據的,但是kibana的數據是有的,所以是展示有一些問題,但是功能上和描述相差不大。
總結
以上是生活随笔為你收集整理的01. elastcsearch-monitor (es 监控)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flink event-time 和连
- 下一篇: 02.elasticsearch-mon