我正在尝试编写一个本地 python 检查,它将 XML 请求发送到 WSDL 服务并将响应作为 XML 获取。该脚本在服务器(Ubuntu 18.04.2 LTS 服务器)上运行良好,并打印出我想要的结果。但是 check_mk(安装在另一台服务器上)并没有完全读取这个输出。
我要运行脚本的服务器在 Ubuntu 18.04.2 LTS 上运行 Python 2.7.15rc1,但 check_mk 服务器在 CentOS Linux 7(核心)上运行 Python 2.7.5。另外,我注意到在 check_mk 服务器上运行的相同脚本与我预期的不同。我应该更改 try-except 块以使脚本在 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