将 splunk api curl 命令转换为 python
convert splunk api curl command to python
我可以 运行 一个 splunk api 调用 bash 并取回一个 SID,然后我用它来取回一个 splunk 查询。它的第一部分如下。但是,我在使用 requests
将其更改为 python 请求时遇到问题。我一直收到 ssl CERTIFICATE_VERIFY_FAILED
错误。
Bash 命令
data=$( curl -k -u username:password https://<splunk_endpoint>/services/search/jobs -d 'search=search earliest=-1m index=_internal')
echo $data
Bash 输出:
1538748227.228319_D07875A9-FDD6-46E8-BE77-EDF9BD9A73B1
python 请求
import requests
baseurl = 'https://<splunk_endpoint>/services/search/jobs'
headers = {
"Content-Type": "application/json",
}
data = {
'username': 'username',
'password': 'password',
"search": "search earliest=-1m index=_internal",
}
r = requests.get(baseurl, data=json.dumps(data), headers=headers)
print(r.json())
我不确定将用户名和密码放在哪里。那属于 'data' 吗?在 headers?别的地方?我也不知道我的-d conversino 到数据字典是否正确。我觉得是。
任何想法
Requests 库验证 HTTPS 请求的 SSL 证书。您很可能使用的是不匹配的 Splunk 自签名证书。
您可以通过在 get 中添加 verify=False 来忽略此检查。
r = requests.get(baseurl, data=json.dumps(data), headers=headers, verify=False)
我在寻找使用 Python 的请求库与 Splunk 交互时遇到了这个问题。我不知道如何创建搜索负载。这是我安排作业和获取 SID 的基本代码:
import requests
username = 'my_username'
password = 'my_password'
search = {'search':'search earliest=-5m index=_internal'}
r = requests.post('https://splunk-search:8089/services/search/jobs/', auth=(my_username, my_password), data=search, verify="/etc/pki/tls/cert.pem")
print(r.text)
我可以 运行 一个 splunk api 调用 bash 并取回一个 SID,然后我用它来取回一个 splunk 查询。它的第一部分如下。但是,我在使用 requests
将其更改为 python 请求时遇到问题。我一直收到 ssl CERTIFICATE_VERIFY_FAILED
错误。
Bash 命令
data=$( curl -k -u username:password https://<splunk_endpoint>/services/search/jobs -d 'search=search earliest=-1m index=_internal')
echo $data
Bash 输出: 1538748227.228319_D07875A9-FDD6-46E8-BE77-EDF9BD9A73B1
python 请求
import requests
baseurl = 'https://<splunk_endpoint>/services/search/jobs'
headers = {
"Content-Type": "application/json",
}
data = {
'username': 'username',
'password': 'password',
"search": "search earliest=-1m index=_internal",
}
r = requests.get(baseurl, data=json.dumps(data), headers=headers)
print(r.json())
我不确定将用户名和密码放在哪里。那属于 'data' 吗?在 headers?别的地方?我也不知道我的-d conversino 到数据字典是否正确。我觉得是。
任何想法
Requests 库验证 HTTPS 请求的 SSL 证书。您很可能使用的是不匹配的 Splunk 自签名证书。
您可以通过在 get 中添加 verify=False 来忽略此检查。
r = requests.get(baseurl, data=json.dumps(data), headers=headers, verify=False)
我在寻找使用 Python 的请求库与 Splunk 交互时遇到了这个问题。我不知道如何创建搜索负载。这是我安排作业和获取 SID 的基本代码:
import requests
username = 'my_username'
password = 'my_password'
search = {'search':'search earliest=-5m index=_internal'}
r = requests.post('https://splunk-search:8089/services/search/jobs/', auth=(my_username, my_password), data=search, verify="/etc/pki/tls/cert.pem")
print(r.text)