AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 649989
Accepted
dlyk1988
dlyk1988
Asked: 2014-12-09 07:00:08 +0800 CST2014-12-09 07:00:08 +0800 CST 2014-12-09 07:00:08 +0800 CST

Nagios 插件手动执行但不自动执行

  • 772

经过反复试验,我设法让check_hwinfo插件只能部分工作。我说的部分是手动的。

在我的“/usr/lib64/nagios/plugins”目录中,我有具有正确权限的“check_nrpe_hwinfo.sh”脚本:

[root@localhost plugins]# ls -lah | grep hwinfo
-rwxr-xr-x. 1 root root    419 Dec  8 15:35 check_nrpe_hwinfo.sh

在我的“conf.d”目录中,我有一个带有必要声明的“check-hwinfo.cfg”文件:

define command{
        command_name    check_hwinfo
        command_line    $USER1$/check_nrpe_hwinfo.sh $HOSTNAME$ $HOSTADDRESS$
}



define service{
        use                     generic-service
        hostgroup_name          1st-floor-windows-nrpe-hosts,2nd-floor-windows-nrpe-hosts
        service_description     HW Info
        notification_options    none
        normal_check_interval   240
        notification_interval   240
        retry_check_interval    2
        max_check_attempts      120
        check_command           check_hwinfo
}

在我的 Windows 主机上,我在“C:\NSClient++\scripts”中有提供的“check_hwinfo.wsf”文件。双击时,脚本正确运行并在弹出窗口中显示信息。另外,我已经像这样修改了“nsclient-full.ini”文件:

[/settings/external scripts/scripts]
check_hwinfo=c:\windows\system32\cscript.exe //NoLogo //T:30 scripts\check_hwinfo.wsf
check_hwinfo_csv=c:\windows\system32\cscript.exe //NoLogo //T:30 scripts\check_hwinfo.wsf /sep:csv

在我的 Nagios 服务器上,在 '/usr/lib64/nagios/plugins/' 目录中,我给出以下命令:

./check_nrpe -H 192.168.10.13 -c check_hwinfo

我得到正确的输出。

检查应该自动运行。但是...在 Nagios WebUI 中,我在与 check_hwinfo 对应的行中收到此错误:

(Return code of 126 is out of bounds - plugin may not be executable) 

在对 Nagios 进行了一些实验之后,我认为这只是一个通用错误。

所以...任何想法为什么检查在手动运行时执行并正确返回但在自动运行时不正确?

更新 1:

“check_nrpe_hwinfo.sh”文件看起来完全像这样:

#!/bin/bash

ARG_HOSTNAME=${NAGIOS_HOSTNAME:-$1}
ARG_HOSTADDRESS=${NAGIOS_HOSTADDRESS:-$2}

PATH=${PATH}:/usr/lib64/nagios/plugins

HWINFO="`check_nrpe -H $ARG_HOSTNAME -c check_hwinfo_csv`"
RESULT=$?
ARG_HOSTNAME_CLEAN=`echo $ARG_HOSTNAME | tr -cd '0-9a-zA-Z._-'`

if [ "$RESULT" == 0 ]; then
        echo "\"$ARG_HOSTADDRESS\",$HWINFO" > /var/www/html/hwinfo/$ARG_HOSTNAME_CLEAN
fi
echo "$HWINFO"
exit $RESULT

更新 2:

[root@localhost plugins]# ./check_nrpe -H 192.168.10.13 -c check_hwinfo_csv
"Gigabyte Technology Co., Ltd.","P55A-UD3","","1","Intel(R) Core(TM) i7 CPU         870  @ 2.93GHz","2927 MHz","8192 KB","133 MHz","8192M","Non-ECC","4096M/2048M/2048M/0","932 G / 932 G","WDC WD10EALS-002BA0 ATA Device / WDC WD10EZRX-00A8LB0 ATA Device","Microsoft Windows 7 Ultimate "
nagios
  • 2 2 个回答
  • 1197 Views

2 个回答

  • Voted
  1. Best Answer
    MadHatter
    2014-12-09T07:39:09+08:002014-12-09T07:39:09+08:00

    你误导了自己,没有将苹果与苹果进行比较。您手动运行的命令不是您要求 NAGIOS 自动运行的命令。当您手动运行实际命令时

    check_nrpe_hwinfo.sh $HOSTNAME$ $HOSTADDRESS$
    

    通过适当的替换,问题就暴露出来了。该文件似乎是从 Windows 框传输的,并且具有 dos 样式的行结尾 - 这会导致 shebang 解释器在您要求它启动一个名为bash^M. 通过 运行它dos2unix,或者使用或其他具有二进制功能的编辑器将终端^Ms 取出vi,一切都应该很好。

    • 4
  2. eject
    2014-12-09T07:30:21+08:002014-12-09T07:30:21+08:00

    用于调试 nagios 检查很棒的工具是 PyNag https://github.com/pynag/pynag/wiki

    取决于您的发行版,您可以从软件包或 github 获取它

    # cd to folder with nagios.cfg
    cd /etc/nagios/
    
    # run pynag to see what's actual command will be executed
    # Usage: pynag execute <host_name> [service_description]
    
    pynag execute my_windows_host1 "HW Info"
    
    • 0

相关问题

  • 使用 Nagios 监视 Novell 集群服务

  • 异地nagios?[关闭]

  • 是否有任何可用的图形工具来为主机生成 nagios 用户提供的地图坐标?

  • 我如何开始使用 Nagios?

  • 如何为 Exchange 邮件存储配置 Nagios 警报

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve