天蓝色服务器上的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我通过从root或nrpe运行脚本来实现上面的输出
运行sudo -u nrpe ./script -U www.google.com返回:
打开页面时出错!错误:无法连接到ipv6地址网络
但是,运行su - nrpe -c './script -U www.google.com'可以实现所需的结果。
Naemon报告:
CHECK_NRPE: 30秒后套接字超时
对同一台主机的其他NRPE检查也是有效的,所以我认为这与用户执行这个特定脚本有关。我确实否认了SELinux的说法,但是我调整了上下文。删除上下文并将SELinux设置为允许性会产生相同的错误。启用了NRPE日志文件,并进行了调试,但除了Running command之外,它并没有显示多少信息。有一个:
WARNING: my_system() seteuid(0): Operation not permitted在日志中,但是查看支持文档,这是“正常”的行为。
发布于 2019-04-03 12:29:24
我会张贴这个,以防其他人有这个问题,我会标记Azure / AWS。
基本上,云提供商(大部分)有一个内部代理,它存储在环境变量http_proxy && https_proxy中。默认情况下,NRPE不使用load环境变量。现在,我不知道它是否有一个选项(在文档中提到,在使用uid而不是用户名(使用用户名)时有一个bug ),但是它很简单,可以调用代理进行这样的检查。
https://stackoverflow.com/questions/55451191
复制相似问题