Consul是一款常用的服务发现和配置管理工具,可以很好地管理和发现分布式系统中的服务和实例。而Prometheus是一款常用的开源监控和告警系统,可以监控各种不同的系统组件并进行告警和分析。本文将介绍如何使用Prometheus监控Consul服务端,以便更好地管理和分析Consul集群的运行情况。
Conusl版本:Consul v1.5.3
1、首先从官方网站(https://www.consul.io/downloads.html)下载适用于您的操作系统的二进制文件。
2、解压缩下载的文件。例如,在Linux中,您可以使用以下命令解压缩:
unzip consul_1.x.x_linux_amd64.zip
3、将解压缩的二进制文件移动到一个目录中,例如/usr/local/bin
:
sudo mv consul /usr/local/bin/
4、创建一个配置文件来配置Consul服务端
mkdir -p /etc/consul/ && cd /etc/consul/[root@bt consul]# cat consul.hcl
data_dir = "/var/lib/consul"
log_level = "WARN"
enable_syslog = true
server = true
bootstrap = true
ui = true
datacenter = "ownit"
check_update_interval = "0s"
bind_addr = "192.168.102.20"
client_addr = "192.168.102.20"
telemetry {prometheus_retention_time = "24h" #Consul自带的监控disable_hostname = true
}该配置文件指定Consul服务端应该使用的数据中心、是否是服务器节点(server)、启动集群时期望的服务器数量(bootstrap_expect)、数据存储目录(data_dir)、日志级别(log_level)、是否启用syslog(enable_syslog)、是否启用UI(ui)以及HTTP地址(addresses.http)。
5、启动Consul服务端
vim /usr/lib/systemd/system/consul.service[Unit]
Description=consul-server
After=network-online.target[Service]
User=consul
PIDFile=/var/lib/consul/consul-server.pid
ExecStart=/usr/bin/consul agent -config-dir /etc/consul -pid-file /var/lib/consul/consul-server.pid -log-file /var/log/consul/consul-server.log
ExecReload=/bin/kill -s SIGHUP $MAINPID
ExecStop=/bin/kill -INT $MAINPID[Install]
WantedBy=multi-user.targetsystemctl daemon-reload && systemctl restart consul
Prometheus监控系统由以下几个主要组件组成:
要将Consul服务端的监控指标数据导入到Prometheus中,可以使用Consul的官方Exporter或第三方Exporter。这些Exporter将Consul的运行指标数据暴露为Prometheus可以处理的格式。下面以官方Exporter为例进行介绍。
可以通过以下命令来下载Consul Exporter:
wget https://github.com/prometheus/consul_exporter/releases/download/v0.6.0/consul_exporter-0.6.0.linux-amd64.tar.gz
需要创建一个systemd服务文件
vim /usr/lib/systemd/system/consul_exporter.service[Unit]
Description=Consul Exporter
After=network.target[Service]
Type=simple
#User=conusl
ExecStart=/usr/local/consul_exporter/consul_exporter --consul.server=192.168.102.20:8500
Restart=always[Install]
WantedBy=multi-user.targetsystemctl daemon-reload && systemctl restart consul_exporter
systemctl status consul_exporter
访问地址: http://192.168.102.20:9107/metrics
- job_name: 'consul'scrape_interval: 10sscrape_timeout: 10sstatic_configs:- targets: ['192.168.102.20:9107']
https://hellowoodes.oss-cn-beijing.aliyuncs.com/picture/custom-consul-grafana-dashboard.json
https://grafana.com/grafana/dashboards/12049-consul-exporter-dashboard/
telemetry {prometheus_retention_time = "24h" #Consul自带的监控disable_hostname = true
}
- job_name: consul-serverhonor_timestamps: truescrape_interval: 15sscrape_timeout: 10smetrics_path: '/v1/agent/metrics'scheme: httpparams:format: ["prometheus"]static_configs:- targets:- 192.168.102.20:8500
https://grafana.com/grafana/dashboards/2351-consul/
点击左侧+
按钮,选择 import
,输入Dashboard ID为 10642
,选择Prometheus为刚才添加的数据源,点击Import后即可看到监控面板
下一篇:Shell 简介