sequence
このコマンドを使用して、linkコマンドで作成された各グループ内のログ・レコードの順序付きパターンを検索します。1つの一致ルール、指定した順序で発生する複数のルール、または2つの境界ルール間で発生するレコードを検索できます。
このコマンドは、リンクされた各グループに順序一致件数および順序詳細を追加します。一致する順序のないグループは、順序一致カウントがゼロの結果に残ります。一致する順序を持つグループのみを返すには、| where s1 > 0などのフィルタを追加します。ここで、s1は順序名です。
順序では、最大4つのルール・ステップと最大4つの選択した出力フィールドがサポートされます。
構文
sequence name = <name> [<sequence_options>] <match_rules> select <output_fields>トピック:
パラメータ
次の表に、このコマンドで使用されるパラメータとその説明を示します。
| パラメータ | 説明 |
|---|---|
|
|
順序表示名 |
|
|
レコードの順序付け方法および順序に適用される時間制約を制御するオプションの設定。 構文:
|
|
|
構文: 必要なレコード・パターンを定義するルール。最大4つのルール・ステップを指定できます。
中カッコはリテラル・カウント・デリミタで、この構文では大カッコはオプションのカウント制約を示します。 |
|
|
順序の詳細に含める照合済レコードのカンマ区切りフィールド。各フィールドには、オプションの別名を指定できます。 構文: |
順序照合の理解
括弧で囲まれた各条件がルール・ステップです。ルール・ステップは、カウント制約に応じて、1つ以上のログ・レコードと一致させることができます。
例:
[ username != null ]{3,}
then [ hostname = abc ]{1,}この式には、2つのルール・ステップが含まれています。最初のステップでは少なくとも3つの一致するレコードが必要であり、2番目のステップでは、その後に発生する一致レコードが少なくとも1つ必要です。
したがって、一致したタイムラインには、レコードA1, A2, A3, B1が含まれる場合があります。時間制約は、2つのルール・ステップのみでなく、これらの個別の一致レコードに対して評価されます。
一致する演算子を次のように使用します。
-
thenでは、ルール・ステップを指定された順序で実行する必要があります。 -
betweenは、開始境界と終了境界を使用して順序を定義します。順序の詳細には、一致した境界レコードと、順序の評価時に使用される中間一致レコードが含まれます。これは、境界間のすべてのレコードが返されるという意味ではありません。
一致数の指定
カウント制約は、各ルール・ステップに個別に適用されます。
| 構文 | 意味 |
|---|---|
[<condition>] |
少なくとも1つの一致するレコード。 |
[<condition>]{<n>} |
指定した一致レコード数。 |
[<condition>]{<min>,} |
少なくとも、指定された最小一致レコード数。 |
[<condition>]{1,<max>} |
1つのレコードから、指定された最大一致レコード数まで。 |
[<condition>]{<min>,<max>} |
指定した範囲内の一致するレコードの数。 |
たとえば、{3}には3つの一致するレコードが必要で、{3,}には3つ以上の一致するレコードが必要ですが、{2,10}には2から10の一致するレコードが必要です。
spanとmaxpauseの区別
spanを使用して、完全一致順序の合計経過時間を制限します。maxpauseを使用して、隣接する一致レコードの各ペア間の時間を制限します。
次のレコードが一致した順序候補を考えてみます。
| 記録 | 時間 |
|---|---|
| A1 | 10:00 |
| A2 | 10:02 |
| A3 | 10:12 |
| B1 | 10:14 |
この候補者の場合:
-
順序全体が14分間続くため、
span = 20minuteは成功します。 -
A2とA3の間のギャップが10分であるため、
maxpause = 5minuteは失敗します。
spanとmaxpauseは、指定した時間内に完全な順序が終了する必要があり、一致した隣接するレコードに許容よりも長いギャップがあってもかまわない場合に一緒に使用できます。
例
-
1つの条件で1つのルールを使用
次のコマンドは、ターゲット・タイプがクラスタ・データベースであるレコードの各グループを評価し、シーケンス結果をグループに追加します。
* | link Severity | sequence name = s1 [ 'Target Type' = 'Cluster Database' ]{1,} select 'Target Type'カウント制約を省略した場合、ルールには少なくとも1つの一致するレコードが必要です。
* | link Severity | sequence name = s1 [ 'Target Type' = 'Cluster Database' ] select 'Target Type'一致する順序を持つグループのみを返すには、
| where s1 > 0を追加します。 -
一致するフィールドとは異なるフィールドを返します
条件では1つのフィールドを使用できますが、
selectは一致したレコードから他のフィールドを返します。次のコマンドは、クラスタ・データベース・レコードに一致し、そのターゲットを返します。* | link Severity | sequence name = s1 [ 'Target Type' = 'Cluster Database' ]{1,} select Target -
ルールでの複数の条件の使用
レコードは、ルールの一致に関与するために、ルール内のすべての条件を満たす必要があります。次のコマンドは、ログ・ソースを持つクラスタ・データベース・レコードと一致します:
* | link Severity | sequence name = s1 [ 'Log Source' != null and 'Target Type' = 'Cluster Database' ]{1,} select 'Target Type', Target次の例では、ユーザー・サイズおよびコンテンツ・サイズによる一致も制限します。
* | link Severity | sequence name = s1 [ 'Event Target Type' != random and 'User Name' != null and 'Content Size' > 100 ]{1,} select 'User Name', 'Content Size', 'Event Target Type' -
ルールの一致数を制御します。
{min,}を使用して、最小値のみを指定します。* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database ]{101,} select 'User Name'{1,max}を使用して、少なくとも1つの一致が必要なときに最大値を設定します。* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database and 'User Name' != null ]{1,100} select 'User Name'{min,max}を使用して、一致の境界数を要求します。* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database and 'User Name' != null ]{101,500} select 'User Name'カウントは、ルール ステップごとに個別に評価されます。
-
thenを使用した順序付きルールの検索次の2ステップのシーケンスでは、クラスタ・データベース・レコードの後にホスト・レコードを検索します。
* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database ]{1,} then [ 'Event Target Type' = host ]{1,} select 'Event Target Type'次のコマンドは、3段階の順序を定義します。各ルールには、独自の一致数があります。
* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database ]{1,} then [ 'Event Target Type' = host ]{1,10} then [ 'Event Target Type' = fusion_apps_j2ee_app ]{1,} select 'Event Target Type'次のコマンドは、4段階の順序を定義します。
* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database and 'User Name' != random ]{1,} then [ 'Event Target Type' = host and 'Content Size' > 100 ]{1,} then [ 'Event Target Type' = fusion_apps_j2ee_app ]{1,} then [ 'Event Target Type' = rac_database and 'User Name' != random ]{1,} select 'Event Target Type', 'User Name', 'Content Size' -
複数の条件と個別の出力フィールドを指定した
thenの使用各ルールには複数の条件を含めることができますが、
selectは分析用の追加フィールドを返します。* | link Severity | sequence name = s1 [ 'Event Target Type' = rac_database and 'Content Size' > 100 ]{1,} then [ 'Event Target Type' = host ]{1,} then [ 'Event Target Type' = fusion_apps_j2ee_app ]{1,} select 'Event Target Type', 'User Name', 'Content Size' -
spanの単一ルール順序への適用単一のルールの場合、
spanは、一致した最も早いレコードから一致した最新のレコードまでの合計時間を制限します。次のコマンドでは、5分以内に少なくとも2つの一致するレコードが必要です。* | link Severity | sequence name = s1 span = 5minute [ 'Event Target Type' != null and 'User Name' != null ]{2,} select 'Event Target Type', 'User Name' -
順序付けられた複数ルール順序への
spanの適用複数のルールの場合、
spanは完全な順序に適用されます。次の3ステップのシーケンスは、2日以内に収まる必要があります。* | link Severity | sequence name = s1 span = 2day [ 'Event Target Type' = rac_database and 'Content Size' > 100 and 'User Name' != null ]{100,} then [ 'Event Target Type' = host ]{100,} then [ 'Event Target Type' = fusion_apps_j2ee_app ]{100,} select 'Event Target Type', 'Content Size', 'User Name' -
2つの境界を含むレコードの検索
パターンに開始境界と終了境界がある場合は、
betweenを使用します。境界レコードは、返される順序の詳細に含まれます。* | link Severity | sequence name = s1 between [ 'Event Target Type' = rac_database and 'Content Size' > 0 and 'User Name' != null ]{1,} and [ 'Event Target Type' = fusion_apps_j2ee_app ]{1,} select 'Event Target Type', 'Content Size', 'User Name' -
betweenをspanとともに使用spanをbetweenとともに使用する場合、一致した開始境界から一致した終了境界までの時間は、指定された期間内である必要があります。* | link Severity | sequence name = s1 span = 2day between [ 'Event Target Type' = rac_database and 'Content Size' > 100 and 'User Name' != null ]{100,} and [ 'Event Target Type' = fusion_apps_j2ee_app ]{100,} select 'Event Target Type', 'Content Size', 'User Name' -
maxpauseの単一ルール順序への適用単一のルールの場合、
maxpauseは、そのルールを満たすように連鎖した隣接するレコード間の時間を制限します。次のコマンドでは、一致するレコードが連続して5分以内です。* | link Severity | sequence name = s1 maxpause = 5minute [ 'Event Target Type' = rac_database and 'User Name' != null ]{100,} select 'Event Target Type', 'Content Size', 'User Name' -
maxpauseをthenまたはbetweenとともに使用しますthenを使用すると、maxpauseは、各ルール一致内およびルール間の遷移全体に適用されます。* | link Severity | sequence name = s1 maxpause = 15hour [ 'Event Target Type' = rac_database and 'User Name' != null ]{1,} then [ 'Event Target Type' = host ]{1,} select 'Event Target Type', 'Content Size', 'User Name'同じ動作が、
betweenによって定義された順序に適用されます。* | link Severity | sequence name = s1 maxpause = 17hour between [ 'Event Target Type' = rac_database and 'User Name' != null ]{1,} and [ 'Event Target Type' = fusion_apps_j2ee_app ]{1,} select 'Event Target Type', 'Content Size', 'User Name' -
spanとmaxpauseを一緒に使用完全なシーケンスが全体の時間ウィンドウ内に収まり、隣接するすべてのギャップが小さい制限内に留まる必要がある場合は、両方のオプションを使用します。
次の境界スタイルのシーケンスは、隣接するギャップが17時間を超えないように、2日以内に終了する必要があります。
* | link Severity | sequence name = s1 span = 2day maxpause = 17hour between [ 'Event Target Type' = rac_database and 'User Name' != null and 'Content Size' > 100 ]{100,} and [ 'Event Target Type' = fusion_apps_j2ee_app ]{100,} select 'Event Target Type', 'Content Size', 'User Name'次の順序シーケンスは、同じ2つの制約を適用します。
* | link Severity | sequence name = s1 span = 2day maxpause = 17hour [ 'Event Target Type' = rac_database and 'User Name' != null and 'Content Size' > 100 ]{100,} then [ 'Event Target Type' = host ]{100,} then [ 'Event Target Type' = fusion_apps_j2ee_app ]{100,} select 'Event Target Type', 'Content Size', 'User Name' -
ルールでの計算済フィールドおよび副問合せの使用
ルールには、
whereなどの副問合せ操作を含めることができます。* | link Severity | sequence name = s1 [ Target != slc03qoo | where substr(Target, 0, 3) = slc ] select Targetシーケンスでは、パイプラインで以前に計算されたフィールドを使用することもできます。
* | eval color = if(Severity = debug or Severity = fine or Severity = finer or Severity = info, green, if(Severity = warn, yellow, red)) | link Target | sequence name = s1 between [ * | where color = red ]{3} and [ * | where color = yellow ]{1,} select color開始ルールには、
colorがredの3つのレコードのみが必要です。終了ルールには、colorがyellowのレコードが少なくとも1つ必要です。 -
ダウンストリーム・コマンドでの順序出力の使用
シーケンス出力フィールド(シーケンス数を含む)は、あとでパイプライン内のコマンドで使用できます。
次のコマンドは、リンクされたグループ全体で一致した順序の平均数と合計数を計算します(一致がゼロのグループを含む)。
* | link Target | sequence name = 'My Field' [ Severity != null ] select Severity | eventstats avg('My Field'), sum('My Field')次のコマンドは、シーケンス結果を3日前の結果と比較します。
* | link Target | sequence name = s1 [ 'Target Type' = 'Cluster Database' ] select 'Target Type' | compare timeshift = -3dnameで指定されたフィールドには、各リンク・グループ内で一致する順序の数が含まれます。