首页 > 其他分享 >zabbix--远程执行命令

zabbix--远程执行命令

时间:2023-06-08 16:45:23浏览次数:42  
标签:status 执行命令 service etc -- nginx zabbix 远程

zabbix 远程执行命令 重启应用 服务器#

使用远程执行命令可以在某些时候帮我做一些事情,达到轻量级的自动化,比如当 nginx、mysql、php、redis、tomcat、等等应用挂掉时帮我们自动重启并告警。再比如当磁盘空间满了,自动帮我们清理垃圾日志文件等。看下官网的描述:

使用远程命令,您可以定义在某些情况下,监视的主机上会自动执行某个预定义的命令。

在功能最明显的用途中,您可以尝试:

  • 如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)
  • 如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器
  • 如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/tmp)
  • 根据CPU负载,将VM从一个物理机移植到另一个物理机
  • 在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中

远程命令限制为255个字符。可以通过将多个命令放置在新行上来执行多个命令。远程命令可能包含宏。

  • 如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)
  • 如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器
  • 如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/ tmp)
  • 根据CPU负载,将VM从一个物理盒移植到另一个物理盒
  • 在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中

参考官档:https://www.zabbix.com/documentation/4.0/zh/manual/config/notifications/action/operation/remote_command

实战#

描述:该实战是完全创建一个新的模板,用于专们管理日常的一些服务等,在新建的模板上面创建对应服务的监控项、触发器、动作等。

具体步骤:

zabbix-agent端

1)根据官网提示 首先打开zabbix-agent上的 EnableRemoteCommands 参数

# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1

2)创建一个脚本存放路径

# mkdir /etc/zabbix/script

3)创建一个新的脚本

复制代码
# vim /etc/zabbix/script/service_status.sh
#!/bin/bash 
#Desc:zabbix 远程执行命令、重启应用 nginx、mysql、php、等
#Date:2019-5-8
#by:Lee-YJ

case $1 in
    Nginx)
        result=`pidof nginx  |wc -l`
        echo $result
        ;;
    Php)
        result=`pidof php-fpm  |wc -l`
        echo $result
        ;;
    Mysql)
        result=`pidof mysqld  |wc -l`
        echo $result
        ;;
    *)
        echo "Usage:$0(Nginx|Php|Mysql)"
        ;;
esac
复制代码 脚本补充说明

4)赋予脚本执行权限

# chmod +x /etc/zabbix/script/service_status.sh

5)创建一个新的专门用于服务监控的子配置文件

# cd /etc/zabbix/zabbix_agentd.d
# vim userparameter_service.conf
# 获取服务运行状态
UserParameter=service.status[*],/etc/zabbix/script/service_status.sh $1

6)重启 zabbix-agent

# service zabbix-agent restart

7)在 zabbix-server 端用命令进行测试

复制代码
# zabbix_get -s 47.104.xx.xx -k "service.status[Nginx]"
1
# zabbix_get -s 47.104.xx.xx -k "service.status[Mysql]"
1
# zabbix_get -s 47.104.xx.xx -k "service.status[Php]"
1
复制代码 测试结果补充说明

zabbix-server Web端

1)创建一个模板 Check Service (自定义名字)

创建完成后里面什么东西都没有(应用集、监控项、触发器、图形等)

2)创建一个应用集 service (自定义名字)

3)创建监控项(键值说明,这里我们得根据配置文件里面定义的来进行配置;service.status[Nginx])

4)创建触发器(最新的t值说明:根据前面的命令结果判断,pidof vsftpd  |wc -l ,如果nginx处于运行状态该值为1,反正为0则为挂了,所以这里触发器判断是否为0)

5)给监控的主机链接上 Check Service 模板

6)测试;在配监控的主机上停掉nginx,后观察仪表盘

 

从上面可以看到当nginx挂掉后会第一时间发送邮件告知相关人员;但是我们更多的是希望能够帮我们自动重启nginx;那么接下来配置自动重启

7)配置动作(远程执行命令、恢复操作等)

进入:配置 -> 动作 -> 创建动作

配置操作:配置操作时执行重启命令,(注意:因为zabbix 进程是使用zabbix用户来维护的,所以它没有权限去执行重启nginx命令,这里需要先在 zabbix-agent 上授权)

