Zabbix是一款综合了数据收集、数据展示、数据提取、监控报警、用户展示等方面的综合运维平台,是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
Zabbix由2部分构成,Zabbix Server与可选组件Zabbix Agent。Zabbix Server可以通过SNMP、Zabbix Agent、ping、端口监视等方法提供对远程服务器/网络状态的监视、数据收集等功能;它可以运行在Linux、Solaris、HP-UX、AIX、Free BSD、Open BSD以及OS X等平台上。
Zabbix的官网为:https://www.zabbix.com。
1、Zabbix的优缺点
Zabbix使用简单,学习入门较快,功能也十分强大,是一个可以快速构建起来的运维监控平台。Zabbix的功能能够满足中小企业(服务器数量少于500台)的运维监控需求,因此是中小企业运维监控的首选平台。
但是,当Zabbix监控的服务器数量较多时,会产生很多问题:比如监控数据不准确、报警超时等。这是因为Zabbix对运行Zabbix Server的服务器性能要求较高,当监控的服务器数量超过500台后,监控性能会急剧下降,此时需要对Zabbix进行分布式部署,并且需要提升运行Zabbix Server的服务器性能。
在安全性方面,Zabbix Agent如果发生故障,收集到的数据将会丢失。同时,Zabbix Server也是单点的,还需要对Zabbix Server构建高可用架构。
2、Zabbix应用组件
Zabbix主要由以下几个组件构成:
- Zabbix Server:Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。它主要负责接收客户端发送的报告和信息,同时,所有的配置、统计数据和配置操作数据均由其组织
- Zabbix Database Storage:主要用于数据存储,所有配置信息和Zabbix收集到的数据都被存储在这里。常用的存储设备有MySQL、Oracle、SQLite等
- Zabbix Web:Zabbix提过的GUI,使用户可以通过Web页面访问Zabbix以方便查看各种监控数据
- Zabbix Proxy:可选组件,用于Zabbix分布式监控环境。Zabbix Proxy可代替Zabbix Server客户端的性能和可用性数据,汇总后统一发往Zabbix Server
- Zabbix Agent:部署在被监控主机上,能够主动监控本地资源和应用程序,并将收集到的数据发往Zabbix Server或Zabbix Proxy
3、Zabbix服务进程和运行架构
默认情况下Zabbix包含以下五个进程(根据安装的组件不同会运行不同的进程):
- zabbix_agentd:Zabbix Agent的守护进程
- zabbix_get:Zabbix提供的一个工具,可以从客户端拉取数据;该工具可用于当Zabbix Server无法获取到客户端信息时进行排错
- zabbix_sender:用于Zabbix Agent主动推送监控数据到Zabbix Server,对于需要监控大量主机的环境非常有用,可以很大程度上减轻Zabbix Server的服务器压力
- zabbix_proxy:Zabbix Proxy的守护进程
- zabbix_java_gateway(可选):JAVA网关,类似zabbix_agent,主要用于JAVA环境的监控。只能主动将数据推送到Zabbix Server上,Zabbix Server不能从它上面拉取数据
- zabbix_server:Zabbix Server的守护进程
Zabbix的整个运行架构如下图所示: