Splunk-SDK-Python学习

Splunk

最近在公司实习用到了splunk,需要调用splunk sdk进行一些简单的开发,目前把我这个星期的一些体会记录下。

什么是splunk

简单来说,Splunk是一个托管的日志文件管理工具,它的主要功能包括:
· 日志聚合功能
· 搜索功能
· 提取意义
· 对结果进行分组,联合,拆分和格式化
· 可视化功能
· 电子邮件提醒功能
而目前我通过splunk sdk主要实现的功能就是搜索功能,即搜索到我想要的日志。

Splunk SDK for Python

通过Splunk SDK我们可以和Splunk引擎进行交互。Splunk SDK是基于REST API的,因此通过简短的代码实现我们想要的功能。
官方文档:http://dev.splunk.com/python

安装

! 注意, splunk SDK 目前只支持python2,不支持python3.
Ubuntu下安装步骤:

sudo apt-get install python-pip //第一步:安装pip工具

pip freeze                      //查看是否已安装splunk sdk

pip install splunk-sdk          //第二步:下载splunk sdk

export PYTHONPATH=~/splunk-sdk-python //添加到python环境变量

模块介绍

主要有4个模块:
* binding: 基于HTTP的抽象层
* client: 基于REST API的抽象层,其中Service类是其最重要的类,并且client模块比binding模块有更多的好处。
* results: 对splunk返回的数据进行处理
* data: 将Atom Feed data转换为python格式
目前我主要用到的模块是client和results模块。

与Splunk enterprise建立连接

python2

import splunklib.client as client

HOST = "localhost"
PORT = 8089
USERNAME = "admin"
PASSWORD = "changeme"

# Create a Service instance and log in 
service = client.connect(
    host=HOST,
    port=PORT,
    username=USERNAME,
    password=PASSWORD)

# Print installed apps to the console to verify login
for app in service.apps:
    print app.name

存在的问题:splunk服务器的8089没有打开,因此连接不上
解决:
splunk的服务器是在一个虚拟网络下的,8089端口不对公网开放,因此可以在该网络下另起一个ubuntu虚拟机,然后ubuntu虚拟机通过22端口与请求相连接,收到请求后,由于ubuntu和splunk server是在一个内网中,因此ubuntu虚拟机可以与splunk server的8089端口通信,获得数据后再返回给请求端。

Search的一些术语

  • search query:即查询命令的集合,例如:search * | head 10
  • saved search: 被保存的可以被再次使用的搜索查询。
  • search job:即一次搜索操作的具体实例。
  • Normal search: 异步搜索,能够立刻返回serach job而不用等到结果都搜索完。
  • Blocking search:同步搜索,只有所有搜索全都完成后才返回job.
  • Oneshot: blocking serach,直接返回搜索结果而不是返回job

创建一个blocking serach

与normal search的不同点是blocking search是堵塞的,也就是创建job后不会立刻返回,而是等待所有结果搜索结束后才返回,此时job包含了所有的搜索结果。

# Get the collection of jobs
jobs = service.jobs

# Run a blocking search--search everything, return 1st 100 events
kwargs_blockingsearch = {"exec_mode": "blocking"}
searchquery_blocking = "search * | head 100"

print "Wait for the search to finish..."

# A blocking search returns the job's SID when the search is done
job = jobs.create(searchquery_blocking, **kwargs_blockingsearch)
print "...done!\n"

normal search 是异步的,即立刻返回job, 但是实际结果并没有返回,因此会存在操作job时没有event返回的情况,我目前的做法是,如果知道大致的搜索时间,则设置一定时间等待后再对job进行操作。

import splunklib.results as results

# Initialize your service like so
# import splunklib.client as client
# service = client.connect(username="admin", password="changeme")

searchquery_normal = "search * | head 10"
kwargs_normalsearch = {"exec_mode": "normal"}
job = service.jobs.create(searchquery_normal, **kwargs_normalsearch)

# Get the results and display them
for result in results.ResultsReader(job.results()):
    print result

job.cancel()   
import splunklib.results as results

# Run a one-shot search and display the results using the results reader

# Set the parameters for the search:
# - Search everything in a 24-hour time range starting June 19, 12:00pm
# - Display the first 10 results
kwargs_oneshot = {"earliest_time": "2014-06-19T12:00:00.000-07:00",
                  "latest_time": "2014-06-20T12:00:00.000-07:00"}
searchquery_oneshot = "search * | head 10"

oneshotsearch_results = service.jobs.oneshot(searchquery_oneshot, **kwargs_oneshot)

# Get the results and display them using the ResultsReader
reader = results.ResultsReader(oneshotsearch_results)
for item in reader:
    print(item)

…待续

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
splunk-7.3.9-39a78bf1bc5b-linux-x86_64.tgz是一个Splunk软件的安装包,适用于64位的Linux操作系统。Splunk是一种实时数据分析和监控平台,被广泛用于处理和分析大型数据集。 Splunk使用一种称为索引的机制来存储和检索数据。它能够处理各种类型的数据,包括文本、日志、图片等。通过将数据索引,Splunk可以快速搜索和可视化数据,帮助用户发现隐藏在数据中的有价值的信息。 安装Splunk的第一步是下载安装包,这里的splunk-7.3.9-39a78bf1bc5b-linux-x86_64.tgz就是Splunk的安装文件。".tgz"表示这是一个tar压缩文件,需要使用tar命令解压缩。 安装Splunk之前,我们首先要确保操作系统是64位的Linux。下载后,我们可以使用以下命令解压缩该文件: tar -zxvf splunk-7.3.9-39a78bf1bc5b-linux-x86_64.tgz 解压缩后,会得到一个splunk文件夹,里面包含Splunk的所有文件。然后,我们可以运行Splunk的安装脚本来启动安装过程。 Splunk提供了一个图形化的安装向导,可以帮助用户完成安装步骤。在安装过程中,需要选择安装目录、许可证文件等配置选项。 安装完成后,我们可以使用以下命令启动Splunk: ./splunk start 然后,我们可以通过浏览器访问Splunk的Web界面,并使用相关的管理员用户名和密码登录。 总结来说,splunk-7.3.9-39a78bf1bc5b-linux-x86_64.tgz是Splunk软件的安装包,用户可以通过解压缩、运行安装脚本等步骤来安装和启动Splunk,并使用该软件进行数据分析和监控。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值