1. zabbix简介
Zabbix是一个企业级的高度集成的开源监控软件,提供了分布式监控解决方案,可以用来监控设备、服务等的可用性和性能。其产品不分企业版和社区版,是一个真正的源码开放产品,用户可以自由下载并使用该软件。
Zabbix SIA是Zabbix技术团队的公司载体,其运作模式是商业软件开源,即软件完全开源,供用户免费使用,但若需要官方提供技术服务,则通过收费的商业模式。其提供的服务范围包括咨询、技术支持、定制开发、解决方案、培训认证等。
- Zabbix官网:http://www.zabbix.com。
- 官方论坛:http://www.zabbix.com/forum/。
- 代码托管平台:http://sourceforge.net/projects/zabbix/files/。
- Wiki:https://www.zabbix.com/wiki。
- Zabbix体验:https://zabbix.org/zabbix/dashboard.php。
2. 为何选择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的监控,Zabbix-Server和Zabbix-Agent采用C语言编写,对系统资源的占用非常少,数据采集的性能非常好,速度非常快。
(5)可将采集到的数据持久地存储到数据库中,便于对监控数据的二次分析。
(6)具有非常强的扩展能力,可以很轻松地自定义监控项和实现数据采集,几乎能监控所有的数据。例如,可以监控网站的访问次数、UPS和天气温度等。毫不夸张地说,在Zabbix的世界里,只有想不到的事情,没有办不到的事情。
(7)采用开源社区的运作模式,有各种论坛、邮件列表、IM及时沟通渠道等。
(8)由Zabbix授权的公司提供商业服务支持。
3. zabbix版本
http://repo.zabbix.com/zabbix/
image.png
image.png
image.png
我们来看一看Zabbix官方对各版本的支持策略,如图所示。我们看到,非LTS的版本均为实验版本,每6个月发布一个新版本。因此,对于生产环境版本的选择,我们尽量选择LTS版本,可享受长期更新支持服务。
image.png
对于版本的命名,每6个月会在LTS版本的基础上增加一个X.2的版本,18个月后,新的LTS版本发布如图所示。
image.png
4. Zabbix优点
优点
1、开源,无软件成本投入
2、Server 对设备性能要求低
3、支持设备多,自带多种监控模板
4、支持分布式集中管理,有自动发现功能,可以实现自动化监控
5、开放式接口,扩展性强,插件编写容易
6、当监控的item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从 server 端去下载需要监控的item 然后取数据上传到server 端。这种方式对服务器的负载比较小。
7、Api 的支持,方便与其他系统结合
5. Zabbix 监控原理
Zabbix 通过C/S 模式采集数据,通过B/S模式在web 端展示和配置。
被监控端:主机通过安装agent 方式采集数据,网络设备通过SNMP 方式采集数据
Server 端:通过收集SNMP 和agent 发送的数据,写入数据库(MySQL,ORACLE 等),再通过php+apache 在web 前端展示。
Zabbix监控过程逻辑图
6. Zabbix 监控类型
硬件监控 适用于物理机、远程管理卡(iDRAC),IPMI(只能平台管理接口)
ipmitools:,MegaCli(查看Raid磁盘)
系统监控: 监控cpu:lscpu、uptime、top、vmstat 1 、mpstat 1、htop
监控内存: free -m、
监控硬盘:df -h、iotop
监控网络:iftop、netstat、ss
应用服务监控:nfs、MySQL、nginx、apache、php、rsync
所有监控范畴,都可以整合到Zabbix中
硬件监控:Zabbix、IPMI、lnterface
系统监控:Zabbix、Agent、Interface
Java监控:Zabbix、JMX、lnterface
网络设备监控:Zabbix、SNMP、lnterface
应用服务监控:Zabbix、Agent、UserParameter
MySQL数据库监控:percona-monitoring-plulgins
URL监控:Zabbix Web监控
7. ## Zabbix 相关术语
1、主机(host):要监控的网络设备,可由IP或DNS名称指定;
2、主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;
3、监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;
4、触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
5、事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;
6、动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
7、报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
8、媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;
9、通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
10、远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
11、模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;
12、应用(application):一组item的集合;
13、web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求;
14、前端(frontend):Zabbix的web接口;
下图是一个zabbix的流程图,其串联了各术语之间的关系