Prometheus服务发现
Prometheus添加被监控端支持两种方式:
•静态配置:手动配置
•服务发现:动态发现需要监控的Target实例
支持服务发现的来源:
•azure_sd_configs
•consul_sd_configs
•dns_sd_configs
•ec2_sd_configs
•openstack_sd_configs
•file_sd_configs
•gce_sd_configs
•kubernetes_sd_configs
•marathon_sd_configs
•nerve_sd_configs
•serverset_sd_configs
•triton_sd_configs
基于文件的服务发现
启用基于文件的服务发现:
编辑prometheus 配置文件,如果有http认证,就需要配置
查看Prometheus web 页面
后期只需要在/opt/monitor/prometheus/sd_config 目录下新增以yml结尾的文件,就不用重启,自动加载,基于文件发现!
基于Consul的服务发现
Consul是一个分布式的服务发现和键/值存储系统
二进制部署Consul:
cd /opt/monitor && wget https://releases.hashicorp.com/consul/1.10.0/consul_1.10.0_linux_amd64.zip
启动:./consul agent -dev -client 0.0.0.0 -ui &
Docker部署Consul:
docker run --name consul -d -p 8500:8500 consul
web url 访问:http://192.168.1.25:8500/ui/dc1/services
向consul注册服务:
curl -X PUT -d '{"id": "Linux-1","name": "Linux","address": "192.168.1.25","port": 9100,"tags": ["service"],"checks": [{"http": "http://192.168.1.25:9100","interval": "5s"}]}' http://192.168.1.25:8500/v1/agent/service/register
使用consul 自动注册到Prometheus 上,配置prometheus 配置文件并加载配置文件
查看prometheus 和consul ui
使用Ansible+Consul 自动添加监控:
ansible-playbook 的yaml 文件编写
vim /usr/local/bin/consul-register.sh
最后查看Prometheus 或 grafana 上的有数据就说明ok