前言:
什么是Zabbix?
Zabbix是一个用于网络,操作系统和应用程序的开源监控软件,它旨在监视和跟踪各种网络服务,
服务器和其他硬件的状态。
为什么需要对各类系统运行进行监控?
当系统构建时的正常流程中,通常是不允许未被监控的系统或应用上线的,因为
来被监控的系统存在不可预知性,故障未知等不确定因素,且无法及时被发现并
排除的,这时整个架构或系统来说都是非常大的风险因患,所以我们在原则上是
要对整个的架构或系统进行监控,随时监控各个方面的指标是否正常,以提高系
统的稳定性。
Zabbix是如何实现系统系统监控的
一个完整的监控系统所需的指标:
1、采样:周期性的获取某个被检测指标的相关数据
2、存储:将采样的数据存储在指定的存储系统中,Zabbix默认是MySQL
对于数据的监控可分为两大类:
历史数据:可理解为过去某一时间点的数据
趋势数据:可理解为过去某一段时间的数据
3、展示:采集完数据后,为了使数据能更直观的展现在用户面前,可将采集的数据
进行二次处理,做成图像,Zabbix就是使用PHP程序将采集的数据通过Web Gui直观
的展示给用户。
报警:当监控的指标出现异常时需要金控能自动的发出警报信息,甚至警报后能自动完成
修复。
Zabbix支持的数据采集协议:
1、SNMP(Simple Network Managerment Protocol),这是一个非常古老的且通用的
监控协议,几乎任何设备都支持用此方式进行系统的监控。
2、Agent:在监控端安装专门的监控程序,将数据采集后通过Agent发送至Server.
3、IPMI:智能平台管理接口,可在常用的服务器上看到类似的以太网口的接口。
4、JMX: Java Managerment Exlensions
Zabbix的常用组件:
1、Zabbix Web Gui: 提供Web界面
2、Zabbix Databases:提供数据库存储功能并用于存储配置信息。以及采集到的数据。
3、Zabbix Server : 接收来自Agent采集数据的核心组件
4、Zabbix Agent :部署在被监控的主机上,用于采集本地的数据。
5、Zabbix Proxy: 当监控节点较多时,用于减轻Server压力组件,也可用于分布式监控系统
由Proxy接收数据后统一发送给Server.
Zabbix架构图:
Zabbix逻辑图:
Zabbix逻辑组件:
主机组(host groups) 主机(hosts) 应用(application) 监控项(items) 触发器(triggers)
事件(event) 动作(actions) : 条件(conditions) 和操作(operations) 媒介(media):发送
通知的通道,短信,邮件等。 通知(notiflcation) 远程命令(remoto command) 报警升级(
escalation) 摸版(template) 图形(graph) 屏幕(screens) 幻灯(slide show)
Zabbix实现监控的两种模式:
主动模式:由Agent主动建立TCP链接并向Server端发送请求。
被动模式:由Server建立TCP链接并向Agent发送请求。
正文:
Zabbix的安装与部署
实验环境:
server5:172.25.68.5(使用的是rhel7.3版本)作为Zabbix server
server6:172.25.68.6 (使用的是rhel7.3版本)作为Zabbix agent
一、在server5上进行zabbix服务端软件的安装
1、进行mariadb软件的安装
[root@server5 test]# ls
fping-3.10-1.el7.x86_64.rpm
iksemel