Splunkでカスタムサーチコマンドを作成する(その2)
前回(その1)はカスタムサーチコマンドを作成するための基礎的な方法を記載しました。今回はもう少し機能を紹介していきたいと思います。この投稿は、前回の投稿を見ていることを前提としており、前回使用したプログラムtest.py
を書き換えて使用する内容になってますので、まだ見ていない方は下のリンク先の投稿を先に見ることをおすすめします。
使用するデータ
前回と同じデータを使用します。
"time","number","value"
"2020/01/01 12:00:00","1","a"
"2020/01/01 12:00:00","2","b"
"2020/01/01 12:00:00","3","c"
クエリに書かれているパラメータを読み込む
カスタムサーチコマンドでクエリのパラメータを読み込む機能を追加します。下のプログラムは、パラメータ1(下の例ではvalue
)をフィールド名とするフィールドに、パラメータ2(下の例ではzzz
)の文字を入れるものです。
import splunk.Intersplunk
import sys
data,dummy1,dummy2 = splunk.Intersplunk.getOrganizedResults(input_str=None)
for tmp in data:
tmp[sys.argv[1]] = sys.argv[2]
splunk.Intersplunk.outputResults(data)
host = sample.csv | hoge value zzz | table number value
value
の値が、a
,b
,c
からzzz
に変わりましたね。sys.argv[1]
でパラメータ1をsys.argv[2]
でパラメータ2を取り出すことができます。
エラー表示を自作する
プログラムでエラーが発生すると下のメッセージが出ます。このエラーメッセージは常に同じであまり使い勝手がよくありません。そこで、エラーメッセージを自由に書ける方法を記載します。
下のプログラムはパラメータが無い場合にエラーメッセージparameter error
を出力するものです。
import splunk.Intersplunk
import sys
data,dummy1,dummy2 = splunk.Intersplunk.getOrganizedResults(input_str=None)
if len(sys.argv) < 2:
splunk.Intersplunk.generateErrorResults('parameter error')
sys.exit(0)
splunk.Intersplunk.outputResults(data)
host = sample.csv | hoge
splunk.Intersplunk.generateErrorResults
がエラー表示の部分です。エラーを出す時はsplunk.Intersplunk.outputResults
を実行させないように終了する必要があります。
サーチアシスタントを表示する
サーチアシスタントを使いカスタムサーチコマンドの使い方を表示する方法を記載します。設定すると下の図のように表示されます。
カスタムサーチコマンドのサーチアシスタントを設定するには、/opt/splunk/etc/system/local/searchbnf.conf
に以下の文を追加します。なお、Splunkのインストール直後の場合はsearchbnf.conf
がないので作成する必要があります。また、searchbnf.conf
を変更した後はSplunkの再起動が必要です。
[hoge-command]
shortdesc = 短い説明を書きます
description = 長い説明を書くことができます
syntax = hoge <field>
comment = exampleの説明を書きます
example = | hoge abc
usage = public
おわりに
これで様々なカスタムサーチコマンドを作ることができますね。
動作環境
Ubuntu 18.04.4 LTS
Splunk 8.0.2.1
Author And Source
この問題について(Splunkでカスタムサーチコマンドを作成する(その2)), 我々は、より多くの情報をここで見つけました https://qiita.com/uneyamauneko/items/7e03b42391adcff0b98a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .