如题有没有大神能帮帮看下是为什么?
最近公司要从splunk调数据放到自己的解析系统里,然后发现python有个splunk-sdk,但是编写脚本创建oneshort查询时发现,search_query里写到head n,n>100的时候也返回100条数据
脚本如下:
#!/usr/bin/env python
#_*_encoding:utf-8_*_
import splunklib.client as client
import splunklib.results as results
from datetime import datetime, timedelta
import os
import ssl
import time
ssl._create_default_https_context = ssl._create_unverified_context
HOST="127.0.0.1"#splunk服务器地址
PORT=8089#端口
USERNAME="splunk"#登录名
PASSWORD="12345678"#密码
#设置查询语句
search_query='search sourcetype=ttm | head 200'
#定义查询起始日期和结束日期
end_time=datetime.now() #当前时间
start_time=end_time - timedelta(minutes=5) #当前时间-5分钟
#flume读取文件路径
basedir='/root/ezdata/ezlog/'
#files,先写入temp文件,然后重命名成flows
tempfile=os.path.join(basedir,'domain.temp')
flows=end_time.strftime("%Y%m%d%H%M%S")+'.flows'
flowsfile=os.path.join(basedir,flows)
def main():
#连接splunk
service = client.connect(host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
app='search',verify=False)
assert isinstance(service, client.Service)
#查询参数
search_kwargs={
'earliest_time':datetime.strftime(start_time, "%Y-%m-%dT%H:%M:%S.%f")[:-3]+'+08:00',
'latest_time':datetime.strftime(end_time, "%Y-%m-%dT%H:%M:%S.%f")[:-3]+'+08:00'
}
jobs=service.jobs
#执行查询语句
print("正在查询...")
job=jobs.oneshot(search_query,**search_kwargs)
#将结果写入本地文件中
with open(tempfile,'w+') as fh:
for result in results.ResultsReader(job):
fh.write(str(result['_raw']))
fh.write("\n")
os.rename(tempfile,flowsfile)
print("执行成功...")
main()
有没有人能帮忙看看