在国内,BAT的部分业务、豆瓣、58同城、PPTV、搜狐、Letv、人人、网易、小米、360等公司都在使用Zabbix。
随着云计算、虚拟化的大规模应用,以及未来移动互联网、物联网等的兴起,Zabbix的使用将越来越广泛,应用场合也越来越多。目前,不少互联网公司、云计算公司、系统集成软件公司、外包服务公司等,都有对Zabbix进行二次开发和大规模使用。所以,可以断言,Zabbix在未来将会引领监控软件的潮流。
Zabbix适合中小型企业、大中型企业的用户使用。单个Server节点可以支持上万台设备,每秒可以处理1.5万次请求,理论上可以支持5万台设备。
Zabbix自身的定位是中型企业和大型企业,如果在特大型环境中(具有上万台设备规模的Zabbix环境)使用,需要解决大并发、大压力的问题,这对使用者提出了更高的要求
使用Zabbix的准备
Zabbix使用起来很简单,读者稍加学习即可上手,如果你以前从未接触过任何监控系统,从零基础开始学习,也是一件相对容易的事情。
这里暂且把Zabbix的用户分为如下三类(这样分不一定恰当)。
入门用户:以前从未接触过任何监控系统,也不懂linux。学会Zabbix的安装配置即可(安装可以用RPM,源码安装也很容易)。
中级用户:有linux基础,熟悉LAMP和LNMP环境搭建、MySQL数据库、shell脚本,以及简单的英文阅读能力,主要难点在于触发器、数据库调优和API的使用
高级用户:熟悉PHP、C等一门脚本语言,具备二次开发能力,能修改源码,对Zabbix从代码级别进行优化和扩展。前提是对Zabbix的各个功能十分熟悉,或者至少熟悉需要改进的功能。
对于一般用户和运维人员来说,达到中级用户使用水平,即可满足基本的使用需求。本书主要讲解前两类用户需要的知识,对第三类用户所需的知识也有涉及。
Zabbix为何物
Zabbix官网网站:http://www.zabbix.com
Zabbix是一个企业级的高度集成开源监控软件,提供分布式监控解决方案,可以用来监控设备、服务等的可用性和性能,其产品部分企业版和社区版,是一个真正的源代码开发产品,用户可以自由下载并使用该软件。
Zabbix SIA公司是Zabbix的官方技术团队成立的公司,其运作模式是商业软件的开源----软件的使用免费,服务收费。其为用户提供咨询、技术支持服务(定制开发、解决方案、人员培训等)。
选择Zabbix的理由
对比同类监控产品,有以下理由选择使用Zabbix
1)Zabbix是一个自由开放源代码的产品,用户可以对源代码进行任意修改和二次开发。Zabbix采用GNU General Public License(GPL)version 2开源协议
2)安装和配置简单,用户仅仅需要一些简单的学习,即可完成监控的搭建工作。
3)搭建环境简单,基于开源软件构建平台,仅需要linux、apache/nginx、MySQL/PostgreSQL/Oracle、PHP即可,无须专用操作系统支持,也无须专用硬件。
4)Zabbix-Agent完全支持Linux、Unix、Windows、AIX、BSD和Solaris的监控,Server和Agent都采用C语言编码,对系统的资源占用非常小,数据采集的性能和速度非常快。
5)将数据采集持久存储到数据库,便于对监控数据的二次分析。
6)非常丰富的扩展能力,很轻松的自定义监控项和实现数据采集,几乎能监控所有的数据。例如,可以监控网站的访问次数,监控UPS和天气温度等。毫不夸张的说,在Zabbix的世界里,往往有你想不到的事情,没有办不到的事情。
7)开源社区的运作模式,有各种论坛、邮件列表、IM及时沟通等。
因此,如果你是一个系统管理员、网络管理员和运维人员,想要构建一套自己的监控系统环境,Zabbix将会是最佳的选择。如果你是开发人员,想基于开源软件开发一套属于自己的监控系统,Zabbix也是比较好的选择。
Zabbix的架构
Zabbix的版本大致可以分为:1.0、1.1、1.4、1.6、1.8、2.0、2.2这几大发行版本。对外的首个发行版本为Zabbix 1.0 alpha1,其发行时间为2001年4月7日,随着版本的升级,其功能特性也在不断增强和完善。从Zabbix 1.8开始,增强了很多新的功能和特性,如对JMX、自动发现、Low Level discovery功能的支持,而当前的Zabbix 2.2则有了进一步的完善,性能相比Zabbix 2.0提高了五倍,成为当前功能最强大的版本,支持对VMware的监控,可以动态加载模版,Web能够模版化配置。下一个版本是2.4,目前Zabbix官方正在规划中。
Zabbix的通用架构是Client/Server架构,分布式架构为Client/Proxy/Server或Client/Node/Server,Zabbix-Server将采集到的数据持久地存储到数据库中,用前端UI友好的展示给用户。
正如前面提到的,Zabbix数据的采集不仅可以使用Agent方式,也可以使用其他方式,如SNMP、SSH、Telnet、IPMI等多种协议。
Zabbix的功能特性
Zabbix有常见的商业监控软件所具备的功能,如主机的性能监控、网路设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制、分布式、可扩展能力、API等。
1)数据收集
可用、性能检测
支持Agent、SNMP(包括Trapping和Polling)、IPMI、JMX、SSH、Telnet等
自定义的检测
自定义收集数据的频率
服务器端/代理端和客户端模式
2)灵活的触发器
可以定义非常灵活的告警阈值和多种告警相关联的条件。
3)高度可定制的告警
发送通知,可定制包括告警级别、动作升级、收件人和媒体类型
通知可以使用全局宏变量和自定义的变量
自动处理功能包括远程命令的自动调用和执行
4)实时的绘图功能
监控项将数据实时绘制在图形上。
5)web监控能力
Zabbix可以模拟浏览器请求一个网站,并检查返回值和响应时间
6)多种可视化的展示
可以自定义监控的展示图,将多种监控数据集中展示到一张图中
网络拓扑图
自定义的Screens和Slide shows可以将多种图形集中展示
报表功能
资源使用情况和监控展示
7)历史数据的存储
数据存储在数据库中
历史数据的存放周期可配置
定期删除过期的历史数据
8)配置非常容易
配置比较简单,只需要两步即可:第一步,添加设备;第二步,应用模版即可完成监控
9)使用模版
模版可以分组
模版具有可继承性
10)网络发现
支持自动发现网络设备和服务器(可以通过配置自动发现服务规则实现)
Agent自动注册
支持自动发现(Low level discovery)实现动态监控项的批量监控(支持自定义),内置的自动发现包括文件系统、网络接口、SNMP OID,可定制自动发现
11)快速的访问接口
web页面基于PHP
远程访问
日志审计
12)API功能
应用API功能可以方便地和其他系统结合,包括手机客户端的使用
13)系统权限
不同的用户展示监控的资源不同
对用户的身份认证
14)程序特性
用C语言编写,其性能和内存开销非常小
15)大型环境的支持
利用Zabbix-Proxy方式即可轻松构建远程监控