1 Zabbix简介
Zabbix是一个企业级的高度集成的开源监控软件,提供了分布式监控解决方案,可以用来监控设备、服务等的可用性和性能。其产品不分企业版和社区版,是一个真正的源码开放产品,用户可以自由下载并使用该软件。地址:https://www.zabbix.com/cn
从功能上说,Zabbix支持多种采集方式和采集客户端,有专用的Agent(代理),也支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库中,可以支持MySQL、Oracle、PostgreSQL、SQLite、Elasticsearch等数据库,然后对其进行分析整理,达到条件触发告警,并支持对告警数据的分析统计。Zabbix具有良好的管理界面。
1.1 软件架构
Zabbix的通用架构采用客户端/服务器端模式,分布式架构采用客户端/代理端/服务器端模式,Zabbix-Server将采集到的数据持久地存储到数据库中,用前端UI友好地展示给用户。
客户端采集数据,代理服务器做代理,服务器端处理数据的架构模式:
Zabbix数据的采集不仅可以使用Agent方式,也可以使用其他方式,如采用SNMP、SSH、Telnet、IPMI等多种协议。
1.2 版本选择
截图来自官网:https://www.zabbix.com/cn/life_cycle_and_release_policy
Zabbix首个发行版本为Zabbix 1.0 alpha1,其发行时间为2001年4月7日。随着版本的升级,其功能特性也在不断地增强和完善。
1.X版本,具备较完备的功能;
2.X版本,增强了很多新的功能特性,如对JMX、自动发现、LLD(Low Level Discovery)、虚拟化功能的原生支持。至此,Zabbix在国内逐渐流行(2013年前后开始逐渐被大多数公司所接受),成为大多数公司首选的监控系统。
3.X版本,对用户体验进行了优化。随着版本的不断迭代,功能持续增强,性能逐步提高。
非LTS的版本均为实验版本,每6个月发布一个新版本。因此,对于生产环境版本的选择,我们尽量选择LTS版本,可享受长期更新支持服务,这样即使出现安全漏洞等问题,也会得到更新支持。
1.3 功能特性
Zabbix具有常见的商业监控软件所具备的功能,如主机性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制、分布式、可扩展能力、API等。
数据收集
可用性、性能检测。
支持Agent、SNMP(包括Trapping和Polling)、IPMI、JMX、SSH、Telnet等。
自定义检测。
自定义收集数据的频率。
客户端/代理端/服务器端模式。
灵活的触发器
可以定义非常灵活的告警阈值和与多种告警相关联的条件。
高度可定制的告警
发送通知,可定制包括告警级别、动作升级、收件人和媒体类型。
通知可以使用全局宏变量和自定义变量。
自动处理功能包括远程命令的自动调用和执行。
实时的绘图功能
监控项将数据实时绘制在图形上。
Web监控能力
Zabbix可以模拟浏览器请求访问一个网站,并检查返回值和响应时间。
多种可视化展示
可以自定义监控的展示图,将多种监控数据集中展示到一张图上。
网络拓扑图。
自定义的Screens和Slide shows可以将多种图形集中展示。
报表功能。
资源使用情况的监控展示。
历史数据的存储
将数据存储在数据库中。
历史数据的存放周期可配置。
定期删除过期的历史数据。
配置非常容易
配置比较简单,只需要以下两步即可:(1)添加设备。(2)应用模板即可完成监控。
使用模板
模板可以分组。
模板具有可继承性。
网络发现
支持自动发现网络设备和服务器(可以通过配置自动发现服务规则实现)。
Agent自动注册。
支持用自动发现(Low Level Discovery)实现动态监控项的批量监控(支持自定义),内置的自动发现包括文件系统、网络接口、SNMP OID,可定制自动发现。
快速的访问接口
Web页面基于PHP。
远程访问。
日志审计。
API功能
应用API功能可以方便地与其他系统结合,包括手机客户端的使用。
系统权限
不同的用户展示监控的资源不同。
用户身份认证。
程序特性
服务器端Zabbix-Server和采集端Zabbix-Agent使用C语言编写,其性能非常高,内存开销非常小。
大型环境的支持
利用Zabbix-Proxy方式可轻松构建远程监控。
2 安装与部署
软件环境由CentOS 7(64位)、httpd、PHP和MariaDB组成。
由于Zabbix核心组件是用C语言写的,所以理论上其可以支持Linux、UNIX、Windows等常见的操作系统,但Zabbix-Server和Zabbix-Porxy均不支持Windows系统(底层的实现依赖Linux系统的一些特性)。在Zabbix 3.0版本以后,对其支持最好的CentOS版本为7.0以上版本,7.0以下版本的安装和配置均比较麻烦,因此不再推荐使用。
注意:如果仅仅检测网络服务FTP、SSH、HTTP、DNS、LDAP,则无须安装任何客户端,即可支持获取监控数据。
2.1 时间同步需求
Zabbix-Server对时间的精准要求比较高,时间对数据的计算等都有影响,因此必须设置NTP自动同步时间。
[root@linux30 zabbix]# yum -y install ntp
2.2 下载仓库官方源
访问Zabbix的软件仓库网站,网址为http://repo.zabbix.com
安装Zabbix的RPM包软件仓库官方源:
[root@linux30 zabbix]# pwd /opt/itcast/zabbix [root@linux30 zabbix]# ll 总用量 16 -rw-r--r--. 1 root root 13712 2月 23 11:44 zabbix-release-4.0-1.el7.noarch.rpm [root@linux30 zabbix]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm 警告:zabbix-release-4.0-1.el7.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY 准备中... ###################### [100%] 正在升级/安装... 1:zabbix-release-4.0-1.el7 ###################### [100%] [root@linux30 zabbix]# rpm -ql zabbix-release /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 /etc/yum.repos.d/zabbix.repo /usr/share/doc/zabbix-release-4.0 /usr/share/doc/zabbix-release-4.0/GPL [root@linux30 zabbix]# cat /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1 [root@linux30 zabbix]#