共计 1811 个字符,预计需要花费 5 分钟才能阅读完成。
日常 Zabbix 报警案例中,大多都是报警发送邮件,场景里很少有需要报警后执行一个命令 (启动服务、清空磁盘空间、关停服务器);而今天就给大家讲讲最近需要做的事:报警后执行远程命令
首先讲讲需求吧,遥远的一天,小伙伴们用上了 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。– –
一些 Zabbix 相关教程集合 :
安装部署分布式监控系统 Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm
《安装部署分布式监控系统 Zabbix 2.06》http://www.linuxidc.com/Linux/2013-07/86942.htm
CentOS 6.3 下 Zabbix 安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm
Zabbix 分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 6.3 下 Zabbix 监控 MySQL 数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm
ZABBIX 的详细介绍 :请点这里
ZABBIX 的下载地址 :请点这里