基于consul的服务自动发现
本文档分为两部分:
1、consul服务的安装,与Prometheus集成后能够实现命令行注册服务;
2、consul-manager安装,可以用可视化界面进行服务注册和管理,简化操作。
一、consul服务安装
1、下载
下载地址,选择合适的版本,这里我选的是1.19.1
https://releases.hashicorp.com/consul/1.19.1/consul_1.19.1_linux_amd64.zip
2、解压
这里我的解压路径为/usr/local/prometheus/consul_1.19.1
cd /usr/local/prometheus/consul_1.19.1
#解压
unzip consul_1.19.1_linux_amd64.zip
3、配置
#设置用户
useradd consul -M -s /sbin/nologin
chown -R consul.consul /usr/local/prometheus/consul_1.19.1
#创建启动启动服务
vim consul.service
填入以下内容:
[Unit]
Description=Consul Agent
Requires=network-online.target
After=network-online.target
[Service]
User=consul
Group=consul
ExecStart=/usr/local/prometheus/consul_1.19.1/consul agent -dev -client=0.0.0.0
ExecReload=/usr/local/prometheus/consul_1.19.1/consul reload
KillMode=process
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
# 软链到服务启动目录:
ln -s /usr/local/prometheus/consul_1.19.1/consul.service /etc/systemd/system/consul.service
#启动之前打开rpcbind,已经打开则忽略(检查:sudo systemctl status rpcbind)
sudo systemctl start rpcbind
#重载服务
systemctl daemon-reload
4、启动服务:
#启动
systemctl start consul
#停止
systemctl stop consul
#检查
systemctl status consul
5、服务注册使用
用命令行方式注册服务:
curl -X PUT -d '{"id": "10.23.190.29","name": "node_exporter","address": "10.23.190.29","port": 9100,"tags": ["exporter"],"meta": {"job": "node_exporter","instance": "10.23.190.29:9100(nginx)"},"checks": [{"http": "http://10.23.190.29:9100/metrics", "interval": "5s"}]}' http://localhost:8500/v1/agent/service/register
打开consul,可以看到注册成功
6、与Prometheus集成
修改Prometheus配置文件(修改前记得备份):
- job_name: 'consul_exporter'
consul_sd_configs:
- server: '192.168.10.14:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*exporter.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
重载配置文件
curl -X POST http://localhost:9090/-/reload
在Prometheus界面上可以看到该服务已被检测到
但是命令行注册比较不方便,所以后面计划用后羿平台管理服务
上一篇:prometheus安装部署(三)(alertmanager告警并发送到企业微信机器人)
下一篇:prometheus安装部署(五)(consul+ConsulManager后羿可视化平台)