Grafana+Prometheus+Alertmanager+自動發現+刪除Job (四)

1.摘要

  • 通過Prometheus 的API接口可實現刪除 job數據
  • Prometheus配置中的自動發現file_sd_configs
  • Alertmanager告警功能

2. Prometheus 的API

官方文檔:https://prometheus.io/docs/prometheus/latest/querying/api/

通過prometheus的admin-api ,我們可以執行些騷操作:

2.1 確保 prometheus 啓動的時候, 加了參數 --web.enable-admin-api

./prometheus --config.file= prometheus.yml --web.enable-admin-api

2.2 測試清理key

假定我們要清理的 key是 mysql_global_status_threads_running{instance=“test-db13:9104”,job=“mysql”}:

清理這個key的全部的數據

curl -X POST \
  -g 'http://192.168.2.100:9090/api/v1/admin/tsdb/delete_series?match[]=up&match[]=mysql_global_status_threads_running{instance="test-db13:9104",job="mysql"}'

3. file_sd_configs自動發現

自動發現機制方便我們在監控系統中動態的添加或者刪除資源。比如zabbix可以自動發現監控主機以及監控資源。

prometheus作爲一個可以與zabbix旗鼓相當的監控系統,自然也有它的自動發現機制。file_sd_configs可以用來動態的添加和刪除target。

3.1 配置

修改prometheus的配置文件:

  - job_name: 'docker'
    file_sd_configs:
      - files: ['/usr/local/prometheus/sd_config/docker.yml']
      refresh_interval: 10s 

files表示文件的路徑,文件的內容格式是yaml或者json格式,可以用通配符比如*.json。prometheus或定期掃描這些文件,並加載新配置。

refresh_interval定義掃描的時間間隔。

創建被掃描的文件docker.yml

[root@iZuf6ioqjurm6w0x1o7exjZ prometheus]# ll
total 136140
drwxr-xr-x  2 3434 3434     4096 Oct 17 23:09 console_libraries
drwxr-xr-x  2 3434 3434     4096 Oct 17 23:09 consoles
drwxr-xr-x 16 root root     4096 Nov  6 09:00 data
-rw-r--r--  1 3434 3434    11357 Oct 17 23:09 LICENSE
-rw-r--r--  1 3434 3434     2770 Oct 17 23:09 NOTICE
-rwxr-xr-x  1 3434 3434 78646149 Oct 17 21:17 prometheus
-rw-r--r--  1 root root      316 Nov  4 18:12 prometheus.service
-rw-r--r--  1 3434 3434     2518 Nov  5 22:09 prometheus.yml
-rw-r--r--  1 root root      926 Oct 30 17:30 prometheus.yml.bak
-rw-r--r--  1 root root     1030 Nov  4 15:29 prometheus.yml.bak2
-rwxr-xr-x  1 3434 3434 47209942 Oct 17 21:18 promtool
drwxr-xr-x  2 root root     4096 Nov  6 00:03 rules
drwxr-xr-x  2 root root     4096 Nov  5 22:09 sd_config
-rwxr-xr-x  1 3434 3434 13493572 Oct 17 21:19 tsdb
[root@iZuf6ioqjurm6w0x1o7exjZ prometheus]# cd sd_config/
[root@iZuf6ioqjurm6w0x1o7exjZ sd_config]# ll
total 12
-rw-r--r-- 1 root root 35 Nov  5 15:48 docker.yml
-rw-r--r-- 1 root root 34 Nov  5 22:08 process.yml
-rw-r--r-- 1 root root 51 Nov  5 15:46 prometheus.yml
[root@iZuf6ioqjurm6w0x1o7exjZ sd_config]# more docker.yml 
- targets: ['172.19.14.253:18081']

3.2 重新加載prometheus的配置

如果間隔時間短的話應該能立刻發現你新加的target

target資源如果變化大的話可以把間隔時間調小點,如果比較穩定的話可以吧間隔時間調大點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章