前言:
什么是zabbix?
zabbix是一个基于网络,操作系统和应用系统的开源监控软件,
它旨在监控和跟踪各种网络服务和其他硬件的信息状态。
为什么需要对各类系统运行进行监控?
当系统构建的正常流程中,通常是不允许未被监控的系统或者应用上线的,
因为未被监控的系统存在不可预知性,故障位置等不确定因素,且无法及时
被发现并排除的,这时整个架构或系统来说都是非常大的风险,所以我们在
原则上是要对整个的架构或系统进行监控的,随时监控各个方面的指标是否
正常,以提高系统的稳定性。
zabbix是如何实现系统监控的
一个完整的监控系统所需的指标:
1、采样:周期性的获取某个被检测指标的相关数据
2、存储、将采样的数据存储在指定的系统中,zabbix默认的是MySQL
对数据的监控可以分为两大类:
历史数据和趋势数据:
历史数据: 可以理解为过去某一段时间点的数据
趋势数据: 可以理解为过去某一段时间的数据
3、展示:采集完数据后,为了使数据更直观的显示在客户面前,可将采集
的数据进行二次处理,做成图像,zabbix就是使用PHP程序将采集的数据通
过Web Gui 直观的展示给客户。
报警: 当监控中的指标出现异常时,需要监控能自动发出报警信息,甚至报
警后自动完成修复。
Zabbix支持的数据采集协议:
1、SNMP:这时一个非常古老且通用的监控协议,几乎任何设备都支持用此
方法进行系统的监控
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实现监控的两种模式:
主动模式: 由Agent主动建立TCP链接并向Server端发送请求
被动模式: 由Server建立TCP链接向Agent发送请求
Zabbix监控的过程是这样的:
安装在主机上的zabbix_agentd负责监控主机,具体监控
任务由agentd端的Item来完成,并收集数据,然后将这些数据发送给zabbix server端,
如果是分布式系统,需要监控的机器较多,为了减轻server端的压力,可能中间还会
在搭建一个proxy端,用来暂时接收监控数据,然后将数据转发给server端,server端旧
将数据保存在数据库中,zabbix web在将数据在前端以图表或者文字的形式表现出来。
正文:
zabbix的安装与部署:
实验环境:
server1: 172.25.68.1 (使用的是rhel7.3版本) 作为zabbix server
server2: 172.25.68.2 (使用的是rhel7.3版本) 作为zabbix agent1
server3 172.25.68.3(使用的是rhel7.3版本)作为zabbix agent2
一、进行zabbix-server服务的基本搭建
1、在server1上进行httpd和mariadb-server的安装
[root@server1 ~]# yum install httpd mariadb-server -y ###进行数据库和httpd服务的安装
2、 进行zabbix服务相关软件的安装(这里我们已经从官网上已经下载成功)
[root@server1 4.0]# yum install -y * ###进行zabbix服务相关软件的安装
3、进行数据库服务的开启,以及数据库的初始化和数据库的授权
[root@server1 4.0]# systemctl start mariadb ###进行数据库服务的开启
[root@server1 4.0]# mysql_secure_installation ###进行数据库的初始化
[root@server1 4.0]# mysql -p ###在数据库中进行授权处理
(1)进行数据库的初始化