如下:

curl -u admin:changeme -k https://localhost:8089/services/search/jobs -d search="search source=\"http:hec_test\" | head 5"
curl -u admin:changeme -k https://localhost:8089/services/search/jobs/1481684877.17/results/ --get -d output_mode=csv

更智能点:

sid=`curl -u admin:changeme -k https://localhost:8089/services/search/jobs -d search="search source=\"http:hec_test\" refresh" 2>/dev/null | sed "1,2d" | sed "2d" | sed "s/.*>\([0-9]*\.[0-9]*\)<.*/\1/"`
echo $sid
curl -u admin:changeme -k https://localhost:8089/services/search/jobs/$sid/results/ --get -d output_mode=json 2>/dev/null >out.json

python实现:

#!/usr/bin/python -uimport urllib
import httplib2
from xml.dom import minidom
import time
import json# The same python implementation for curl function
'''
sid=`curl -u admin:changeme -k https://localhost:8089/services/search/jobs -d search="search source=\"http:hec_test\" refresh | head 21" 2>/dev/null | sed "1,2d" | sed "2d" | sed "s/.*>\([0-9]*\.[0-9]*\)<.*/\1/"`
echo $sid
curl -u admin:changeme -k https://localhost:8089/services/search/jobs/$sid?output_mode=json
curl -u admin:changeme -k https://localhost:8089/services/search/jobs/$sid/results/ --get -d output_mode=json 2>/dev/null >out.json
'''class SplunkQuery(object):def __init__(self):self.baseurl = 'https://localhost:8089'self.userName = 'admin'self.password = 'changeme'self.sessionKey = self.get_key()def get_key(self):server_content = httplib2.Http(disable_ssl_certificate_validation=True).request(self.baseurl + '/services/auth/login', 'POST', headers={}, body=urllib.urlencode({'username':self.userName, 'password':self.password}))[1]session_key = minidom.parseString(server_content).getElementsByTagName('sessionKey')[0].childNodes[0].nodeValuereturn session_keydef submit_job(self, search_query):# check if the query has the search operatorif not search_query.startswith('search'):search_query = 'search ' + search_querysid_body = httplib2.Http(disable_ssl_certificate_validation=True).request(self.baseurl + '/services/search/jobs','POST', headers={'Authorization': 'Splunk %s' % self.sessionKey},body=urllib.urlencode({'search': search_query}))[1]sid = minidom.parseString(sid_body).getElementsByTagName("sid")[0].childNodes[0].nodeValueprint "sid:", sidreturn siddef request_results(self, sid):start = time.time()response = httplib2.Http(disable_ssl_certificate_validation=True).request(self.baseurl + '/services/search/jobs/' + sid + "?output_mode=json", 'POST', headers={'Authorization': 'Splunk %s' % self.sessionKey},body=urllib.urlencode({}))[1]data = json.loads(response)while not data["entry"][0]["content"]["isDone"]:time.sleep(0.001)response = httplib2.Http(disable_ssl_certificate_validation=True).request(self.baseurl + '/services/search/jobs/' + sid + "?output_mode=json", 'POST', headers={'Authorization': 'Splunk %s' % self.sessionKey},body=urllib.urlencode({}))[1]data = json.loads(response)request_time = time.time()-startprint "result event count:", data["entry"][0]["content"]["eventCount"], "request time:", request_timeresult_response = httplib2.Http(disable_ssl_certificate_validation=True).request(self.baseurl + '/services/search/jobs/' + sid + "/results", 'GET', headers={'Authorization': 'Splunk %s' % self.sessionKey},body=urllib.urlencode({"output_mode": "json"}))[1]results = json.loads(result_response)["results"]assert data["entry"][0]["content"]["eventCount"] == len(results)end = time.time()print "result count:", len(results), "result request time:", end-startreturn resultsdef run(self, searchQuery):start = time.time()sid = self.submit_job(searchQuery)self.request_results(sid)end = time.time()print "search time:", end-startreturn start-endQ = SplunkQuery()
Q.run(searchQuery = 'sourcetype=hec_test | head 5')

参考:http://docs.splunk.com/Documentation/Splunk/6.5.1/RESTTUT/RESTsearches

转载于:https://www.cnblogs.com/bonelee/p/6178680.html

