一、Consul服务发现配置
1. Consul服务部署
通过官方文档指引完成安装(https://developer.hashicorp.com/consul/install#linux),需根据系统环境选择对应版本。以下为典型部署流程:
unzip consul_1.12.2_linux_amd64.zip
mkdir -p /data/consul
cp consul /usr/local/bin/
consul -h
nohup consul agent -server -bootstrap -bind=192.168.10.91 \
-client=192.168.10.91 -data-dir=/data/consul -ui \
-node=192.168.10.91 &
集群节点可通过
-join 参数加入现有集群,生产环境建议采用集群部署模式。
2. 服务注册测试
通过API接口注册监控目标:
curl -X PUT -d '{"id": "node-exporter89","name": "node-exporter89",\
"address":"192.168.10.89","port":9100,"tags": ["node-exporter"],\
"checks": [{"http":"http://192.168.10.89:9100/","interval": "5s"}]}' \
http://192.168.10.91:8500/v1/agent/service/register
3. Prometheus配置解析
配置文件片段示例如下:
- job_name: consul_monitor
metrics_path: /metrics
consul_sd_configs:
- server: 192.168.10.91:8500
services: []
relabel_configs:
- source_labels: ['__meta_consul_tags']
target_label: 'product'
- source_labels: ['__meta_consul_dc']
target_label: 'idc'
- source_labels: ['__meta_consul_service']
regex: "consul"
action: drop
4. 动态发现验证
通过添加新节点并执行反注册操作验证动态发现能力:
curl --request PUT http://192.168.10.91:8500/v1/agent/service/deregister/node-exporter91
二、静态文件服务发现
1. 配置文件创建
在指定目录创建目标列表文件:
cd /usr/local/prometheus/file_sd
vim node.yaml
- targets:
- '192.168.10.89:9100'
- '192.168.10.90:9100'
- '192.168.10.91:9100'
2. Prometheus配置集成
配置文件片段:
- job_name: file_monitor
metrics_path: /metrics
file_sd_configs:
- files:
- /usr/local/prometheus/file_sd/node.yaml
refresh_interval: 10s
三、DNS服务发现
1. DNS记录配置
在DNS服务器中添加如下记录:
k8s-master.xxxx.com A 192.168.10.89
k8s-node1.xxxx.com A 192.168.10.90
k8s-node2.xxxx.com A 192.168.10.91
2. Prometheus配置示例
配置片段:
- job_name: dns_monitor
metrics_path: "/metrics"
dns_sd_configs:
- names:
- k8s-master.xxxx.com
- k8s-node1.xxxx.com
type: A
port: 9100
refresh_interval: 15s