大家对Zabbix监控的了解可能停留在概念的层面上,而对于Zabbix监控的工作原理和应用场景的了解相对较少。今天就跟大家聊聊Zabbix监控的理论知识。
Zabbix概述
Zabbix是一个企业级的开源分布式监控解决方案,由C语言编写而成的底层架构(server端和agent端),由一个团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。
Zabbix运行条件
Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低
目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows等
支持各类常见的网络设备
Zabbix功能
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)
支持自动发现网络设备和服务器,支持分布式,能集中展示、管理分布式的监控点,扩展性强,server提供通用接口,可以自己开发完善各类监控。
Zabbix优劣势
开源,无软件成本投入;
Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);
支持设备多;
支持分布式集中管理;
开放式接口,扩展性强;
当监控的item比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从server端去下载需要监控的item然后取数据上传到server端。这种方式对服务器的负载比较小。
无厂家支持,出现问题解决比较麻烦
需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
Zabbix工作原理
Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)。
Zabbix工作模式
主动模式:由agent端主动收集信息发送给server端 工具是zabbix_sender
被动模式:由server端主动拉取信息 工具是zabbix_get
Zabbix角色组件
Zabbix agent:负责部署在被监控主机上,把被监控主机的数据传送给zabbix server
Zabbix server:负责接收agent发送的信息,组织配置信息,统计配置信息和操作数据等
Zabbix database: 用于存储zabbix的所有配置信息,监控数据的数据库
Zabbix web: zabbix的web界面,管理可以通过zabbix的web界面管理zabbix配置以及查看zabbix的监控信息,可以独一部署在一台服务器上
Zabbix proxy:分布式环境中使用,zabbix proxy代表server端管理该区域中的信息收集,最终统一发往zabbix server
Zabbix通讯方式
agent:通过专用的代理程序进行监控
ssh/Telnet:通过远程控制协议进行通讯
SNMP:通过SNMP协议与被监控对象进行通讯,路由器和交换机支持
SNMP,其实也是一种agent
IPMI:通过IPMI接口进行监控,通过IPMI硬件接口监控,电压,温度,风扇,和电源状态
JMX:通过(java management extensions Java管理扩展)监控JVM虚拟机
Zabbix分布式的监控体系
监控数据被提交给zabbix proxy 再 提交给zabbix server
Zabbix监控架构
在实际监控架构中,zabbix根据网络环境、监控规模等分了三种架构: server-client 、master-node-client、server-proxy-client三种 。
也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。
该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。
看完上述内容,你们对Zabbix监控大概了解了吗?如果想了解更多相关文章内容,欢迎关注天达云行业资讯频道,感谢各位的阅读!