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其下架构的完整性。
谢谢阅读!