Grafana / Prometheus / 监控平台 / 系统运维

Prometheus结合Consul实现服务自动发现注册

浅时光博客 · 12月6日 · 2021年 · 9.8w 次已读

一、环境规划和初始化


1、环境规划

主机名服务器IP应用程序用途
consul01192.168.66.130consul服务发现、服务注册
consul02192.168.66.131consul
consul03192.168.66.132consul
prometheus192.168.66.133Prometheus Grafana Altermanager PrometheusAlert监控、数据展示、告警
node_export192.168.66.134node_export节点监控
Nginx-LB192.168.66.135nginx负载均衡

2、配置主机名

  • 所有节点执行
[root@localhost ~]# hostnamectl set-hostname xxxx

3、关闭防护墙

systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl status NetworkManager

4、关闭SELinux

sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0 && getenforce

二、Consul集群部署


1、下载安装包

#consul节点服务器执行下面的命令
mkdir /opt/soft
cd /opt/soft
wget https://releases.hashicorp.com/consul/1.10.3/consul_1.10.3_linux_amd64.zip

#创建数据目录
mkdir -p /data/consul

2、解压并安装

unzip consul_1.10.3_linux_amd64.zip -d /usr/local/
cp /usr/local/consul /usr/local/bin/

(1)通过systemd托管

#consul01节点
cat > /usr/lib/systemd/system/consul.service <<EOF
[Unit]
Description=Prometheus consul
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target
[Service]
User=root
Group=root
Type=simple
ExecStart=consul agent -server -bootstrap-expect=3 -data-dir=/data/consul -client=0.0.0.0 -datacenter=consul -bind=192.168.66.130 -ui
# data-dir 数据目录
# datacenter 数据中心名
# -bind绑定网卡,解决主机多张网卡冲突无法绑定的问题
[Install]
WantedBy=multi-user.target
EOF


#consul02节点
cat > /usr/lib/systemd/system/consul.service <<EOF
[Unit]
Description=Prometheus consul
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/consul agent -server -bootstrap-expect=3 -data-dir=/data/consul -client=0.0.0.0 -datacenter=consul -bind=192.168.66.131 -ui -join=192.168.66.130
# data-dir 数据目录
# datacenter 数据中心名
# join 需要加入的server的ip,我这里是192.168.66.130
# -bind绑定网卡,解决主机多张网卡冲突无法绑定的问题
[Install]
WantedBy=multi-user.target
EOF


#consul03节点
cat > /usr/lib/systemd/system/consul.service <<EOF
[Unit]
Description=Prometheus consul
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/consul agent -server -bootstrap-expect=3 -data-dir=/data/consul -client=0.0.0.0 -datacenter=consul -bind=192.168.66.132 -ui -join=192.168.66.130
# data-dir 数据目录
# datacenter 数据中心名
# join 需要加入的server的ip,我这里是192.168.66.130
# -bind绑定网卡,解决主机多张网卡冲突无法绑定的问题
[Install]
WantedBy=multi-user.target
EOF

(2)启动consul服务

  • 三台consul节点执行下面的命令
systemctl daemon-reload
systemctl start consul
systemctl enable consul
systemctl status consul

4、验证集群状态

[root@consul01 ~]# consul operator raft list-peers
  • 浏览器输入任意Consul节点IP加8500端口访问

二、Prometheus部署


三、Grafana部署


四、Consul集群负载


温馨提示: 隐藏内容,请在本页留言并刷新页面查看。登入账号需绑定邮箱! 点击此处绑定邮箱

4、检查服务是否正常注册


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/9297.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

26 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. indigo上海2023-3-4 · 20:55

    解决大规模集群

  2. kabar贵州·遵义2023-2-12 · 11:29

    解决大规模集群

  3. 呵呵一笑江苏·南京2023-2-2 · 22:24

    解决了分散配置,教程挺不错的;

  4. 呵呵一笑江苏·南京2023-2-1 · 14:42

    解决了分散配置,教程挺不错的;
    针对客户端服务器不在开放端口的环境,楼主可有更好的建议吗

  5. li010318浙江·杭州2023-1-9 · 10:44

    感谢楼主分享

  6. 辽宁·大连2023-1-6 · 16:23

    consul解决了大规模集群监控

  7. Lucifer广东·深圳2022-11-19 · 13:58

    consul解决了大规模集群监控

  8. 亦如当初韩国2022-9-14 · 20:51

    conslut对于解决大规模并且配置分散的prometheus配置很有用

  9. wx_970f0fe071北京2022-8-17 · 14:34

    conslut对于解决大规模并且配置分散的prometheus配置很有用

  10. matador未知2022-8-15 · 10:29

    内容有帮助,谢谢