日常Zabbix报警案例中,大多都是报警发送邮件,场景里很少有需要报警后执行一个命令(启动服务、清空磁盘空间、关停服务器);而今天就给大家讲讲最近需要做的事:报警后执行远程命令

  刚好zabbix动作中有个远程命令功能,那么就通过它来解决问题。。

  远程命令整个过程: items - triggers - action - remote commands

  配置过程:

  1.创建一个mongodb items

  Configuration - Hosts Items

  wKioL1PN6SjB5IWmAAGqLQRk_Zg461.jpg

  spacer.gif

  2.配置mongodb triggers

  Configuration - Hosts Triggers

  wKioL1PN6U6yzifwAADLF5mn3xs708.jpg

  3.配置远程命令的actions

  Configuraction - Actions

  wKiom1PN6GbRPiw3AAGpMejev9A604.jpg

  条件选择触发器值为PROBLEM、触发器为上面的mongodb触发器spacer.gif

  wKiom1PN6H3iYRcnAAGGwNkM9JM812.jpg

  执行次数为5次,每次间隔60秒

  操作类型为:远程命令

  类型为:自定义脚本

  命令:具体的指令。内容将贴在下面。

  wKiom1PN6JrznY7mAAORPm0zyH8222.jpg

  至此整个过程都配完了,,但是现在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

  wKioL1PN6dbCLE6gAAC5ROXttiU457.jpg

  如果配置正确,那么audit一定会产生一条remote commnad记录。

  有误1,Audit无记录,查下配置文件、actions配置

  有误2,Audit有记录,但mongodb却未启动,脚本有问题,调试一下。。

Zabbix报警执行远程命令的更多相关文章

  1. 在地铁上看了zabbix 的书发现 "报警执行远程命令"

    在地铁上看了zabbix 的书发现 "报警执行远程命令" 远程命令整个过程:  items -> triggers -> action -> remote com ...

  2. (29)zabbix执行远程命令

    概述 监控,有的人只把他当做报警使用,出现问题之后打开跑回家打开电脑,巴拉巴拉的处理掉,大多数时候都是一些小问题,为何不让zabbix帮你把这些事情处理掉呢?和朋友具体,收到xx硬盘空间慢了.xx服务 ...

  3. zabbix配置通过远程命令来发送邮件

    1.安装好zabbix后,在/var/log/zabbix可以查看日志. 2.主机通过zabbix-get检查 yum install zabbix-get -y zabbix-get  -s 客户主 ...

  4. Ubuntu 14.10 下SSH执行远程命令

    有些时候需要在远程机器上执行命令,如果每次都等进去挺麻烦的,所以用脚本执行会方便很多.下面介绍一下在shell脚本中执行远程命令. 1,首先写好要运行的脚本 run-command.sh, 加上执行权 ...

  5. 如何使用 PsExec 执行远程命令

    前言 这紧紧只是一篇纯技术分享.我们的程序在运行时需要连接多台目标机器,并拷贝目标机器上特定文件夹中的文件.为了方便访问,要在每台目标机器上建立一个特定用户,所以 PsExec 成了实现此功能的一个方 ...

  6. psexec局域网执行远程命令

    执行远程命令的工具psexec.exe 下载 一.首先,被控制机器必须开启ipc$,以及admin$,否则无法执行 开启ipc$ net share IPC$ 开启admin$ net share A ...

  7. Python中使用os模块执行远程命令

    1. 使用os模块远程执行命令 服务端代码 1 import socket 2 import os 3 4 sh_server = socket.socket() #创建一个socket对象 5 sh ...

  8. Python网络编程03 /缓存区、基于TCP的socket循环通信、执行远程命令、socketserver通信

    Python网络编程03 /缓存区.基于TCP的socket循环通信.执行远程命令.socketserver通信 目录 Python网络编程03 /缓存区.基于TCP的socket循环通信.执行远程命 ...

  9. zabbix在执行docker命令是报错

    系统环境 ubuntu 14.04  x64 安装了zabbix,去监控docker的状态,安装zabbix见我的另外一篇文章 错误如下 WARNING: Error loading config f ...

随机推荐

  1. ltp执行过程总结

    命令行:./runltp -b DEVICE -f timers -p -l result-log-timers.20180824 -o screen-log-timers.20180824 runl ...

  2. PYQT5 + PYCHARM

    PYQT5 C:\Users\xxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\pyqt5_tools\designer.exe ...

  3. Linux指令之netstat

    查看某个端口的连接数 netstat -nat | grep -iw "8463" | wc -l [Mac&Redhat通用] 查看连接状况 netstat -nat | ...

  4. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录

    1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html   v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客 ...

  5. Bayesian Program Synthesis - 初步探索

  6. http 请求头大小写的问题

    如果是默认消息头名称,消息头格式已经固定,即便输入的大小写有误,也会给你翻译成默认的写法,如果自己定义的,会自动给你翻译成小写,所以传参数的名称都用小写字母即可,否则可能取不到值,比如encrypte ...

  7. Ubuntu 安装 VS code

    sudo snap install --classic vscode 没有snap就先装snap,是的,就是这么简单.

  8. Linux驱动开发调试 -- 打开dev_dbg()【转】

    本文转载自:https://blog.csdn.net/kunkliu/article/details/78048618 转载地址:http://blog.chinaunix.net/uid-2284 ...

  9. js 二叉树删除最大值和最小值

    //删除最小值function delMinNode (root){ if(!root) { return false; } var current = root; if (current.left ...

  10. “64位调试操作花费的时间比预期要长",无法运行调试解决办法

    以管理员身份在命令提示符那里打入如下命令: netsh winsock reset catalognetsh int ip reset reset.log hit 或者是 打开Microsoft Vi ...