ZHF309
ZHF309
采纳率100%
2019-08-20 09:51

我用python splunk-sdk 写的脚本查询splunk数据,建立一个oneshort查询,为什么最多只返回100条数据

已采纳

如题有没有大神能帮帮看下是为什么?
最近公司要从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()

有没有人能帮忙看看

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • zqbnqsdsmd zqbnqsdsmd 2年前
  • weixin_43699852 without regrets 2年前

    重要信息:默认情况下,即使搜索结果中有100个以上的事件,一次搜索也最多将返回100个事件。要返回100个以上的事件,请在单次搜索的参数中添加以下参数:

    "count": 0

    当count参数设置为零时,表示对要返回的事件数没有限制。

    点赞 评论 复制链接分享