# chmod 640 /etc/sudoers
# vim /etc/sudoers    //编辑sudo文件,添加如下两行
# Allow 'zabbix' user to restart nginx without password
zabbix  ALL=NOPASSWD: /etc/init.d/nginx restart

添加恢复操作:

到这里就配置完成了,当我在 zabbix-agent 上面停掉 nginx,便会自动帮我们重启并发送邮件

至此,zabbix远程执行命令就配置完成了。

 

附zabbix-agent端上的配置脚本(只针对当前配置里面的nginx、mysql、php)

zabbix-agent_config.sh

标签:status,执行命令,service,etc,--,nginx,zabbix,远程
From: https://www.cnblogs.com/A121/p/17466912.html

相关文章

  • mybatis if标签的判断是否等于1,0
    正确写法:<iftest="xxx=1">或者<iftest="xxx='1'.toString()">或者<iftest='xxx="1"'>错误写法<iftest="xxx='1'">如果判断条件是数字,则不能加单引号,否则将会不生效! 拓展:mybatis源码中,会把......
  • zabbix--邮件告警报错“Support for SMTP authentication was not compiled in”
    邮件报警失败:SupportforSMTPauthenticationwasnotcompiledin 解决办法:升级curl版本具体操作步骤:1)安装curl #rpm-Uvhhttp://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm#yum--showduplicateslistc......
  • CANoe_ Trace 和 Graphics 窗口的介绍和使用
    Canoe是一款用于汽车网络分析和仿真的工具,其中包括Trace和Graphics两个窗口,用于显示和分析CAN网络数据。以下是对Canoe的Trace和Graphics窗口的简要介绍和使用说明:1.Trace窗口Trace窗口用于显示CAN网络中的消息和信号数据。可以在Trace窗口中实时查看CAN消息的发送和接收情......
  • zabbix--基础概念及原理
    zabbix基础概念及工作原理整理#什么是zabbix?#Zabbix能监控各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位、解决存在的各种问题。是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。主要有以下几个功能组......
  • cordova3.5整合百度云推送PushNotification(1)
    选择百度云推送理由:专业、稳定、免费(GoogleGCM在国内有时无法正常使用)第1步:注册开发者账户并登录。第2步:创建一个工程。输入必要的信息。第3步:创建完成后。可以看到百度为你分配的APIKey和SecretKey。先复制APIKey第4步:集成到phonegap/cordova开发环境打开cmd,cd到你的工......
  • 正则表达式30分钟入门教程(第二版),正则讲解
    作者:mfkidt目录本文目标如何使用本教程什么是正则表达式?入门测试正则表达式元字符字符转义重复字符类反义替换分组后向引用位置指定负向位置指定注释贪婪与懒惰平衡组还有些什么东西没提到一些我认为你可能已经知道的术语的参考网上的资......
  • jquery Mobile点击显示加载等待效果
    点击某个按钮或链接时,触发等待加载效果:<script><!--$(document).bind("mobileinit",function(){});$(function(){//默认设置,一个小圈圈在转$('#default').live('tap',function(){$.mobile.loadingMessageTe......
  • 让一张图片从模糊慢慢变清晰动画过程
    importjava.io.IOException;importjava.io.InputStream;importandroid.app.Activity;importandroid.content.Context;importandroid.content.res.AssetManager;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;......
  • JQ插件:nicescroll自定义滚动条
    参考:http://www.areaaperta.com/nicescroll/该插件支持移动设备;可上下、左右拖拉滚动;看图,上面的分类菜单就是。导入:<scripttype="text/javascript"src="js/jquery.nicescroll.min.js"></script>定义需要滚动的区域,#boxscroll是vieport,#categorys是c......
  • JQ插件:Knob旋钮按钮
    在线演示用法介绍:分享一款超棒的jQuery旋钮插件-jQueryknobhttp://anthonyterrien.com/knob/我要实现的效果:就是需要下方有一个缺口,用于显示一些文字。我利用knob只显示了这个圆环,其中的文本数字都是在div中显示的,跟knob无关!首先导入jquery和knob插件:<scripttype="tex......