Zabbix去执行远程命令

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

我们这里就举一个“监控文件大小”的例子:假设我们把/mnt这个文件夹挂载到数据盘上,如果数据盘存储空间不够用,就要求zabbix远程自动删除一些过期的日志文件,只保留一天以内的日志文件。

于是乎,我们先写一个脚本,名字叫"mts删除过期日志.sh",路径就在/share/yunwei/chenshuo里,整个内容如下:

1
2
3
4
5
#!/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,增加如下内容:

wKioL1f5ocyAeyYXAAAtvv7WInA076.png

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

然后返回zabbix,建立一个item,如图:

wKioL1f5nbKSK34GAACl0p3iIAk787.png

这里要注意一下,在Type的栏目里有Zabbix agent(active),切记不要选择这个!因为在active模式下,remote command是无效的。

现在我们再根据这个item去制定一个trigger,如图:

wKioL1f5nkDS0HzDAABhYS5uSw0812.png

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

wKioL1f5ntGSlKPEAAFQPutFU-Q993.png

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

wKioL1f5n2Kw4pXrAABLGQgqCSQ375.png

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

wKiom1f5oGrhrlEyAADiHycRLFE209.png

这里执行脚本和远程命令在Type里选择Custom script就好,如果是要关闭机器的话,就选择IPMI,在命令里写“Power off”,如果是要重启机器的话,还是IPMI,命令里写“Reset on”。当然还有比如SSH,Telnet等命令,这些就可以具体情况具体使用了。

update---save保存远程命令之后,我们应该可以看到,zabbix开始成功执行了这个命令,如图:

wKiom1f5o2rDIiUjAAGP-iAdVnw120.png

由原来的38%变成了21%,可见过期的日志文件真不少。

至此,整个远程执行命令过程就结束了。希望大家玩zabbix继续玩的开心,have fun~

一些Zabbix相关教程集合

ZABBIX 的详细介绍请点这里
ZABBIX 的下载地址请点这里

猜你喜欢

转载自www.linuxidc.com/Linux/2016-10/135982.htm