Zabbix简介
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司 Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务
Zabbix 是一个企业级分布式开源监控解决方案
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使
zabbix的监控原理
Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)
Zabbix分布式监控系统监控客户端的方式常见有三种:Agent、SNMP、IPMI
Agent Zabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等
SNMP Zabbix通过简单网络管理协议(Simple Network Management Protocol)监控网络设备或windows主机等。通过设定SNMP的参数将相关监控数据传送至服务端,交换机、防火墙等网络设备一般都支持SNMP协议
IPMI 智能平台管理接口(Intelligent Platform Management Interface,IPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态,电源供应以及机箱入侵等。IPMI最大的优势在于无论OS的开机还是关机状态下,只要接通电源就可以实现对服务器的监控
Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加 StartAgents=0
Zabbix主动模式 Agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,zabbix agent首先向ServerActive配置的IP请求获取active items,获取并提交active items数据至server/proxy
Zabbix被动模式 Server向agent请求获取监控项的数据,agent返回数据,server打开一个TCP连接,Server发送请求agent.ping,Agent接收到请求并且响应,Server处理接收到的数据
Zabbix的常用组件
Zabbix Server 接收Agent采集数据的核心组件;所有的配置统计数据及操作都由它进行
Zabbix Database 提供数据存储功能,专用于存储配置信息,以及采集到的数据
Zabbix Web GUI 提供Web界面
Zabbix Proxy 当被监控节点较多时,用于减轻Server压力的组件,也用于分布式监控系统。由Proxy接收数据后统一发送至Server
Zabbix Agent 部署在被监控主机上,用于采集本地数据
Zabbix监控系统监控概念
主机(host) 被监控的网络设备,可以写IP或者DNS
主机组(host group) 主机组用于管理主机,可以批量设置权限
监控项(item) 具体监控项,items值由独立的keys进行识别
触发器(trigger) 为某个items设置触发器,达到触发器会执行action动作
事件(event) 例如达到某个触发器,称之为一个事件
动作(action) 对于特定事件事先定义的处理方法,默认可以发送信息及发送命令
报警升级(escalation) 发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等
媒介(media) 发送通知的方式,可以支持Mail、SMS、Scripts等
通知(notification) 通过设置的媒介向用户发送的有关某事件的信息
远程命令 达到触发器,可以在被监控端执行命令
模板(template) 可以快速监控被监控端,模块包含:item、trigger、graph、screen、application
web场景(web scennario) 用于检测web站点可用性,监控HTTP关键词
web前端(frontend) Zabbix的web接口
图形(graph) 监控图像
屏幕(screens) 屏幕显示
幻灯(slide show) 幻灯显示
所需环境
系统 |
IP |
名称 |
角色 |
CentOS 7.4 |
192.168.10.209 |
zabbix |
LAMP、zabbix、grafana(版本8.0) |
CentOS 7.4 |
192.168.10.210 |
agent |
agent(FTP,Web) |
一、安装zabbix server服务端
[root@zabbix ~]# echo '
192.168.10.209 zabbix
192.168.10.210 agent
' >> /etc/hosts
添加一个网卡连接外网
[root@zabbix ~]# systemctl restart network
[root@zabbix ~]# yum -y install wget
[root@zabbix ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate