概述

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

瞧瞧zabbix远程执行命令可以做些什么吧:

  • 重启应用(Apache、nginx、MySQL等等)
  • 使用IPMI接口重启服务器
  • 自动释放磁盘空间(删除老文件,清除/tmp目录等等)
  • CPU过载时讲一个虚拟机迁移到另外一台物理服务器
  • 云环境下,一台服务器CPU\硬盘\内存\其他硬件资源不足的情况下,可以自动添加过去

创建一个报警,记得使用邮件报警吗?呵呵,实际上,我们把发送邮件的操作改成执行远程命令就行了

备注:zabbix代理不支持远程命令

远程命令最大长度为255字符,同时支持多个远程命令,如需要执行多条命令,只需要另起一行写命令即可,还有,远程命令可以使用宏变量。

接下来我将一步一步告诉大家如何设置远程命令

配置

首先我们需要在zabbix客户配置文件开启对远程命令的支持,编辑zabbix_agentd.conf,修改

 
1
EnableRemoteCommands = 1

重启客户端

备注:Aive zabbix不支持远程命令

然后配置action,Configuration->Actions,选择Operation选项卡,operation type改成Remote Command,选择远程命令类似 (IPMI, Custom script, SSH, Telnet, Global script),输入远命令

配置Action

  • 在Operations选显卡中选择Remote command
  • 选择远程命令类型(IPMI, Custom script, SSH, Telnet, Global script)
  • 写上远程命令

示例:

 
1
sudo /etc/init.d/apache restart

上面例子用来在出现状况的情况下重启Apache,务必全包zabbix agent能够执行这个命令.

备注:

1.sudo不用多说了,zabbix用户没有运行某些命令的权限,必须加上.

2.远程命令,自然是在远程的主机后台运行。
Conditions选项卡定义了什么条件下,这个远程命令会被执行,其实这个和前面说的action真没什么区别,大家都能看懂。下图的意思是,在非维护时间Apache应用出现状况,并且严重性级别为Disaster。满足条件之后,就开始执行命令了。

访问权限

确保你的zabbix用户有执行权限,如果某些命令需要root权限,那么请使用sudo

 
1
# visudo

编辑sudoer文件,zabbix用户便可以执行Apache restart命令了

 
1
2
3
4
# allows 'zabbix' user to run all commands without password.
zabbix ALL=NOPASSWD: ALL
# allows 'zabbix' user to restart apache without password.
zabbix ALL=NOPASSWD: /etc/init.d/apache restart

备注:在某些情况下,zabbix需要sudo才能执行命令,请先在/etc/sudoer开启requiretty.具体的方法,请百度或者google.

使用多种接口执行远程命令

如果目标系统支持多种接口:zabbix agent、IPMI、远程命令(默认),请看如下一些实例
示例1

通过zabbix检测到的一些问题,然后自动重启windows

参数 描述
Operation type Remote command
Type Custom script
Command c:\windows\system32\shutdown.exe -r -

示例2

使用IPMI重启服务器

参数 描述
Operation type Remote command
Type IPMI
Command reset on

示例三

使用IPMI关机

参数 描述
Operation type Remote command
Type IPMI
Command power off

(29)zabbix执行远程命令的更多相关文章

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

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

  2. Zabbix报警执行远程命令

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

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

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

  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网络编程03 /缓存区、基于TCP的socket循环通信、执行远程命令、socketserver通信

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

  8. saltstack执行远程命令

    目录 Remote Execution salt state salt state 系统 salt state 系统流程 Runner salt runner Orchestrate Runner S ...

  9. linux shell 执行远程命令

    我在本地的shell脚本中,想要直接执行远程服务器的一个shell脚本: ssh -l root 192.168.1.1 "/data/t.sh" 记得提前给远程服务器的 /dat ...

随机推荐

  1. Python 实现简单的登录注册界面

    Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...

  2. IDEA 快捷键MacOS

    Alt + Enter 导入包,自动修正 Command + N 查找类 Command + Shift + N查找文件 Command + Alt + L格式化代码 Command + Alt + ...

  3. Python 去除列表中重复的元素(转载http://blog.csdn.net/zhengnz/article/details/6265282)

    比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2   还有一种据说速度更快的,没测试过两者的速度 ...

  4. 在SpringBoot中用SpringAOP实现日志记录功能

    背景: 我需要在一个SpringBoot的项目中的每个controller加入一个日志记录,记录关于请求的一些信息. 代码类似于: logger.info(request.getRequestUrl( ...

  5. 104 Maximum Depth of Binary Tree 二叉树的最大深度

    给定一个二叉树,找出其最大深度.二叉树的深度为根节点到最远叶节点的最长路径上的节点数.案例:给出二叉树 [3,9,20,null,null,15,7],    3   / \  9  20    /  ...

  6. vue cli 脚手架上多页面开发 支持webpack2.x

    A yuri demo for webpack2 vue multiple page.我看到有一些项目多页面项目是基于webapck1.0的,我这个是在webpack2.x上布置修改.  项目地址:  ...

  7. 简单的UDP程序

    接受端: package com.dcz.udp; import java.io.IOException; import java.net.DatagramPacket; import java.ne ...

  8. 两小时学Thinkphp3.1(多数来自thinkphp3.1快速入门)

    调试模式 define('APP_DEBUG',TRUE); 定义自动验证 protected $_validate = array( array('title','require','标题必须'), ...

  9. mount_cd9660:/dev/acd0: Input/output error

    mount -t cd9660 /dev/acd0 /cdrom g_vfs_done():acd0[READ(offset32768, length=204]error =5 mount_cd966 ...

  10. IOS之TextView属性设置

    UIFontDescriptor *bodyFontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFont ...