Zabbix去执行远程命令-linux安全运维_跨零代码

跨零代码为大家提供高品质的运维解决方案,请大家多多来访,跨零不胜感激,在此谢过。

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

Zabbix去执行远程命令

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

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

Zabbix去执行远程命令

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

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

Zabbix去执行远程命令

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

Zabbix去执行远程命令

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

Zabbix去执行远程命令

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

Zabbix去执行远程命令

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

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

Zabbix去执行远程命令

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

至此,整个远程执行命令过程就结束了。


//下面这个css和插件后台设置的主题有关系,如果需要换样式,则需要修改以下CSS名称

从零到一,创造未来!跨零代码综合IT问题解决服务站,欢迎你的到来。运维教程 只为你绽放。

本文固定链接: http://kua0.com/2019/02/07/zabbix去执行远程命令-linux安全运维_跨零代码/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注