zabbix feature & architecture & Data flow-阿里云开发者社区

开发者社区> 数据库> 正文

zabbix feature & architecture & Data flow

主流的监控软件, nagios, zabbix, ganglia.
因为有项目用到zabbix, 研究一下.

3 Zabbix features


Zabbix is a highly integrated network monitoring solution, offering a multiplicity of features in a single package.

Data gathering

  • availability and performance checks
  • support for SNMP (both trapping and polling), IPMI, JMX, VMware monitoring
  • custom checks
  • gathering desired data at custom intervals
  • performed by server/proxy and by agents

Flexible threshold definitions

  • you can define very flexible problem thresholds, called triggers, referencing values from the backend database

Highly configurable alerting

  • sending notifications can be customized for the escalation schedule, recipient, media type
  • notifications can be made meaningful and helpful using macro variables
  • automatic actions include remote commands

Real-time graphing

  • monitored items are immediately graphed using the built-in graphing functionality

Web monitoring capabilities

  • Zabbix can follow a path of simulated mouse clicks on a web site and check for functionality and response time

Extensive visualisation options 扩展视图选项

  • ability to create custom graphs that can combine multiple items into a single view
  • network maps
  • custom screens and slide shows for a dashboard-style overview
  • reports
  • high-level (business) view of monitored resources

Historical data storage

  • data stored in a database
  • configurable history
  • built-in housekeeping procedure

Easy configuration

  • add monitored devices as hosts
  • hosts are picked up for monitoring, once in the database
  • apply templates to monitored devices

Use of templates

  • grouping checks in templates
  • templates can inherit other templates

Network discovery

  • automatic discovery of network devices
  • agent auto registration
  • discovery of file systems, network interfaces and SNMP OIDs

Fast web interface

  • a web-based frontend in PHP
  • accessible from anywhere
  • you can click your way through
  • audit log

Zabbix API

  • Zabbix API provides programmable interface to Zabbix for mass manipulations, 3rd party software integration and other purposes.

Permissions system

  • secure user authentication
  • certain users can be limited to certain views

Full featured and easily extensible agent

  • deployed on monitoring targets
  • can be deployed on both Linux and Windows

Binary daemons

  • written in C, for performance and small memory footprint
  • easily portable

Ready for complex environments

  • remote monitoring made easy by using a Zabbix proxy
2012/10/02 13:38

4 Zabbix overview


Zabbix consists of several major software components, the responsibilities of which are outlined below.


Zabbix server is the central component to which agents report availability and integrity information and statistics. The server is the central repository in which all configuration, statistical and operational data are stored.

Database storage

All configuration information as well as the data gathered by Zabbix is stored in a database.

Web interface

For an easy access to Zabbix from anywhere and from any platform, the web-based interface is provided. The interface is part of Zabbix server, and usually (but not necessarily) runs on the same physical machine as the one running the server.

Zabbix web interface must run on the same physical machine if SQLite is used.


Zabbix proxy can collect performance and availability data on behalf of Zabbix server. A proxy is an optional part of Zabbix deployment; however, it may be very beneficial to distribute the load of a single Zabbix server.


Zabbix agents are deployed on monitoring targets to actively monitor local resources and applications and report the gathered data to Zabbix server.

Data flow

In addition it is important to take a step back and have a look at the overall data flow within Zabbix. In order to create an item that gathers data you must first create a host. Moving to the other end of the Zabbix spectrum you must first have an item to create a trigger. You must have a trigger to create an action. Thus if you want to receive an alert that your CPU load it too high on Server X you must first create a host entry for Server X followed by an item for monitoring its CPU, then a trigger which activates if the CPU is too high, followed by an action which sends you an email. While that may seem like a lot of steps, with the use of templating it really isn't. However, due to this design it is possible to create a very flexible setup.

主要主件包含 : 
1. zabbix server, 核心组件. 集中配置, 统计, 告警, 存储AGETN传来的数据.
2. 数据库, 用于存储zabbix的数据.
3. WEB接口, 管理界面, 注意如果使用SQLite作为数据库的话, WEB接口必须和数据库在同一台服务器, 可能因为SQLite没有网络连接接口 .
4. 代理, 可选组件, 用于接受来自agent的数据, 主要用于减轻zabbix server直接接收来自大量agent的压力. 当然最终数据是集中存储到zabbix server的, proxy只是个代理.
5. 部署在被监控端, 采集监控数据, 发送给代理或直接发送给zabbix server.

例如为了得到一个服务器X的CPU超载的邮件通知, 一般需要几个步骤来部署这个监控.
1. 创建主机
2. 创建监控项
3. 创建触发器
4. 创建响应


+ 订阅