RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

如何在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 可在监控到异常时自动执行预设脚本,实现问题的自动化处理。


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务