大家对Zabbix监控的了解可能停留在概念的层面上,而对于了解相对较少。今天就跟大家聊聊
Zabbix概述
<代码> Zabbix是一个企业级的开源分布式监控解决方案,由C语言编写而成的底层架构(服务器端和代理端),由一个团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。 Zabbix通过C/S模式采集数据,通过B/S模式在网页端展示和配置。 被监控端:主机通过安装代理方式采集数据,网络设备通过SNMP方式采集数据 服务器端:通过收集SNMP和代理发送的数据,写入MySQL数据库,再通过php + apache在web前端展示。代码>
Zabbix运行条件
- <李>服务器李>
<代码> Zabbix服务器需运行在灯(Linux + apache php + MySQL +)环境下,对硬件要求低代码>
- <李>代理李>
<代码>目前已有代理的基本支持市面常见的操作系统,包含Linux, HPUX, Solaris,太阳,窗户等代码>
- <李> SNMP李>
<代码>支持各类常见的网络设备代码>
Zabbix功能
<代码>具备常见的商业监控软件所具备的功能(主机的性能监控,网络设备性能监控,数据库性能监控,FTP等通用协议监控,多种告警方式,详细的报表图表绘制) 支持自动发现网络设备和服务器,支持分布式,能集中展示,管理分布式的监控点,扩展性强,服务器提供通用接口,可以自己开发完善各类监控。代码>
Zabbix优劣势
- <李>优点李>
<代码>开源,无软件成本投入; 服务器对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5 2 gcpu 1 g内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩400余以上); 支持设备多; 支持分布式集中管理; 开放式接口、扩展性强; 当监控的项目比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从服务器端去下载需要监控的项目然后取数据上传到服务器端。这种方式对服务器的负载比较小。代码>
- <李>缺点李>
<代码>无厂家支持,出现问题解决比较麻烦 需在被监控主机上安装代理,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。代码>
Zabbix工作原理
<代码> Agentd安装在被监控的主机上,代理人负责定期收集客户端本地各项数据,并发送至Zabbix服务器端,Zabbix服务器收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件,微信,短信),发送命令(壳牌命令,重启,重启,安装等)。代码>
Zabbix工作模式
<代码>主动模式:由代理端主动收集信息发送给服务器端工具是zabbix_sender 被动模式:由服务器端主动拉取信息工具是zabbix_get 代码>
Zabbix角色组件
<代码> Zabbix代理:负责部署在被监控主机上,把被监控主机的数据传送给Zabbix服务器 Zabbix服务器:负责接收代理发送的信息,组织配置信息,统计配置信息和操作数据等 Zabbix数据库:用于存储Zabbix的所有配置信息,监控数据的数据库 Zabbix web: Zabbix的web界面,管理可以通过Zabbix的web界面管理Zabbix配置以及查看Zabbix的监控信息,可以独一部署在一台服务器上 Zabbix代理:分布式环境中使用,Zabbix代理代表服务器端管理该区域中的信息收集,最终统一发往Zabbix服务器代码>
Zabbix通讯方式
<代码>代理:通过专用的代理程序进行监控 ssh/Telnet:通过远程控制协议进行通讯 SNMP:通过SNMP协议与被监控对象进行通讯,路由器和交换机支持 SNMP,其实也是一种代理 IPMI:通过IPMI接口进行监控,通过IPMI硬件接口监控,电压、温度,风扇,和电源状态 JMX:通过(java管理扩展java管理扩展)监控JVM虚拟机代码>
Zabbix分布式的监控体系
<代码>监控数据被提交给Zabbix代理再提交给Zabbix服务器代码>