今天讲一下我们it这一行最经常见面的也是市场面最主流的监控服务,zabbix,它的几个核心组件和运行过程。
那么zabbix支持哪些通讯方式呢?
我们最常用的agent 基于自身zabbix_agent客户端插件监控系统的状态
SNMP: 通过SNMP协议与监控对象进行通讯,交换机、防火墙等网络设备一般都支持SNMP协议。
IPMI:智能平台管理接口(Intelligent Platform Management Interface,IPMI)IPMI最大的优势在于无论OS的开机还是关机状态下,只要接通电源就可以实现对服务器的监控。
ICMP:(因特网控制报文协议。它是IPv4协议族中的一个子协议,用于IP主机、路由器之间传递控制消息。控制消息是在网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传输用户数据,但是对于用户数据的传递起着重要的作用。
JMX:很适合去监控管理JAVA相关服务
接着画一个流程概念图
监控规模变得庞大的时候,我们可能需要监控成千上万台设备,而zabbix_server就会压力很大,这个时候我们就需要用到zabbix_proxy。
因为zabbix是分布式监控,我们可以把监控群分成不同的区域,每个区域设置一台代理主机,区域内的被监控信息都被zabbix_agent收集然后汇总给代理主机,代理主机最后在交给zabbix-server处理,这样就分摊了zabbix_server的压力。
如图所示:
zabbix_agent: 部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix_server。(有主动、被动模式,相互不冲突,可以自己提交数据,也可以等server端拉取数据)
zabbix_server: 负责接收agent发送的报告信息,并且负责组织配置信息、统计信息,操作数据等。
zabbix_database: 用来存储所有zabbix 的配置信息,监控数据的数据库。
zabbix_web: zabbix的web页面,图形化显示信息内容,可以单独部署。
zxbbix_proxy: 组件,代表server端,完成局部区域的信息收集,最终汇总给server端。