Zabbix远程执行命令

本文主要讲述Zabbix远程执行命令.

本教程是测试zabbix的远程执行功能,比较简单,点拨思路,自己发散.

一.创建item和触发器

1.1 创建item 我这里是测试服务irqbalance,当服务irqbalance停止后,zabbix触发后,会自动拉起irqbalance服务. Item: UserParameter=xsj.irq.sum,ps xua|grep -w "irqbalance"|grep -v grep|wc -l 1.2 创建触发器:

创建触发器

二.创建脚本或者命令

2.1 如果你使用脚本,需要提前写好脚本,记得chmod755以及chow zabbix.命令的话,直接使用sudo执行.考虑到安全问题,这里的sudo控制最好细化. 2.2 本例使用sudo /etc/init.d/irqbalance start来进行测试

三.开启sudo权限

下例是授权zabbix无密码允许netstat命令: 授权zabbix用户无密码运行netstat命令

chmod +w /etc/sudoers 
sed -i 's/^\(Defaults\s\+requiretty\)/#\1/' /etc/sudoers
grep -q '^zabbix ALL=(ALL).*netstat' /etc/sudoers || echo 'zabbix ALL=(ALL)       NOPASSWD: /bin/netstat' >> /etc/sudoers
chmod 440 /etc/sudoers

我们只是使用irqbalance 服务来测试,所以比较简单,visudo最后添加一行:

zabbix ALL=(ALL)       NOPASSWD: /etc/init.d/irqbalance start

四.创建action

创建action

创建action

五.测试

测试过程:关闭irqbalance服务,web界面查看告警以及命令执行情况.
注意事项: 1.On some systems sudoers file will prevent non-local users from executing commands. To change this, comment out requiretty option in /etc/sudoers. 2.Make sure that the EnableRemoteCommands parameter is set to 1 and uncommented. Restart agent daemon if changing this parameter.