一、触发器(Trigger)
1、概念:
在 Zabbix 中,触发器用于监测 Zabbix 监控系统中的各种指标和条件,并在特定条件满足时触发警报。(触发器用于定义监控项的报警阈值)
2、触发器对象:
(1) 主机:与特定主机相关联,检测主机上的问题或异常状况;
(2) 模版:与模版相关联,所有应用该模版的主机组、主机都可以使用触发器。
● 为模版创建触发器图示:
3、触发器表达式:
{<server>:<key>.<function>(<parameter>)}<operation><constant>
● <server> 主机或模版;
● <key> 键值;
● <function> 在指定的数据或资源上执行的操作或函数;
● <parameter> 传递给操作或函数的参数;
● <operation> 对前面结果的进一步操作,可以是数学运算、逻辑运算或其他操作;
● <constant> 是一个固定的常量值。
例:{www.baidu .com:system.cpu.load[all,avg1].last(0)}>3
4、示例:
(1) CPU 超负载:
① 配置监控项和图形:
键值:system.cpu.load[all,avg1],用于监测系统的 CPU 负载情况。
● all:这是监控项的第一个参数,用于指定要监测的 CPU 核心或处理器,all 表示监测所有 CPU 核心;
● avg1:这是监控项的第二个参数,用于指定监测的负载平均时间间隔,avg1 表示系统的平均负载时间间隔为 1 分钟。
② 配置触发器:
导航到配置选项,点击模版,在模版中添加触发器
触发器表达式:{temp_aaa_bean:system.cpu.load[all,avg1].last()}>1
③ 模拟 CPU 负载并查看监控效果:
dd if=/dev/zero of=/1.txt bs=1M count=8000
创建一个名为 "1.txt" 的4 GB大小的文件,并将其内容全部填充为零,通常用于占用磁盘空间以测试磁盘性能等用途。
(2) 网络流量异常:
配置触发器,查看监控效果:
二、动作(action)
1、概念:
在 Zabbix 中,动作是自动化响应机制的关键部分,允许自动执行一系列操作,响应监控数据的变化或事件。动作它可以用于触发警报、发送通知、自动维护、执行自定义脚本等。
2、告警实验步骤:
① 创建告警媒体(邮箱、电话);
② 创建接收告警信息的用户或组;
③ 创建动作 (action),通过定义的媒体将信息发送给用户或组。
3、邮件告警:
(1) 准备邮箱:QQ 邮箱或网易邮箱;
(2) 启动 POP3 服务:
在 QQ 邮箱的设置 - 账号里找到 POP3 服务并开启,获取授权码
(3) zabbix 设置邮箱:
① 测试 zabbix 服务器与邮箱服务器的连通性:
nc smtp.qq.com -t 25
这个命令是使用 nc 命令(也称为 netcat)连接到 smtp.qq.com 主机的25号端口,与邮件服务器建立 SMTP 连接,用于查看服务器是否处于运行状态以及是否可以与其建立连接。
② zabbix 链接邮箱:
在“管理”菜单项里选择“报警媒介类型”,点击“创建媒体类型”
编辑报警媒介类型:
创建报警媒介后可以点击测试,查看邮箱是否收到zabbix的测试信息:
(4) 创建用户组:
创建用户,针对 zabbix 进行收发邮件:
为用户添加报警媒介:
将用户的权限授予超管权限:
(5) 设置告警:
① 在“配置”菜单项里选择“动作”,点击“创建动作”
动作中添加的条件可以有一个或多个,可以是模版、主机,也可以是触发器
② 添加动作的操作:
收到的邮箱信息:
4、远程执行:
(1) 作用:
配置 zabbix 远程执行后,当问题发生时,可以通过远程执行命令的方式对目标主机进行控制。
(2) 配置:
① 创建告警:
● 禁用之前的告警设置:
● 创建动作和操作细节:
② 开启远程执行功能(zabbix 被监控主机):
● 修改配置文件:
vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
这条命令表示开启远程命令执行功能(参数设为0表示禁用)
systemctl restart zabbix-agent
● 开启权限:
visudo
zabbix ALL=NOPASSWD: /usr/bin/systemctl restart httpd
这条命令授予 zabbix 用户在执行systemctl restart httpd命令时无需输入密码的特权。