splunk rest api search
如下:
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相关推荐
- splunk采集linux日志,splunk日志监控利器
日志处理引擎SPLUNK Splunk分为免费Free版和企业Enterprise版.SplunkFree专供个人使用.SplunkEnterprise添加了支持多用户和分布式部署的功能,并包括警报. ...
- Shodan API使用指南 撒旦网
0x00 前言 Shodan是一个针对网络设备的搜索引擎,通过Shodan API进行搜索,不仅数据更加丰富,而且能够配合自己的程序实现自动化分析. 本文将要介绍Shodan API在使用过程需要注意 ...
- Python 技术篇-20行代码实现微信机器人斗图功能实例演示!斗图啦官网API调用方法
话不多说,看效果图: 先说下原理: 微信接收到你说的话,发给机器人来回复,用回复的话传参给斗图网,然后获得斗图网返回的图片,保存后把图片再发给跟你斗图的人. 斗图啦官网API调用文档 斗图啦官网 菜单 ...
- 有关AutoCompleteBox组件的研究[5][Final]_集成搜索引擎搜索建议(Search Suggestion)——Silverlight学习笔记[40]...
在AutoCompleteBox组件中集成搜索引擎的功能是十分常见的,这有助于我们更好地与Web进行交互.本文将为大家讲述如何在在AutoCompleteBox组件中集成搜索引擎的搜索建议. 实例: ...
- 在Python中使用Twitter Rest API批量搜索和下载推文
数据挖掘 , 编程 (Data Mining, Programming) Getting Twitter data 获取Twitter数据 Let's use the Tweepy package i ...
- 小程序支付api密钥_如何避免在公共前端应用程序中公开您的API密钥
小程序支付api密钥 问题 (The Problem) All you want to do is fetch some JSON from an API endpoint for the weath ...
- python gps与高德地图poi_Python——使用高德API获取指定城指定类别POI并实现XLSX文件合并...
# 以下内容为原创,转载请注明出处 1 import xlrd #读xlsx 2 import xlsxwriter #写xlsx 3 import urllib.request #url请求,Pyt ...
- 【es】es 的 cat API是如何加载的
1.概述 转载:[5]elasticsearch源码深入分析--cat API是如何加载的 2.cat API的分类 cat API是esAPI中比较简单的一种,es中的API按照大类分为下面几种: ...
- 热点热词 新闻热点 最新新闻数据API接口-天狗热点热词开放平台
为什么80%的码农都做不了架构师?>>> 热点热词API列表 API 描述 基础 www.tngou.net/api/top/classify 取得热点热词分类,可以通过分类i ...
最新文章
- 搜狗输入法电脑版_搜狗输入法小米版升级简介
- 最新OCR开源神器来了!
- 2021年洛谷一月月赛(Div1、Div2,6题)全部题解
- Cookie的简单实用
- 检测到磁盘可能为uefi引导_重装系统win10提示磁盘布局不受UEFI固件支持怎么办...
- 【译】Why Decentralized AI Matters Part I: Economics and Enablers
- 多线程与高并发(三):JUC包下新的同步机制:CAS,AtomicInteger,AtomicLong,ReentrantLock,CountDownLatch,ReadWriteLock等
- Pytorch MNIST直接离线加载二进制文件到pytorch
- 《学习CSS布局》学习笔记
- 动态打字效果 html,html5 svg酷炫的打字动画特效
- linux核心的最新版本,求问Linux最新内核版本以及发布日期。
- oracle dynamic set,Oracle Dynamically Listener(动态监听)
- 搭建sendmail邮件服务器
- 我们总结了每个技术团队都会遇到的 4 个难题 1
- python中如何生成项目帮助文档
- android studio im源码,全开源即时通讯(IM)系统 高仿微信源码
- 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶)
- 机器学习大作业---文献综述
- mq选型:rocketMq和kafka对比
- 6个免费音乐网站,随便听随便下,都是好干货
热门文章
- 节点部署_国际电联设定大星座部署节点要求
- 油管螺纹尺寸对照表_数控加工过程中,如何区分新旧螺纹牌号?
- centos mysql 存储_Centos更改mysql数据存储文件位置
- docker实战百度云
- 链表的排序(Python和C实现)
- 【深度学习】面向医学图像的病灶分割调研(二)
- 【响应式Web前端设计】CSS3伪类与伪元素的区别
- python【Opencv计算机视觉库】opencv模块cv2常用函数用法(全)
- oracle取两个小时内的数据,【求解】一个时间条件,查两个不同时间段数据怎么查...
- datatable更新到mysql_SQL通过Datatable更新数据库表内容