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
五.测试
测试过程:关闭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.