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.远程命令只是执行,执行成功与否并不检测并确认,可在 Zabbix是一款强大的网络监控系统,能够监测服务器和网络设备的各种状态,包括性能指标、硬件状态等。当这些指标超出预设的阈值时,Zabbix会触发相应的动作,例如发送警报或者执行远程命令。本文将详细介绍如何配置Zabbix以在触发器达到阈值后执行远程命令。 我们要明确环境配置。在这个示例中,我们使用的服务器是基于CentOS 7的操作系统,而Zabbix版本为3.0.1,同时服务器和代理(agent)都已经安装。特别需要注意的是,Zabbix的远程命令执行是由服务器端向agent端发起的,不支持主动模式的agent,也不支持代理模式。此外,执行命令的Zabbix用户需要有相应的权限,通常可以通过sudo配置来无密码执行root权限的命令。 接下来,我们将通过一个实例来演示如何设置远程命令执行。假设我们要监控服务器上的在线用户数量,当用户数量超过2个时,触发报警并执行一个脚本来强制第3个登录用户下线,以确保监控项在阈值以下。 1. 配置Trigger: 在Zabbix的“Configuration” -> “Templates” -> “Template OS Linux”的“Triggers”中,创建一个新的触发器。触发器名称可以自定义,例如"User login number gt 2 on {HOST.NAME}",表达式设置为"{Template OS Linux:system.users.num.last()} > 2",级别设置为"Warning",其他设置保持默认。 2. 启用远程命令: 默认情况下,Zabbix agent不支持远程命令执行。我们需要在agent的配置文件`/usr/local/zabbix/etc/zabbix_agentd.conf`中,将`#EnableRemoteCommands=0`修改为`EnableRemoteCommands=1`,然后重启Zabbix agent服务。 3. 创建Action: 在“Configuration” -> “Actions”中创建一个新的Action,命名为“Limit the number of online users no more than 2”。在“Conditions”选项中,设置触发条件为“Trigger severity = Warning”和“Trigger name like User login number gt 2”。在“Operations”选项中,添加一个新的操作,操作类型选择“Remote Command”,目标列表选择“Current host”,执行方式选择“Zabbix agent”,并指定命令为`sudo /root/test.sh`。这里的`test.sh`是我们的执行脚本,它需要在Zabbix服务器上可执行,并且Zabbix用户要有执行权限。 4. 编写远程命令脚本: 创建并编辑`/root/test.sh`文件,确保其具有正确的权限(如`chmod +x /root/test.sh`)。在脚本中,你可以编写用于限制在线用户数量的逻辑。在这个例子中,脚本可能简单地识别出第三个登录的终端(假设为pts/2)并执行强制退出操作。 完成以上步骤后,当触发器满足条件时,Zabbix将执行预设的远程命令。你可以通过"Monitoring" -> "Events"或者"Reports" -> "Action log"来检查命令是否执行成功,如果状态显示为"Executed",则表示命令已成功执行。 Zabbix的远程命令执行功能使得在监控过程中可以自动执行特定的运维任务,提高了系统的自动化管理能力。但同时,也需要注意安全性,确保只有授权的命令被执行,并且正确配置了权限以防止潜在的安全风险。
- 粉丝: 7
- 资源: 947
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助