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资源如果变化大的话可以把间隔时间调小点,如果比较稳定的话可以吧间隔时间调大点。