站点图标 IDC铺

Zabbix去执行远程命令

远程命令是一个很棒的功能,试想一下,你正在与甜美娇羞的小娘子兴奋的啪啪啪,突然短信来了,提示服务器里存储空间不够用,你还要翻身下床摸索出笔记本来把这些问题处理掉,处理完毕之后又要重新酝酿情绪,太扫兴了!其实这种一两个命令就能搞定的问题就应该交给Zabbix自己去解决。

我们这里就举一个“监控文件大小”的例子:假设我们把/mnt这个文件夹挂载到数据盘上,如果数据盘存储空间不够用,就要求zabbix远程自动删除一些过期的日志文件,只保留一天以内的日志文件于是乎,我们先写一个脚本,名字叫”mts删除过期日志.sh”,路径就在/share/yunwei/chenshuo里,整个内容如下:。

#!/bin/bash cd /mnt/hswx/mts-bak rm -rf *.core cd /mnt/hswx/mts-bak/logs/ find . -name mts_*.log -mtime +1 -exec rm -f {} \;

可以看出,在上面的脚本里我们先后进入了两个文件夹,然后对应删除.core文件和.log文件然后打开zabbix_agentd.conf,把里面的EnableRemoteCommands = 0改成1,并且重启zabbix_agent服务。

因为zabbix会调用一个叫zabbix的linux用户去执行操作,所以我们还要赋予zabbix用户一些权限可以让他自由的sudo,#sudoedit /etc/sudoers,增加如下内容:

这里注意一下,有的人斩钉截铁的说要在Defaults:zabbix !requiretty前面加上一个#,注释掉,我这里测试不用注释其实也可以。然后返回zabbix,建立一个item,如图:

这里要注意一下,在Type的栏目里有Zabbix agent(active),切记不要选择这个!因为在active模式下,remote command是无效的现在我们再根据这个item去制定一个trigger,如图:。

这里我先设定“已用空间大于35%就报警”,然后在Monitoring里发现有一台机器中标了,这台机器是js-online-mts-004。

然后来到Configuration—Action里,建立一个action,在Conditions里的设置如图:

在Operations里,我们的设置是这样的:

这里执行脚本和远程命令在Type里选择Custom script就好,如果是要关闭机器的话,就选择IPMI,在命令里写“Power off”,如果是要重启机器的话,还是IPMI,命令里写“Reset on”。

当然还有比如SSH,Telnet等命令,这些就可以具体情况具体使用了update—save保存远程命令之后,我们应该可以看到,zabbix开始成功执行了这个命令,如图:

由原来的38%变成了21%,可见过期的日志文件真不少。至此,整个远程执行命令过程就结束了。

退出移动版