
如何在Zabbix中配置执行脚本的操作?
- 来源:本站
- 编辑: 超级管理员
- 时间:2025-07-12 10:29:05
- 阅读0次
在 Zabbix 中配置执行脚本的操作,需要结合动作(Actions)和外部脚本(External Scripts),实现当监控项触发告警时自动执行预设脚本。以下是详细步骤:
一、准备脚本文件
创建脚本目录(默认路径):
bash
mkdir -p /usr/lib/zabbix/externalscripts
chown -R zabbix:zabbix /usr/lib/zabbix/externalscripts
编写脚本(示例:清理临时文件):
bash
#!/bin/bash
# 文件:/usr/lib/zabbix/externalscripts/clean_temp.sh
find /tmp -type f -mtime +1 -delete # 删除1天前的临时文件
echo "Cleaned temp files at $(date)" >> /var/log/zabbix/clean_temp.log
赋予执行权限:
bash
chmod +x /usr/lib/zabbix/externalscripts/clean_temp.sh
二、配置 Zabbix Server 允许执行外部脚本
编辑 Zabbix Server 配置文件(通常为/etc/zabbix/zabbix_server.conf):
ini
# 启用外部脚本执行
AllowRoot=1 # 允许以root权限执行(谨慎使用)
ExternalScripts=/usr/lib/zabbix/externalscripts # 指定脚本目录
重启 Zabbix Server 使配置生效:
bash
systemctl restart zabbix-server
三、创建触发器(定义何时执行脚本)
路径:配置 → 主机 → 选择目标主机 → 触发器 → 创建触发器
参数示例:
名称:磁盘空间不足
表达式:{主机名:vfs.fs.size[/,pfree].last()} < 15(根分区可用空间 < 15%)
严重性:警告
四、配置动作(关联触发器和脚本)
路径:配置 → 动作 → 事件源(触发器) → 创建动作
基本信息:
名称:自动清理临时文件
条件:触发器名称包含 “磁盘空间不足”
操作配置:
操作步骤:
步骤持续时间:1 小时(执行一次后等待 1 小时)
操作类型:运行远程命令(若通过 Agent 执行)或运行脚本(若通过 Server 执行)
目标:选择触发告警的主机({HOST.CONN})
命令:
bash
# 若通过Server执行(需Agent允许远程命令)
sudo /usr/lib/zabbix/externalscripts/clean_temp.sh
# 若通过Server直接执行(无需Agent)
/usr/lib/zabbix/externalscripts/clean_temp.sh {HOST.IP}
五、高级配置:传递参数到脚本
若脚本需要接收参数(如主机名、监控值),可在动作命令中使用宏:
bash
# 脚本示例(接收参数)
#!/bin/bash
# 文件:/usr/lib/zabbix/externalscripts/alert_handler.sh
HOST=$1 # 主机名
TRIGGER=$2 # 触发器名称
VALUE=$3 # 触发值
echo "Alert on $HOST: $TRIGGER (Value: $VALUE)" >> /var/log/zabbix/alert.log
在动作命令中传递参数:
bash
/usr/lib/zabbix/externalscripts/alert_handler.sh "{HOST.NAME}" "{TRIGGER.NAME}" "{ITEM.VALUE}"
六、验证脚本执行
临时触发告警:
修改触发器阈值(如将磁盘空间阈值改为 90%),触发告警。
检查执行结果:
查看脚本日志(如/var/log/zabbix/clean_temp.log)。
在 Zabbix 界面查看动作历史(监测 → 动作日志)。
恢复配置:
测试完成后,将触发器阈值改回正常值。
七、安全与权限注意事项
最小权限原则:
脚本避免使用root权限,可通过sudo限制特定命令(如visudo配置):
plaintext
zabbix ALL=(ALL) NOPASSWD: /usr/lib/zabbix/externalscripts/clean_temp.sh
脚本安全:
禁止脚本执行高危命令(如rm -rf /)。
定期审计脚本内容。
监控脚本执行:
添加监控项检查脚本日志(如log[/var/log/zabbix/clean_temp.log,ERROR])。
设置触发器监控脚本执行失败情况。
通过以上配置,Zabbix 可在监控到异常时自动执行预设脚本,实现问题的自动化处理。
- 如何配置Zabbix的动作,以便在执···
2025-07-12
- 如何在Zabbix中配置执行脚本的操···
2025-07-12
- 如何根据资源异常情况进行自动化···
2025-07-12
- 如何处理资源耗尽导致的无法登录···
2025-07-11
- 有哪些工具可以帮助分析日志文件···
2025-07-11
- 如何使用日志文件进行系统故障排···
2025-07-11
- 面向未来的高可用境外服务器架构···
2024-08-26
- 跨境电商成功案例之优秀外国服务···
2024-08-22
- 从成本效益角度分析境外服务器的···
2024-08-17
- 如何规避使用外国服务器的风险问···
2024-08-16
- 搭建安全稳定的境外网站:首选外···
2024-08-19
- 针对中小企业的境外服务器配置指···
2024-08-22