【问题标题】:NRPE Socket timeout via NRPE, works as nrpe user通过 NRPE 的 NRPE 套接字超时,作为 nrpe 用户工作
【发布时间】:2019-04-01 08:48:16
【问题描述】:

天蓝色服务器上的 nrpe - nrpe-srvr,用户 nrpe,执行脚本 /usr/local/naemon/libexec/check_curl_http.php 我将其称为 script

./script -U www.google.com 之后的期望输出:

Page OK: HTTP Status Code 200 - 11099 bytest in 0.** seconds | time=0.059 size=11099

我通过从rootnrpe 运行脚本来实现上述输出

运行sudo -u nrpe ./script -U www.google.com 返回:

打开页面出错!错误:无法连接到 [ipv6 addr] 网络是 无法到达

但是运行 su - nrpe -c './script -U www.google.com' 可以达到预期的效果。

内蒙报告:

CHECK_NRPE:30 秒后套接字超时

对同一主机的其他 NRPE 检查正在运行,因此我认为这与用户执行此特定脚本有关。我确实收到了来自SELinux 的拒绝,但调整了上下文。删除上下文并将 SELinux 设置为 permissive 会产生相同的错误。启用 NRPE 日志文件,进行调试,但除了Running command 它并没有真正透露太多。有一个:

WARNING: my_system() seteuid(0): Operation not permitted

在日志中,但查看“正常”行为的支持文档。

【问题讨论】:

  • 尝试以详细模式运行该脚本。
  • 我认为脚本执行得很好。实际上,我设法让它作为另一个用户使用su - nrpe - c './script -u www.google.com' 正常工作。所以我觉得剧本没问题。 NRPE 执行导致问题。

标签: azure amazon-ec2 nagios nrpe


【解决方案1】:

我会发布这个以防其他人有这个问题,我会标记 Azure / AWS。

基本上,云提供商(大部分)有一个内部代理,它存储在环境变量http_proxy && https_proxy 中。 NRPE 默认不使用加载环境变量。现在我不知道是否有一个选项(文档中提到使用 uid 而不是用户名(使用用户名)时存在错误)但是调用代理进行这样的检查很简单。

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多