Zabbix监控使用指南
Zabbix监控使用指南
1. 模板管理
1.1 模板概念说明
模板(Template):是包括监控项、应用集、触发器、图形、聚合图形、自动发现、Web监测等的一组实体集合。
使用优势:
- 方便应用到多台主机,实现批量配置
- 修改模板会自动应用到所有链接的主机
- 提高配置效率和一致性
实际应用示例:
比如将监控Nginx相关的配置做成一个模板,有100台服务器需要监控Nginx,只需要将模板链接到这100台机器即可。后续需要修改时,只需修改模板,所有关联的主机都会同步更新。
1.2 创建自定义模板
操作步骤:
-
点开"数据采集"栏后点击"模板"进入模板界面
-
Zabbix自带了很多实用的模板,对于要求不高的场景可以直接使用
-
点击右上角"创建模板"
-
设置模板名称(如:aaatest)和模板组,完成创建
1.3 为主机添加或删除模板
操作步骤:
-
点击主机名称进入主机配置
-
在"模板"标签页点击"选择"
-
选择对应的模板(如之前创建的aaatest模板)
-
点击"更新"完成配置
2. 监控项与应用集
2.1 基本概念
监控项(Item):从主机收集数据信息的最小单位,代表一个具体的监控指标。
应用集(Applications):多个相关监控项的逻辑分组。
2.2 创建监控项的两种方式
方式一:在单台主机上创建
- 适用范围:仅对当前主机生效
- 操作路径:点开主机 → 监控项 → 创建监控项
方式二:在模板中创建(推荐)
-
适用范围:对所有使用此模板的主机生效
-
操作路径:模板 → 选择模板 → 监控项 → 创建监控项
2.3 创建自带键值监控项
键值(Key)概念:预先开发好的用于收集数据的命令,分为:
- Zabbix自带键值(系统预定义)
- 自定义键值(用户自定义开发)
案例:监控CPU 1分钟平均负载
操作步骤:
-
在模板中创建监控项
-
创建CPU平均负载监控项
-
选择键值:点击键值右侧的选择按钮,找到CPU负载
-
配置监控项参数并添加
关键参数说明:
- 名称:自定义监控项显示名称
- 类型:Zabbix客户端(zabbix-agent)
- 键值:
system.cpu.load[all,avg1]
,其中:all
:监控所有CPU核心avg1
:取1分钟平均负载值
- 信息类型:数值(浮点数)
- 单位:无
- 更新间隔:数据采集频率(1分钟)
- 历史记录:原始数据在数据库中的保留时间
- 趋势:汇总统计数据在数据库中的保留时间
-
同样方式创建5分钟和15分钟平均负载监控项
-
在关联主机上查看监控项
2.4 创建自定义键值监控项
案例:监控登录用户数
Agent端配置:
# 模拟多个登录用户
[root@agent ~]# who | wc -l
3# 编辑Agent配置文件,添加自定义键值
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
# 找到UserParameter配置项,添加:
UserParameter=loginusers,who | wc -l# 重启Agent服务
[root@agent ~]# systemctl restart zabbix-agent.service
Server端测试:
# 安装zabbix-get工具
[root@server ~]# yum install zabbix-get# 测试自定义键值
[root@server ~]# zabbix_get -s 192.168.100.10 -k loginusers
3
# 说明:-s 指定Agent IP,-k 指定键值名称
Web界面配置:
- 在模板中创建监控项,键值必须与配置文件中的名称完全一致
-
完成后监控项数量增加
3. 图形展示
3.1 创建图形显示监控数据
操作步骤:
-
在模板中创建图形
-
点击"创建图形"
-
添加监控项到图形中
-
配置图形显示参数(名称、颜色、样式等)
-
在主机的图形页面查看
-
点击图形名称查看详情
-
预览图形数据
-
同样方式创建登录用户数图形
3.2 在仪表盘添加图形
操作步骤:
-
进入仪表盘,点击右上角"编辑仪表盘"
-
删除不需要的图形(点击…选择删除)
-
添加新图形部件
-
配置数据集(添加监控项数据)
-
添加多个数据集并配置显示样式
-
添加到仪表盘并保存
-
同样方式添加登录用户数图形
-
保存仪表盘设置
4. 触发器配置
4.1 触发器概念
触发器(Trigger):定义监控项的临界值或条件,当满足条件时触发状态变化通知。
应用场景:
- CPU负载值大于阈值时通知
- 登录用户数超过限制时通知
- 内存使用率超过阈值时通知
- 磁盘空间不足时通知
- 系统配置变更时通知
4.2 创建登录用户数触发器
操作步骤:
-
在模板中创建触发器
-
点击"创建触发器"
-
配置触发器表达式
- 点击"添加"选择监控项
- 使用
last()
函数表示最近收集的值 - 设置条件:
> 5
表示用户数超过5时触发
-
系统自动生成表达式,设置严重性并添加
测试验证:
-
在Agent上打开多个终端模拟多用户登录
-
在仪表盘查看触发器状态
-
图形中显示触发信息
5. 报警配置
5.1 报警原理
报警媒介支持:Email、Jabber、SMS、微信、电话语音等
报警过程原理:
5.2 环境准备
# 1. 确保防火墙和SELinux已关闭# 2. 配置Postfix邮件服务
[root@server ~]# vim /etc/postfix/main.cf
# 在mydestination行后添加$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain[root@server ~]# systemctl restart postfix.service
[root@server ~]# systemctl enable postfix.service
5.3 配置本地邮箱报警
操作步骤:
-
配置报警媒介类型
- 路径:告警 → 媒介类型 → 选择Email
-
修改Email配置
- SMTP服务器:localhost
- 电子邮件:主机用户邮箱账号
- 启用媒介类型
-
测试邮件发送
-
在服务器上验证邮件接收
[root@server ~]# cat /var/mail/hrz
# 查看是否收到测试邮件
-
为用户配置报警媒介
- 路径:用户 → Admin用户 → 报警媒介
-
添加报警媒介配置
-
配置触发器动作
- 路径:告警 → 动作 → 触发器动作
-
添加操作条件
-
配置操作详情
- 移除默认操作,添加新操作
- 配置发送给用户组和用户
- 自定义消息内容
消息模板变量说明:
{EVENT.NAME}
- 事件名称(触发器描述){EVENT.DATE}
- 事件发生日期{EVENT.TIME}
- 事件发生时间{HOST.NAME}
- 主机名称{EVENT.SEVERITY}
- 事件严重级别{EVENT.ID}
- 事件唯一标识符{TRIGGER.URL}
- 触发器详情页面链接
-
配置恢复操作
-
启用动作并更新
测试验证:
-
在Agent创建6个终端触发告警
-
在仪表盘查看告警状态
-
检查邮件接收(可能存在编码问题)
[root@server mail]# vim hrz
# 查看接收的邮件内容
- 减少终端数验证恢复通知
5.4 配置第三方邮箱报警(163邮箱)
准备工作:
-
注册163邮箱并开启SMTP服务
-
开启SMTP服务获取授权码
配置步骤:
- 创建新的媒介类型
- 名称:163.com
- 类型:Email
- 配置SMTP参数
- 认证密码是刚刚获取的授权码
-
更新用户媒介配置
-
修改动作的发送媒介类型
测试验证:
- 触发条件后查看163邮箱接收情况
5.5 配置脚本邮件报警
环境配置:
# 1. 安装s-nail软件包
[root@server ~]# yum -y install s-nail# 2. 配置s-nail
[root@server ~]# vim /etc/s-nail.rc
# 添加以下配置:
set from=你的邮箱账号
set smtp=smtp.163.com
set smtp-auth-user=你的邮箱账号
set smtp-auth-password=邮箱授权码
set smtp-auth=login
set ssl-verify=ignore[root@server ~]# chown -R zabbix:zabbix /etc/s-nail.rc
脚本配置:
# 3. 创建邮件发送脚本
[root@server ~]# vim /usr/lib/zabbix/alertscripts/mail-send.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | s-nail -s "${subject}" $1# 4. 设置脚本权限
[root@server ~]# cd /usr/lib/zabbix/alertscripts/
[root@server alertscripts]# chown -R zabbix:zabbix mail-send.sh
[root@server alertscripts]# chmod +x mail-send.sh
测试脚本:
[root@server alertscripts]# ./mail-send.sh 目标邮箱 "测试主题" "测试内容"
Web界面配置:
-
创建脚本媒介类型
{ALERT.SENDTO} - 告警消息的接收者
- 对于邮件媒介:收件人邮箱地址
{ALERT.SUBJECT} - 告警消息的主题行
{ALERT.MESSAGE} - 告警消息的详细内容
-
为用户添加邮箱地址
-
创建新的动作使用脚本媒介
最终验证:
- 触发条件验证邮件接收
通过以上完整的配置流程,可以建立完善的Zabbix监控告警系统,实现从数据采集到告警通知的全流程自动化监控。