千家信息网

Zabbix远程执行命令的示例详解

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令。本文主要配置验证zabbix执行远程命令。一.环境Server:基于CentOS-7-x86_6
千家信息网最后更新 2026年11月03日Zabbix远程执行命令的示例详解

Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令。

本文主要配置验证zabbix执行远程命令。

一.环境

Server:基于CentOS-7-x86_64-1511;

Zabbix:zabbix-3.0.1server/agent。

二.注意事项

一些能想到的比较重要的注意事项: 1.远程执行命令是server端向agent端执行,不支持主动模式的agent; 2.不支持代理模式; 3.zabbix用户必须对命令具有执行权限,可以使用sudo赋予root权限(配置sudo无密码方式);

4.远程命令只是执行,执行成功与否并不检测并确认,可在" Monitoring-->Events"中查看action执行时,或在"Reports-->Action log"中查看远程命令是否执行成功(成功为" Executed")。

三.示例

通过一个简单的示例验证:

监控服务器实时在线的用户不超过2个,超过阀值时报警,并执行命令,强制使第3个登录用户下线,以使监控项在阀值以下。

1. 设置Trigger

Configuration-->Templates-->选择" Template OS Linux"模板的"Triggers"-->Create trigger

#trigger name自定义,可使用宏

Name:User login number gt 2 on {HOST.NAME}

Expression:{Template OS Linux:system.users.num.last()}>2

#可以点击"Expression"项后的"Add",使用zabbix自带的Item + Function设置阀值的表达式,如下:

#自定义的级别

Severity:Warning

其余默认值即可,设置完成后点击"Add"即完成。

2. 远程命令开关

#agent默认不支持执行远程命令,需要在agent的配置文件中打开此参数;#agent.conf文件路径根据实际情况修改,这里是编译安装后自定义的路径,请见http://www.cnblogs.com/netonline/p/7406598.html#agent.conf文件修改后需要重启进程。[root@localhost ~]# sed -i 's|# EnableRemoteCommands=0|EnableRemoteCommands=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf[root@localhost ~]# service zabbix_agentd restart 

3. 设置Action

Configuration-->Actions-->Create action

Action

在Action选项中,定义Name:Limit the number of online users no more than 2

#action name自定义即可,action选项的其余部分可采用默认值,如下:

Conditions

在Conditions选项中添加新的条件判断,以使判断更有针对性,如:

New condition:Trigger severity = Warning

New condition:Trigger name like User login number gt 2

#trigger name对应步骤1中定义的trigger name,如下:

Operations

在Operations选项中,添加新的"Action operation",点击"New",

Operation type:选择"Remote Command"

Target list:添加target为"Current host" #agent在本机

Type:选择"Custom script"

Execute on:选择"Zabbix agent",命令为" sudo /root/test.sh"

#执行命令的账号是zabbix账号,非root账号,不采用sudo命令会导致命令执行后不生效,

#另外需要说明是,这里尝试过使用具体的命令而非脚本,结果是命令执行了但不生效,因为没有具体的失败日志,也分析不出原因

#其余部分采用默认值,点击"Add"即可,如下:

4. 远程命令脚本

#根据步骤3中定义的命令脚本的路径,编辑命令脚本; [root@localhost ~]# vim test.sh#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH#这里简单的认为第3个登录的tty为pts/2 pkill -kill -t pts/2[root@localhost ~]# chmod 764 test.sh

5. 配置sudo

#授予zabbix账号sudo无密码执行命令的权限,如果为了安全性,可将最后一个"ALL"定义为具体的命令; #或在步骤4中将脚本owner修改为zabbix,并具有执行权限,但要注意脚本放置目录对zabbix账户开放可执行权限甚至可写权限,这样步骤3中脚本也不需要sudo赋予权限 [root@localhost ~]# visudo

zabbix ALL=NOPASSWD: ALL

6. 验证

远程登录主机第3个tty,不在CLI下做其他任何操作,触发trigger阀值,触发命令动作强制第3个登录用户下线。

从截图可以看到,在线用户超过阀值,trigger为"PROBLEM"状态只持续了1分钟左右,即恢复到"OK"状态,表明强制第3个用户下线的脚本命令已执行,并且执行成功。

从" Number of logged in users" Item的历史数据中也可看到trigger触发时,第3个登录用户即被下线。

在登录的第3个tty下,可看到连接由主机自行中断(显示本地时间,与上图的主机时间有偏差)。

总结

到此这篇关于Zabbix远程执行命令 的文章就介绍到这了,更多相关Zabbix远程执行命令 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

命令 脚本 权限 用户 登录 成功 下线 步骤 账号 支持 选择 配置 主机 文件 文章 路径 强制 验证 示例 事项 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 美国互联网保险保险科技 互联网科技公司电话 致骋互联网科技 宜安科技 互联网金融 哈尔滨新华互联网科技 太原新华互联网科技学校怎么样 蓝色互联网科技 隆华科技工业互联网 科技互联网的估值 贵州叶脉互联网科技有限公司所属行业 消费医药和互联网科技 有人说阿里系是互联网科技企业 上海同邻互联网科技有限公司规模 科技互联网行业投资研究 版纳互联网科技选哪家 互联网时代高科技布局 网互联网络科技 宁波允成互联网科技有限公司 互联网科技企业文化 没上市的科技互联网公司 四个字互联网科技公司取名 华脉科技工业互联网产品 互联网科技公司的市场部门 互联网金融科技名词解释 广州千川互联网科技有限公司 云南省自由互联网科技有限公司 美国互联网科技公司 工业互联网科技成果转化 六子台科技互联网展会
0