我正在获取NRPE:尝试使用nagios连接到Docker容器时无法读取输出。 当我直接在客户端机器上运行这个脚本时,它成功地返回了mongo db中的行数。 但是,当我从服务器远程运行它时,我无法读取输出。 executing from nagios server /usr/lib64/nagios/plugins/check_nrpe -H hostipaddress -c check_mongocount NRPE: Unable to read output check_mongocount脚本基本上连接到docker集装箱,并计算某个date的特定客户的行数。 count=`sudo /bin/docker exec -it container mongo dbname –quiet -u "test" -p "test" –authenticationDatabase "test" –eval '(db.test.count( { $and: [{create_at: {$gte: NumberLong("1499227200"), $lt: NumberLong("1499313599")}},{customerid:1}]}))' /etc/nagios/nrpe.cfg添加了以下行。 command[check_mongocount]=sudo /usr/lib64/nagios/plugins/test.sh 我在我的/ etc / sudoers文件中有nrpe ALL=(ALL) NOPASSWD:ALL 。 尽pipenrpe拥有执行docker命令的所有权限,但是无法返回计数值。
我用bash写了一个自定义检查,并在4台不同的服务器上运行。 其中两个工作正常,另外两个在检查文件是否存在时失败: if [ ! -f $LOGFILE ] 通过“失败”我的意思是在这两个服务器脚本决定$LOGFILE不存在(这是错误的)。 所有四台服务器具有相同的configuration,权限等。该文件存在于所有服务器上。 手动运行时,没有错误。 当作为nagios或nrpe用户手动运行时,没有错误。 它只有在通过nagios通过check_nrpe -H … -c …远程运行时才会失败check_nrpe -H … -c … 我认为也许我的bash技能有点生疏,所以我重新写了Python的支票。 现在, 同样的两台服务器失败了 ,但是错误是 NRPE: Unable to read output 同样,所有服务器上的Python版本都是一样的 但是,我发现有错误的服务器会显示此消息: $ sudo grep nagios /var/log/messages Jul 19 11:09:15 app-a abrt: detected unhandled Python exception in '/usr/local/nagios/libexec/check_redirects' 正如我所说的,我已经检查了在nagiosconfiguration(在nagios主和客户端),在权限,在python版本的差异…一切似乎是一样的。 我发现很多关于在同一台服务器上工作/失败的检查问题。 这是完全相同的检查在一些服务器上工作,但不是其他人。 任何想法将不胜感激。 谢谢。
我使用Nagios监视多个主机。 当我使用在监视主机上执行的“正常”检查(比如check_http )时,这工作正常。 但是,我在使用基于NRPE的检查时遇到了麻烦,而检查是通过监视主机上的NRPE服务执行的。 我已经在受监控的主机的NRPEconfiguration中声明了我的自定义命令,例如 command[check_memory]=/usr/lib/nagios/plugins/check_memory -w 20% -c 10% -u G 然后,我在监控主机的Nagiosconfiguration中创build了相应的Nagios命令: define command { command_name my_check_nrpe command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTALIAS$' -c '$ARG1$' } define service { use my-service service_description Free memory check_command my_check_nrpe!check_memory check_interval 15 } 当我在监视主机上使用nagios用户(运行nagios服务)手动运行它们时,这些检查工作正常: nagios@monitor:~$ /usr/lib/nagios/plugins/check_nrpe -H 'my.target.host' -c 'check_memory' MEMORY OK – 0G free | free=956080128b;419844915.2:;209922457.6: 不过,我不断收到Nagios发来的关于服务的电子邮件警告: ***** Nagios […]
我正在使用NSClient ++的CheckEventLog 0.5.0.62 2016-09-14 如何使用语法,如果特定的事件ID是不是在24小时内生成,我需要关键的警报,如果事件ID生成我需要状态OK。 我的语法: ./check_nrpe -H 192.168.63.1 -c check_eventlog -a "scan-range=-24h" "crit=count=<0" "filter=id=1" "ok=count>0" "warn=none" 输出: OK: No entries found 对于上面的语法,事件ID 1不是在24小时内生成的,所以我的状态已经变好了。 但我需要关键 请帮助我上面的语法。
我得到以下错误。 NSClient版本:0.5.0.65 2016-11-13 nsclient.ini: [/模块] CheckWMI =启用 句法: ./check_nrpe -H 10.122.33.96 -c check_wmi -a“query =从SoftwareLicensingService中select*”“critical = 15”“warning = 25”检查:KMSCurrentCount = KeyManagementServiceCurrentCount 输出: UNKNOWN无效的命令行:无法识别的选项“检查” NSClient版本:0.5.0.65 2016-11-13
我下载了nrpe-3.2.0.tar.gz和nagios-plugins-2.2.1.tar.gz ,解压缩,编译并安装在一个RHEL 6.8 64位盒子中。 它在SELinux状态为Permissive时运行良好,但在强制模式下不起作用。 我跑了很多次 grep -e nrpe -e nagios /var/log/audit/audit.log | audit2allow -M nrpe semodule -i nrpe.pp 但是我总是从Nagios服务器得到相同的错误信息: check_nrpe -H 10.252.1.212 CHECK_NRPE: Error – Could not complete SSL handshake. 并在节点的nrpe.log中: [1505198565] is_an_allowed_host (AF_INET): host is in allowed host list! [1505198565] Host address is in allowed_hosts [1505198565] Error: (!log_opts) Could not complete SSL handshake […]
Nagios服务器在Docker容器中运行。 它正在通过在networking中的各种主机上运行的NRPE来进行主机检查。 docker主机是10.10.100.100 Iptables只允许来自10.10.100.100的tcp 5666入站,用于入站NRPE检查 来自Nagios的nrpe检查成功通过了防火墙。 这将certificate数据包源地址确实是10.10.100.100 NRPEconfiguration有: server_port=5666 allowed_hosts=10.10.100.100 在进行nrpe调用时,NRPE syslog指出: Oct 20 18:42:32 dockerz01 nrpe[13382]: Allowing connections from: 10.10.100.100 Oct 20 18:42:59 dockerz01 nrpe[13411]: Host 172.20.0.2 is not allowed to talk to us! 这意味着发送给NRPE的数据包将具有源地址172.20.0.2(这是Docker桥接networking内的Docker容器IP)。 如果是这样,它将如何通过防火墙? 这不太合理,我有点难过 当然,通过在NRPEconfigurationallowed_hosts=172.20.0.2中设置allowed_hosts=172.20.0.2可以解决这个问题,但这并不是allowed_hosts=172.20.0.2的,并不能真正解决这个问题。 Nagios是否发送它认为是NRPE数据包中的“源”IP,这就是NRPE判断“源”地址的来源? 如果是这样,那怎么能改变呢? 我在这里错过了什么? 我的目标是把Docker主机作为allowed_host,因为我知道这是静态的,不会改变。
我必须使用VirtualBox监视在Windows Server 2008环境中运行的虚拟机。 我使用Nagios来完成监控工作。 这个过程在Ubuntu服务器环境中执行。 Nagios和Windows机器之间的通信依赖于NRPE(Nagios远程协议执行程序)。 我在Windows机器上安装了NSClient ++,并编写了一个脚本,它运行一个VBoxManage命令来检查虚拟机的状态。 这是脚本: @ECHO off "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showvminfo "win732" –machinereadable > C:\Users\root\etat_machine.txt FOR /F "tokens=* delims= " %%a in ('FINDSTR /I "win732" C:\Users\root\etat_machine.txt ^| FIND /C /I "win732"') do ( set res=%%a ) IF %res% == 1 goto ok IF %res% == 0 goto err :err ECHO WARNING: VM […]
我正在寻找允许连接到远程主机检查的NRPE服务代码: HTTP服务连接在端口80或自定义端口上 端口22上的ssh服务或自定义端口 由于检查与hda兼容的磁盘代码,我需要检查与sda兼容的磁盘 谢谢
有一个icinga服务器设置运行check_megaraid_sas 。 在过去的7个月里,它一直在美丽地工作。 在这段时间内,有几个“无法读取输出”的信息出现了各种原因,在所有这些情况下,状态是未知的,这触发了我们的警报系统。 最近的驱动器从警告,到关键,以确定: 15:22:03 RAID-Health; WARNING; … 18:42:03 RAID-Health; CRITICAL; … 19:04:03 RAID-Health; OK; NRPE:无法读取输出 在这个问题的时候,megaraidsas状态返回了以下内容: — Arrays informations — — ID | Type | Size | Status — Disks informations — ID | Model | Status | Warnings 然而,我本来希望脚本能够返回“OK:Drives 0”(正如一些用户的评论所暗示的那样 – 仍然是一个错误,而是一种不同的解决方法)。 由于NRPE返回“无法读取输出”并将其标记为“OK”,这使得我认为这是NRPE而不是脚本的问题。 有没有什么办法可以说服NRPE,当它没有收到任何数据作为支票的回应,检查失败? 还是有其他人有什么想法,可能发生了什么? 正在检查的服务器已重新启动,我不确定是否会再次显示该情况以进行testing。