草庐IT

zabbix远程命令(remote command)配置

黎晨 2023-03-28 原文
1、zabbix远程命令(remote command):

1.1 功能:

    重启服务;

    通过IPMI接口重启服务器;

    任何自定义脚本可以完成的功能:清理磁盘空间,虚拟机实例迁移等等;

1.2 相关属性:

    Tatget list:远程命令执行的目标主机,可以实当前主机、其他主机或主机组

    Type:命令类型

        IPMI:IPMI命令;

        Custom script:自定义脚本,可以选择其是在zabbix server上还是zabbix agent上执行;

        SSH:通过ssh执行命令,需要提供目标主机上的用户账号、相关的认证方式及认证所需额外信息;

        Telnet:通过Telnet执行命令,需要指定用户名、口令及远程主机telnet服务监听的端口

        Global script:全局脚本,执行"Administration-->Scripts"定义的脚本的其中之一;

    Commands:要执行的命令 

2、使用的前提条件

在agent需要完成的配置:

(1)zabbix用户有所需要管理的权限(基于sudo授权)

~]# visudo # %wheel        ALL=(ALL)       NOPASSWD: ALL zabbix  ALL=(ALL)       NOPASSWD: ALL # Defaults    requiretty# 注释该行 关于该配置的说明:

     1) Defaults requiretty,修改为 #Defaults requiretty,表示不需要控制终端(不需要从终端登录就可以执行命令)

     # su - zabbix -c 'sudo /usr/bin/systemctl restart httpd.service'

     2) Defaults requiretty, 修改为 Defaults:nobody !requiretty,表示仅nobody用户不需要控制终端(仅nobody用户不需要从终端登录就可以执行命令)

(2)agent进程要允许执行远程命令;

~]# vim /etc/zabbix/zabbix_agentd.conf EnableRemoteCommands=1# 开启远程命令 ### Option: LogRemoteCommands #       Enable logging of executed shell commands as warnings. #       0 - disabled #       1 - enabled # # Mandatory: no # Default: # LogRemoteCommands=0 LogRemoteCommands=1# 记录日志 (3)重启服务

~]# systemctl restart zabbix-agent.service (4)zabbix用户可登陆

~]# mkdir /var/lib/zabbix# 创建家目录,可不做 ~]# grep "^zabbix" /etc/passwd zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin ~]# usermod -s /bin/bash zabbix ~]# grep "^zabbix" /etc/passwd zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/bin/bash3、探测tcp的80端口,如果tcp的80端口没有监听,则自动重启nginx服务器

在被监控主机安装nginx

~]# yum install -y nginx ~]# systemctl restart nginx.service    # 启动服务在zabbix web上配置item和trigger,收集监控数据和设置触发器

item:

trigger:

Action配置,重点是Operation details的配置:


验证:

停止nginx服务

~#] su - zabbix -c "sudo /usr/bin/systemctl stop  nginx.service" # 该方法可以验证zabbix在没有登录终端的情况下是否可以执行命令 会有如下报错,不影响使用,不用理会: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address (polkit-error-quark, 0)在Monitoring的Triggers里可以看到触发的监控项,

在Events里可以看到触发的事件,已经提示的Action:

在可以在agent host上/var/log/zabbix/zabbix_agentd.log目录查看操作日志(可以通过日志查找错误原因):

  4620:20170511:111934.635 Executing command '/usr/bin/systemctl restart nginx.service'在agent host上发现80端口已经重新监听:

[root@wlm ~]# ss -tnl | grep 80 LISTEN     0      128          *:80                       *:*                   LISTEN     0      128         :::80                      :::*在zabbix web上的告警也已经解除了。

有关zabbix远程命令(remote command)配置的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  6. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  7. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  8. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

  9. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

  10. ruby - 是否可以将 IRB 提示配置为动态更改? - 2

    我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO

随机推荐