日常Zabbix报警案例中,大多都是报警发送邮件,场景里很少有需要报警后执行一个命令(启动服务、清空磁盘空间、关停服务器);而今天就给大家讲讲最近需要做的事:报警后执行远程命令
成都网络公司-成都网站建设公司创新互联建站十余年经验成就非凡,专业从事成都网站设计、做网站,成都网页设计,成都网页制作,软文推广,一元广告等。十余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!首先讲讲需求吧, 遥远的一天,小伙伴们用上了mongodb,而且需要大力使用,日后一些数据存储在mongodb;从生产环境迁移数据进mongodb,那么问题来了,经常听到别人说,mongodb量大就挂了。mongodb有些数据是在程序当中被引用到,白天某个时刻挂了,那么用户、客服、运营就呼唤着了。。团队中也在查问题,找原因,请教大神,升级版本,可还是挂了。。 目前挂了就是在启动。。 小伙伴们不可能时常和电脑在一起,有时需要和妹纸在一起调情啦、上高地啦。刚好zabbix动作中有个远程命令功能,那么就通过它来解决问题。。
远程命令整个过程: items -> triggers -> action -> remote commands
配置过程:
1.创建一个mongodb items
Configuration -> Hosts > Items
2.配置mongodb triggers
Configuration -> Hosts > Triggers
3.配置远程命令的actions
Configuraction -> Actions
条件选择触发器值为PROBLEM、触发器为上面的mongodb触发器
执行次数为5次,每次间隔60秒
操作类型为:远程命令
类型为:自定义脚本
命令:具体的指令。内容将贴在下面。
至此整个过程都配完了,,但是现在mongodb挂了,actions会执行启动mongodb命令么。? 肯定不会。
远程命令前提条件,需要在配置文件开启远程命令参数,并启动agentd。
echo 'EnableRemoteCommands=1' >> /usr/local/zabbix/zabbix_agentd.conf
/etc/init.d/zabbix_agentd restart
#注意,远程命令不支持在zabbix agentd active模式。。切记。。
脚本内容:
cat /usr/local/mongodb/start_mongod.sh
#!/bin/bash
/usr/local/mongodb/mongod -f /usr/local/mongodb/mongod.conf >> /tmp/start.log
#注意,zabbix启动用户,需要能执行上述命令,也就是需要sudo赋权
那么现在,已经全部完成,总结一下配置过程
1.在agentd配置文件中开启EnableRemoteCommands参数
2.配置actions里的Remote Comand
3.Commands里的脚本制作
故障演示
干掉mongodb
#killall mongod
过了采集时间,zabbix将会把triggers置为problem,同时触发actions。记录里显示如下
Administration -> Audit -> Actions
如果配置正确,那么audit一定会产生一条remote commnad记录。
有误1,Audit无记录,查下配置文件、actions配置
有误2,Audit有记录,但mongodb却未启动,脚本有问题,调试一下。。
希望这篇文章能帮助大家,tks。 - -
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款