マルチレコードをダッシュボードのFilterでフィルターで絞り込む方法
Sumo Logicのダッシュボードを使う時に一般的にフィルターをよく使います。例えば、下図のように1つの行にマルチレコードが入っているパネルがあった場合、ダッシュボードのFilterから「CSE Records - CS Threat Intel Match」のみをフィルターしたい場合はどうすえば良いでしょうか。
一般的には次のようにrule_nameの前後に「*」を入れて、rule_nameのフィルターに入る文字列が含まれている全てのレコードをフィルターすることができます。
| where rules matches “{{*rule_name*}}”
そして、Dashboardにrule_nameというFilterを作成し、次のように検索したい文字列を入れます。
すると、上記のWhere文が次のようになるので、「CSE Records - CS Threat Intel Match」が含まれているレコードがフィルターされます。
| where rules matches “*CSE Records - CS Threat Intel Match*”
クエリーを実行すると次ようにフィルタされることが確認できます。
デフォルトで何らかの文字列をフィルターするように設定している場合は上記の方法で問題ありませんが、下記のように「*」を入れてフィルターを使用しない場合(即ち全てのレコードを表示する)場合はエラーが発生します。
皆さん既に気づいたかもしれませんが、エラーが発生する原因は次のようにWhere文に「*」が3つ入るためです。
| where rules matches “{{***}}”
では、この問題をどう解決すれば良いでしょうか。
答えはWhere文を下記のように修正して、「*」が3つ入ると、前後の「*」を削除することで解決できます。
| "{{rule_name}}" as rule_name1
| concat ("*",rule_name1,"*") as rule_name2
| if(rule_name2 = "***", "*", rule_name2) as rule_name3
| where RuleName2 matches rule_name3
以上マルチレコードをフィルターする方法を共有しました。ぜひご活用いただければ幸いでございます。
Please sign in to leave a comment.
Comments
0 comments