gpt4 book ai didi

python - Check_MK不读取远程主机上的本地python检查

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:36 25 4
gpt4 key购买 nike

我正在尝试编写一个本地 python 检查,它将 XML 请求发送到 WSDL 服务并获取 XML 形式的响应。该脚本在服务器(Ubuntu 18.04.2 LTS Server)上运行良好并打印我想要的结果。但 check_mk(安装在另一台服务器上)无法完全读取此输出。

我想要运行脚本的服务器在 Ubuntu 18.04.2 LTS 上运行 Python 2.7.15rc1,但 check_mk 服务器在 CentOS Linux 7(核心)上运行 Python 2.7.5。另外,我注意到相同的脚本在 check_mk 服务器上的工作方式与我的预期不同。我应该更改 try- except block 以使脚本在 Check_MK 服务器上运行。

#!/usr/bin/python

import requests, base64, re

xml_file = 'request.xml'

hdr = {'Content-Type' : 'text/xml',
'Authorization' : 'Basic somestring')
}

with open(xml_file) as xml:
req = requests.post('http://192.168.39.17:8080/GatewayWebservicesBean?wsdl', data=xml, headers=hdr)
scode = req.status_code

try:
resp = re.search(r'<message>(.*?)</message>', req.content).group(1)
except AttributeError:
print '2 gw_check c=1;0;1;0 Cannot Access to Gateway! Status Code: %s' %scode #Check_MK doesn't read this output
else:
if resp == 'Access':
print '0 eagw_check c=0;0;1;0 OK - Gateway works well'
else:
print '2 eagw_check c=1;0;1;0 Please check internal system! Respond from internal system: %s' %resp

最佳答案

我的 python 脚本也有类似的问题,该脚本作为本地检查添加到 /usr/lib/check_mk_agent/local/ 目录中。该本地脚本在一台服务器中成功执行,但在另一台服务器中失败。在服务器中手动调用 check_mk_agent 时,成功执行了脚本。但是,当由 check_mk 调用时,输出不会发送到服务发现。所以我将 python 脚本包装在 bash 脚本中,并将错误重定向为打印输出,如下所示,输出=$(python/usr/lib/check_mk_agent/local/yuge.py 2>&1)

事实证明,check_mk 无法导入我的 python 脚本中使用的 dateutil 库。该库是使用 pip 管理器安装的,无法在运行时导入。

所以我必须使用 apt-get 而不是 pip post 安装库,本地检查脚本已成功执行并将输出发送到服务发现。检查其他工作服务器,发现已经使用 apt-get 安装了 dateutil 库。

https://github.com/chaoss/grimoirelab-perceval/issues/27

关于python - Check_MK不读取远程主机上的本地python检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56357952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com