Zabbix基础理论

Zabbix概述

Zabbix是一个企业级的开源分布式监控解决方案,由C语言编写而成的底层架构(server端和agent端),由一个团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据
Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。

Zabbix运行条件

  • Server
Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低
  • Agent
目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows等
  • SNMP
支持各类常见的网络设备

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分布式的监控体系

监控数据被提交给zabbix proxy 再 提交给zabbix server

Zabbix基础理论

Zabbix监控架构

在实际监控架构中,zabbix根据网络环境、监控规模等分了三种架构: server-client 、master-node-client、server-proxy-client三种 。
  • server-client架构
也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
  • server-proxy-client架构
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。
  • master-node-client架构
该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。

谢谢阅读!