splunk rest api search相关推荐

  1. splunk采集linux日志,splunk日志监控利器

    日志处理引擎SPLUNK Splunk分为免费Free版和企业Enterprise版.SplunkFree专供个人使用.SplunkEnterprise添加了支持多用户和分布式部署的功能,并包括警报. ...

  2. Shodan API使用指南 撒旦网

    0x00 前言 Shodan是一个针对网络设备的搜索引擎,通过Shodan API进行搜索,不仅数据更加丰富,而且能够配合自己的程序实现自动化分析. 本文将要介绍Shodan API在使用过程需要注意 ...

  3. Python 技术篇-20行代码实现微信机器人斗图功能实例演示!斗图啦官网API调用方法

    话不多说,看效果图: 先说下原理: 微信接收到你说的话,发给机器人来回复,用回复的话传参给斗图网,然后获得斗图网返回的图片,保存后把图片再发给跟你斗图的人. 斗图啦官网API调用文档 斗图啦官网 菜单 ...

  4. 有关AutoCompleteBox组件的研究[5][Final]_集成搜索引擎搜索建议(Search Suggestion)——Silverlight学习笔记[40]...

    在AutoCompleteBox组件中集成搜索引擎的功能是十分常见的,这有助于我们更好地与Web进行交互.本文将为大家讲述如何在在AutoCompleteBox组件中集成搜索引擎的搜索建议. 实例: ...

  5. 在Python中使用Twitter Rest API批量搜索和下载推文

    数据挖掘 , 编程 (Data Mining, Programming) Getting Twitter data 获取Twitter数据 Let's use the Tweepy package i ...

  6. 小程序支付api密钥_如何避免在公共前端应用程序中公开您的API密钥

    小程序支付api密钥 问题 (The Problem) All you want to do is fetch some JSON from an API endpoint for the weath ...

  7. python gps与高德地图poi_Python——使用高德API获取指定城指定类别POI并实现XLSX文件合并...

    # 以下内容为原创,转载请注明出处 1 import xlrd #读xlsx 2 import xlsxwriter #写xlsx 3 import urllib.request #url请求,Pyt ...

  8. 【es】es 的 cat API是如何加载的

    1.概述 转载:[5]elasticsearch源码深入分析--cat API是如何加载的 2.cat API的分类 cat API是esAPI中比较简单的一种,es中的API按照大类分为下面几种: ...

  9. 热点热词 新闻热点 最新新闻数据API接口-天狗热点热词开放平台

    为什么80%的码农都做不了架构师?>>>    热点热词API列表 API 描述 基础 www.tngou.net/api/top/classify 取得热点热词分类,可以通过分类i ...

最新文章

  1. 搜狗输入法电脑版_搜狗输入法小米版升级简介
  2. 最新OCR开源神器来了!
  3. 2021年洛谷一月月赛(Div1、Div2,6题)全部题解
  4. Cookie的简单实用
  5. 检测到磁盘可能为uefi引导_重装系统win10提示磁盘布局不受UEFI固件支持怎么办...
  6. 【译】Why Decentralized AI Matters Part I: Economics and Enablers
  7. 多线程与高并发(三):JUC包下新的同步机制:CAS,AtomicInteger,AtomicLong,ReentrantLock,CountDownLatch,ReadWriteLock等
  8. Pytorch MNIST直接离线加载二进制文件到pytorch
  9. 《学习CSS布局》学习笔记
  10. 动态打字效果 html,html5 svg酷炫的打字动画特效
  11. linux核心的最新版本,求问Linux最新内核版本以及发布日期。
  12. oracle dynamic set,Oracle Dynamically Listener(动态监听)
  13. 搭建sendmail邮件服务器
  14. 我们总结了每个技术团队都会遇到的 4 个难题 1
  15. python中如何生成项目帮助文档
  16. android studio im源码,全开源即时通讯(IM)系统 高仿微信源码
  17. 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶)
  18. 机器学习大作业---文献综述
  19. mq选型:rocketMq和kafka对比
  20. 6个免费音乐网站,随便听随便下,都是好干货

热门文章

  1. 节点部署_国际电联设定大星座部署节点要求
  2. 油管螺纹尺寸对照表_数控加工过程中,如何区分新旧螺纹牌号?
  3. centos mysql 存储_Centos更改mysql数据存储文件位置
  4. docker实战百度云
  5. 链表的排序(Python和C实现)
  6. 【深度学习】面向医学图像的病灶分割调研(二)
  7. 【响应式Web前端设计】CSS3伪类与伪元素的区别
  8. python【Opencv计算机视觉库】opencv模块cv2常用函数用法(全)
  9. oracle取两个小时内的数据,【求解】一个时间条件,查两个不同时间段数据怎么查...
  10. datatable更新到mysql_SQL通过Datatable更新数据库表内容