摘要

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,存放每个网卡的检查结果

监控结果如图