摘要
Consul,一个做服务发现的框架,目前听说常用于微服务架构中的服务发现,而本文主要用它的Health Checking功能来做一个简单的网卡检测。
一、Consul
什么是Consul,官网中介绍到,它是一个全功能的控制面,主要提供了以下几个功能:
- Service Discovery 服务发现 – Consul通过DNS或者HTTP接口提供服务注册功能;
- Health Checking 健康检查 – Consul可以通过配置制定监控检查规则;
- KV Store key/value存储 – 上层应用可以将Consul的KV存储用于不同的使用场景,动态配置、特征标记等等;
- Secure Service Communication 服务通信安全 – Consul可以生成和分发TLS证书,以建立相互的TLS连接,控制是否允许通信,用于代替复杂的防火墙策略;
- Multi Datacenter 多数据中心 – Consul支持多数据中心,无需复杂的配置,即可支持任意数量的区域。
这里,本文只介绍Consul一个偏门的用法,用它的Health Checking功能来做一个简单的网卡检测。
二、环境
本次模拟环境共五台服务机,服务器集群如下图所示,本次测试的目的是通过三个Consul集群来监控所有服务器的三个网卡状态。
另外,为了防止各种意外问题,先把防火墙之类的都停掉
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
三、eth0集群配置
三台Server节点首先增加如下服务配置文件
接着在/etc/consul.d/目录下增加如下配置文件
三个节点配置完成后,启动consul-mgmt.service服务,之后检查集群状态,看到状态都是alive,且选举出来了Leader,那就说明集群正常了
登入http://172.16.54.148:8500/ui/mgmt/nodes检查
四、其它两个集群配置
同理,三台Server节点增加如下服务配置文件
在/etc/consul.d/目录下增加如下配置文件
三个节点配置完成后,启动consul-data.service,consul-storage.service服务,之后检查集群状态
五、Agent配置
在Agent增加如下配置,将Agent加入节点
六、Down机测试
Down掉Server节点后如图
Down掉Agent节点后如图
七、配合Zabbix监控
Consul监控集群搭建完成后,如何将具体的告警展现出来呢? 这里使用zabbix配合进行监控告警。具体zabbix集群搭建过程这里省略,简单讲一下zabbix监控项配置。
先创建discovery,用于检查consul的配置项,也就是说用来发现监控了那些网卡/IP
再创建三个Item prototypes,用于接收、存放Agent反馈回来的网卡信息
再创建三个Item,存放每个网卡的检查结果
监控结果如图