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資源如果變化大的話可以把間隔時間調小點,如果比較穩定的話可以吧間隔時間調大點。