splunk编写自定义命令

1. 自定义命令简介

splunk有丰富的内置搜索命令,但也提供了编写自定义命令来实现个性化的搜索需求,以此方式扩展splunk搜索处理语言(SPL)。

自定义搜索命令是一个可执行文件,可读入和写出数据,它可以是一个python脚本、C++程序或者其他可执行二进制文件,本教程考虑利用python编写自定义命令。

2. 自定义命令是如何运行的

搜索的处理方式是一次一个命令,前一个命令的结果会发送给下一个命令,当搜索到达自定义命令时,搜索会使用协议前一个命令的结果发送给单独的进程。这一单独的进程可以是内置进程,也可以是外部进程。

现在假设有如下SPL搜索语句,其中含自定义搜索命令testcmd,该命令接收1个关键参数args,但该脚本不做任何事情,只是接收数据而后原封不动的将数据返回给Splunk:

index="main" 
| table _time,count 
| testcmd args=count

其中 table 是splunk内置命令,该语句运行原理如下图所示:
在这里插入图片描述
testcmd为自定义命令,接收一个参数args,参数值为count字段,该命令会将count的值传递给python脚本进行处理,然后再返回到搜索结果中,进行后续的SPL处理。

3. splunk内置python环境

3.1 内置python位置

splunk自带pyhton环境,位于

$SPLUNK_HOME/bin/python

$SPLUNK_HOME 是splunk安装目录的环境变量

3.2 在后台使用内置的python:

$SPLUNK_HOME/bin/python
# 或者
$SPLUNK_HOME/bin/splunk cmd python

3.3 内置python版本

$SPLUNK_HOME/bin/python --version

3.4 内置python使用的包和库所在的位置

$SPLUNK_HOME/bin/python -c "import sys;print(sys.path)"

4. 开发所需要的SDK

splunk官方提供了python开发语言的官方sdk,splunk官方开发网站https://dev.splunk.com/enterprise/ ,该网站提供了splunk 开发的一些手册和sdk包,本次用到的python sdk下载地址为https://github.com/splunk/splunk-sdk-python/
在这里插入图片描述

4.1 SDK下载

点击 code 下载:
在这里插入图片描述
下载包为 splunk-app-examples-master.zip,解压后取出里面的 splunklib 文件夹,即为我们开发自定义命令所需要的。
在这里插入图片描述

4.2 sdk存放位置

因为是开发自定义命令,所以刚刚取出的splunklib文件夹将存放于Splunk服务器上。

为了方便,将splunklib放到自定义命令放在同一目录之下。其中{APP_NAME}为自己的APP名字,如果没有自己的APP,放在search默认APP的目录。

存放位置如下:

$SPLUNK_HOME/etc/apps/{
   APP_NAME}/bin/splunklib

5. 编写自定义命令python脚本

5.1 参考手册

创建自定义命令完整流程参考手册:https://dev.splunk.com/enterprise/docs/devtools/customsearchcommands/createcustomsearchcmd/

自定义命令脚本编写示例:https://dev.splunk.com/enterprise/docs/devtools/customsearchcommands/customsearchcmdexamples/

5.2 Splunk内置命令类型:

  • distributable streaming
  • centralized streaming
  • transforming
  • generating
  • orchestrating
  • dataset processing

命令类型详见:https://docs.splunk.com/Documentat

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jepson2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值