Prometheus添加被监控端支持两种方式:
•静态配置
•服务发现
支持服务发现的来源:
•consul_sd_configs
•openstack_sd_configs
•file_sd_configs
•kubernetes_sd_configs
基于consul的架构图
- exporter是提供者,向consul注册,提供ip、端口、metrics等信息;
- prometheus是消费者:
Docker部署Consul:
docker run --name consul -d -p 8500:8500 consul
向Consul注册服务,http://192.168.121.132:8500/v1/agent/service/register是api接口地址:
curl -X PUT -d '{"id": "k8s-2","name": "Linux","address": "192.168.121.132","port": 9100,"tags": ["service"],"checks": [{"http": "http://192.168.121.132:9100","interval": "5s"}]}' http://192.168.121.132:8500/v1/agent/service/register
普罗米修斯配置:
- job_name: 'consul_sd'
basic_auth:
username: prometheus
password: 123456
consul_sd_configs:
- server: 192.168.121.132:8500
services: ['Linux']
检查语法:
root@k8s-1 prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 0 rule files found
重新加载:
[root@k8s-1 prometheus]# ps -ef|grep prom
root 776 1 0 10:43 ? 00:00:27 /opt/monitor/prometheus/prometheus --config.file=/opt/monitor/prometheus/prometheus.yml
root 1753 1556 0 12:03 pts/0 00:00:00 grep --color=auto prom
[root@k8s-1 prometheus]# kill -HUP 776
查看网页,已经能看到consul发现的主机:
增加一台被监控端:
只需要再向Consul注册服务,http://192.168.121.132:8500/v1/agent/service/register是api接口地址:
curl -X PUT -d '{"id": "k8s-3","name": "Linux","address": "192.168.121.133","port": 9100,"tags": ["service"],"checks": [{"http": "http://192.168.121.133:9100","interval": "5s"}]}' http://192.168.121.132:8500/v1/agent/service/register
看到两台被监控机器: