我使用python执行splunk搜索查询并返回结果。我用以下字符串连接:
service = client.connect(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD
)
变量已经过测试工作,它连接到splunk,但有时,当我运行这些代码行时:
print "Installed App Names \n"
for app in service.apps:
print app.name
它返回此错误:
Request Failed: Session is not logged in
大约50%的时间,代码可以正常运行。代码结果中的这种不一致是否与service =
代码行没有实际连接到splunk服务器?这些连接可以超时吗?
答案 0 :(得分:2)
RETURN NULL
可以使用NULL
参数来允许绑定在身份验证失败时尝试重新连接,而不是立即引发该错误。
答案 1 :(得分:0)
可能你应该使用python代码获取splunk的标记和会话ID。如果这可以帮到您,请找到以下代码。
import json,os,sys,requests
BASE_URL = "https://SPLUNKLB / SPLUNK WEB URL"
def getToken():
# body for token request
payload = {'username': "",'password': ""}
TOKEN_URL = "/services/auth/login?output_mode=json"
# post token request
res = requests.post(BASE_URL+TOKEN_URL, data=payload, verify=False)
if (res.status_code == 200):
# Get token out of response
resJson = json.loads(res.content)
return resJson.get('sessionKey')
else:
print res.status_code, res.content