🎉
Splunk Dashboard tokenの細かい話(サーチ内での取扱の話)
トークン話第二弾
https://zenn.dev/nfwork01/articles/0b4018c532d79d の続きです。
どちらかといういとlookuptableのノウハウになってくるんですが、まぁtokenというお題目でまとめます。
tokenを使ったサーチ
具体例
以下みたいな感じです。
<dashboard>
<label>lookup_reset</label>
<init>
<set token="filter">| where action="search"</set>
</init>
<row>
<panel>
<table>
<search>
<query>
| from datamodel:"internal_audit_logs.Audit"
$filter$
| table _time host, action, info, sorce, user
</query>
</search>
</table>
</panel>
</row>
</dashboard>
サーチ文の中にtokenで検索条件を動的に打ち込むことができます。
トークンが未定義な場合の動き
上記の例の、initの中の処理を削除して、$filter$が未定義になっている状態でサーチがかかるようにしてみます。
はい。
「サーチ入力待ち」と表示されます。
内部的にサーチは走ってない(はず)です。
トークンが定義されたときの動き
$filter$に値が入るたびに、サーチが実行されます。
わかりやすくするために、$filter$に対してInputで値を与えるようにしてみます。
<form>
<label>lookup_reset</label>
<fieldset submitButton="false">
<input type="text" token="filter">
<label>filter</label>
<initialValue>| where action="search"</initialValue>
</input>
</fieldset>
<row>
<panel>
<table>
<search>
<query>
| from datamodel:"internal_audit_logs.Audit"
$filter$
| table _time, action, info, sorce, user
</query>
</search>
</table>
</panel>
</row>
</form>
filterの値を変えてみると、
検索が再度走って、結果も変わります。
ちなみにブランクにすると、
以下として扱われるわけですね。
| from datamodel:"internal_audit_logs.Audit"
| table _time host, action, info, sorce, user
Tips トークン定義を使ったサーチの実行タイミング制御
ダッシュボードでやることか、、、?という気はしつつですが。
サーチについて、例えばoutputlookupを使うときなど、splを実行するタイミングを明確に決めたい場合があります。例えばボタンを押したときに1回だけ実行する、とか。
上記を、tokenの未定義->定義で制御する方法を考えてみました。
こんな。
<dashboard>
<label>lookup_reset</label>
<init>
<set token="hide"></set>
</init>
<row>
<panel rejects="$do_output$">
<single>
<search>
<query>
| makeresults 1 | eval description="Backup"
| table description
</query>
</search>
<drilldown>
<set token="do_output"></set>
</drilldown>
</single>
</panel>
</row>
<row>
<panel depends="$do_output$">
<table>
<search>
<query>| from datamodel:"internal_audit_logs.Audit"
| outputlookup backup.csv
$do_output$</query>
<earliest>$earliest$</earliest>
<latest>$latest$</latest>
</search>
<option name="refresh.display">progressbar</option>
</table>
</panel>
</row>
</dashboard>
Backupをクリックすると、outputlookup処理が走って、lookupにサーチ結果が保存されます。
で、結果が表示され、Backupの表示が隠れます。
力づくですが、これでボタンを押したら一回だけ実施、の処理が実装できました。
とりあえず
今回はここまで。
Discussion