Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Splunk Python连接丢失_Python_Splunk - Fatal编程技术网

Splunk Python连接丢失

Splunk Python连接丢失,python,splunk,Python,Splunk,我正在使用python执行splunk搜索查询并返回结果。我使用以下字符串连接: service = client.connect( host=HOST, port=PORT, username=USERNAME, password=PASSWORD ) 变量已经过测试,可以正常工作,它连接到splunk,但有时,当我运行以下代码行时: print "Installed App Names \n" for app in service.apps: pri

我正在使用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%的时间,代码工作,并且执行。代码结果中的这种不一致是否会影响到未实际连接到splunk服务器的
服务=
代码行?这些连接是否会超时?

connect
可以使用
autologin=True
参数,以允许绑定在身份验证失败时尝试重新连接,而不是立即引发该错误。

您可能应该使用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

因此,这行代码如下所示:
service=client.connect(主机=host,端口=port,用户名=username,密码=password,autologin=True)
?我试图在一个python脚本中执行几百个splunk查询,在脚本中的某个地方,我得到了以下错误:
splunklib.binding.AuthenticationError:Autologin成功,但在下一个请求中出现了auth错误。有些地方很不对劲。
因为要执行的脚本太长,而我在这段时间内失去了连接。有没有办法确保我不会从Splunk上断开连接?这对我来说是新的,对不起。即使您在此期间失去连接,使用autologin设置,当身份验证失败时,它也会尝试重新登录(每个请求一次)并重复该请求。该错误告诉您的是,它确实尝试重新登录,并且成功了,但身份验证仍然失败。我不知道你为什么会这样。您确定您的用户有权限执行任何失败的操作吗?也许Splunk的内部日志可以提供一些线索。我不知道为什么它会第一次授权给我,但第二次不会。我要潜进去看看原因