Fields
フィールドでは、意味のある関連付けに基づくログ データを参照できます。フィールドは、ログに割り当てられたメタデータ タグとして機能するため、検索時に指定できます。各フィールドには、キーと値のペアが含まれており、フィールド名がキーになっています。フィールドは、ログ メタデータ フィールドと呼ばれることもあります。
FER (Field Extraction Rules) によってフィールドを定義するほかに、Sumo に送信されるデータでフィールドを定義できます。これは、Source および Collector で手動で定義するか、Amazon EC2 から HTTP ヘッダーおよびタグを介して動的に定義します。
フィールドの割り当ての優先順位を最上位から下位の順に次に示します。
- Field Extraction Rule (FER)
- Amazon EC2 リソース タグ
- Amazon EC2 インスタンス情報
- HTTP ヘッダー
- Source
- Collector
このため、Collector レベルまたは Source レベルで定義したフィールドがある場合に、FER を同じデータ ソースの同じフィールド名について作成すると、FER のフィールドの割り当てが優先されます。
ログ データに割り当てるフィールドは、[Fields (フィールド)] テーブル スキーマに存在する必要があります。各アカウントには、Sumo Web インターフェイスで管理できる独自のフィールド スキーマがあります。フィールド スキーマでフィールドが定義されると、設定に従って適切なログ データにフィールドが割り当てられます。[Fields (フィールド)] スキーマに存在しないフィールドが Sumo に送信された場合は無視され、削除済みとして認識されます。
検索のパフォーマンスを維持し、データに継続的に有意義なフィールドを割り当てるには、フィールド管理が重要です。前述のいずれかの方法で定義されたフィールドはいつでも管理でき、不要なフィールドを削除することもできます。詳細については「フィールドの管理」を参照してください。
制限事項
- ログのメタデータとして作成された FER (Field Extraction Rules) からのフィールドについては、200 のフィールドが同じクォータを共有します。[Fields (フィールド)] ページには、テーブルの下部の [Fields Capacity (フィールド許容数)] に、自分のアカウントが使用しているフィールド数と総許容数に占める割合が表示されます。
- データへのフィールドの割り当てが開始されるまでに最大 10 分かかります。
- Collector には最大 10 個のフィールドを使用できます。
- Source では最大 10 個のフィールドを使用できます。
- HTTP リクエストは 20 フィールドに制限されています。
- フィールド名 (キー) は、最大 255 文字に制限されています。
- 値の最大長は 200 文字に制限されています。
- フィールドは、Live Tail または FER (Field Extraction Rules) の範囲では使用できません。
Collector と Source フィールド
Collector または Source の作成および編集時に、Sumo ユーザ インターフェイスの [Fields (フィールド)] 入力テーブルを使用することにより、フィールドを Collector および Source に割り当てることができます。
- [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] の順に移動します。
- フィールドを割り当てる Collector または Source を作成または検索して選択します。
- [Fields (フィールド)] セクションの [+Add Field (+フィールドの追加)] リンクをクリックします。
- 関連付けるフィールドを定義します。各フィールドには、名前 (キー) と値が必要です。
[Fields (フィールド)] テーブル スキーマにフィールドが存在し、有効化されている場合は、チェック マークを含む緑色の円が表示されます。
[Fields (フィールド)] テーブル スキーマにフィールドが存在しない場合、またはフィールドが無効化されている場合は、感嘆符を含む橙色の三角形が表示されます。この場合は、存在しないフィールドを [Fields (フィールド)] テーブル スキーマに自動的に追加する、または有効化するオプションが表示されます。[Fields (フィールド)] スキーマに存在しないフィールドが Sumo に送信された場合、または無効化された場合、このフィールドは無視され、削除済みとして認識されます。
- 関連付けるフィールドを定義します。各フィールドには、名前 (キー) と値が必要です。
- [Save (保存)] をクリックします。
上の例では、cluster
という新しいフィールドを作成し、値を k8s.dev
に設定しています。上の設定により、この Collector に送信されるログには、このキーと値のペアが関連付けられるようになります。
この関連付けにより、cluster=k8s.dev
を検索することで、ログが返されます。
Collector API の使用
Collector API で fields
パラメータを使用することで、Collector または Source のフィールドを定義します。
パラメータ | タイプ | 必須 | 説明 | アクセス |
---|---|---|---|---|
フィールド | JSON オブジェクト | 不可 | Collector または Source に適用するキーと値のフィールド (メタデータ) の JSON マップ。 | 変更可 |
次の JSON は、fields パラメータを使用した Hosted Collector の設定例です。
{
"collector":{
"collectorType":"Hosted",
"name":"My Hosted Collector",
"description":"An example Hosted Collector",
"category":"HTTP Collection",
"fields": {
"cluster":"k8s.dev"
}
}
}
ローカル設定の使用
Installed Collector でローカル設定ファイル管理を使用する場合は、JSON ファイルを使用して Source を設定できます。JSON 設定で fields
のパラメータを使用して、Source のフィールドを定義します。
パラメータ | タイプ | 必須 | 説明 | アクセス |
---|---|---|---|---|
フィールド | JSON オブジェクト | 不可 | Collector または Source に適用するキーと値のフィールド (メタデータ) の JSON マップ。 | 変更可 |
次の JSON は、fields パラメータを使用したローカル ファイル Source の設定例です。
{
"api.version":"v1",
"sources":[{
"name":"Test-Chef",
"category":"Chef",
"automaticDateParsing":true,
"multilineProcessingEnabled":false,
"useAutolineMatching":false,
"forceTimeZone":false,
"timeZone":"UTC",
"filters":[],
"cutoffTimestamp":1426057200000,
"encoding":"UTF-8",
"fields":{
"node":"hornetq-livestream-9",
"deployment":"sumologic",
"cluster":"k8s.dev"
},
"pathExpression":"/home/ubuntu/chef*.log",
"blacklist":[],
"sourceType":"LocalFile"
}]
}
HTTP Source フィールド
HTTP Source でログ データをアップロードする場合、X-Sumo-Fields
HTTP ヘッダーによってフィールドを渡すことができます。フィールドは、キーと値のペアのコンマ区切りリストにする必要があります。たとえば、カスタム フィールドを持つデータを投稿する cURL コマンドは次のようになります。
curl -v -X POST -H 'X-Sumo-Fields:environment=dev,cluster=k8s' -T /file.txt <HTTP endpoint>
HTTP Source にログをアップロードする方法を参照してください。
データとともに渡されるフィールドは、Sumo で定義されている [Fields (フィールド)] テーブル スキーマに存在する必要があります。Sumo で定義されていないフィールドがヘッダーによって渡される場合、すべて削除されます。フィールドの定義方法については、「フィールドの管理」セクションを参照してください。
EC2 からのタグ
Sumo Logic AWS メタデータ Source を作成して、AWS で実行されている EC2 インスタンスからカスタム タグを収集します。Installed Collector は、availabilityZone、instanceId、instanceType、および region を取得するために、『AWS インスタンス ID ドキュメント』 (IMDSv1) をインスタンスから自動的にプルします。
インスタンス情報タグなどのタグが組織の [Fields (フィールド)] テーブルに存在している場合は、EC2 インスタンス上の Installed Collector によって取り込まれたログにタグが付けられます。フィールドの定義方法については、「フィールドの管理」セクションを参照してください。EC2 リソースのタグは、EC2 インスタンス情報より優先されます。1 つの AWS メタデータ Source だけで、複数のホストからタグを収集できます。
タグは、検索結果内に返され、クエリで参照することが可能です。EC2 インスタンスへのタグの割り当てについては、AWS ヘルプの「Amazon EC2 リソースにタグを付ける」を参照してください。
フィールドの使用
フィールドは次の方法で使用できます。
- [Log Search (ログ検索)] ページ。キーと値のペアをキーワード検索式として使用します (最初のパイプ | の前)。
- ロールベース アクセス制御 (RBAC)。ロール検索フィルタでフィールドを使用して、データへのアクセスを制御できます。
- パーティションと Scheduled View。パーティションと Scheduled View の範囲でフィールドを使用できます。
フィールドの管理
アカウントのフィールドは、[Manage Data (データの管理)] > [Settings (設定)] > [Fields (フィールド)] で管理できます。
[Manage Data (データの管理)] > [Settings (設定)] > [Fields (フィールド)] ページには、次の情報が表示されます。
- [Status (ステータス)] には、フィールドが有効に適用されていることを示す緑色の円のチェックマーク
、またはフィールドが無効で削除されていることを示す赤色の円の感嘆符
が表示されます。
- [Field Name (フィールド名)] は、フィールドの名前であり、キーと値のペアのキーとも呼ばれます。
- [Data Type (データ型)] には、フィールドのデータ型が表示されます。
- [Field Extraction Rules (FER)] にはフィールドを参照する FER (Field Extraction Rules) の数が表示されます。
- [Role Based Access Control (ロールベース アクセス制御)] には、フィールドを参照する検索フィルタを使っているロールの数が表示されます。
- [Partitions (パーティション)] には、フィールドを参照するパーティションの数が表示されます。
- [Collectors (Collector)] には、フィールドを参照する Collector の数が表示されます。(カスタム フィールドを表示するときに使用できます)。
- [Source (Source)] には、フィールドを参照する Source の数が表示されます。(カスタム フィールドを表示するときに使用できます)。
- [Fields Capacity (フィールド許容数)] (テーブルの下部) には、自分のアカウントが使用しているフィールドの数と、合計の使用可能数に占める割合が表示されます。
[Manage Data (データの管理)] > [Settings (設定)] > [Fields (フィールド)] ページで、次のことができます。
- [+ Add (+ 追加)] をクリックして、フィールドを追加します。
- フィールドの検索
- 追加ボタンの横のドロップダウンで、次の項目を切り替えることができます。
- [Existing - Built-in Fields (既存 - 組み込みフィールド)]。これは Sumo Logic によって作成されたメタデータ フィールドであり、変更できません。
- [Existing - Custom Fields (既存 - カスタム フィールド)]。このフィールドは、FER またはユーザによって作成されたものです。
- [Dropped Fields (削除されたフィールド)]。このフィールドは、フィールド テーブルに存在しないため削除されています。
- 追加ボタンの横のドロップダウンで、次の項目を切り替えることができます。
- フィールドの無効化
- フィールドの削除
リスト表示されているフィールドについて、行を選択すると詳細が表示されます。テーブルの右側に詳細ペインが表示され、フィールドを無効化および削除できます。
フィールドの追加
フィールドを追加すると、[Fields (フィールド)] テーブル スキーマで定義され、ログにメタデータとして割り当てることができるようになります。
- テーブルの右上にある [+ Add (+ 追加)] ボタンをクリックします。[Add Field (フィールドの追加)] という名前のパネルがフィールド テーブルの右側に表示されます。
- フィールド名を入力し、[Save (保存)] をクリックします。
フィールドの無効化
フィールドを無効にすると、フィールドが新しいログデータに割り当てられなくなります。フィールドを使用している検索は引き続き機能しますが、無効にした後にその結果ではフィールドが返されなくなります。収集済みのデータは影響を受けません。無効になる前に収集されたデータについては、無効になったフィールドを検索できます。
フィールドの詳細ペインで、メニュー アイコンを選択し、[Disable (無効化)] を選択します。
フィールドの削除
[Fields (フィールド)] テーブルの行の右側、またはフィールドの詳細ペインで削除アイコン を選択します。フィールドを削除するには、いくつかの機能からそのフィールドへの参照を削除する必要があります。フィールドが次のいずれかによって使用されている場合には、
- FER (Field Extraction Rules)
- ロール
- パーティション
- Collector
- Source
以下のメッセージが表示されます。フィールド参照を削除するには、フィールド参照を削除する必要があります。
たとえば、フィールドが FER (Field Extraction Rules) で使用されている場合、フィールドを削除する前に、まず FER (Field Extraction Rules) を削除する必要があります。
上記の機能でフィールドが使用されていない場合、次のメッセージが表示されます。
削除されたフィールドの表示
削除されたフィールドは Sumo に送信されるフィールドですが、[Fields (フィールド)] テーブル スキーマに定義されていないため無視されています。削除されたフィールドを選択して表示するには、[+ Add (+ 追加)] ボタンの左側にあるドロップダウン オプションを使用します。
テーブルから削除されたフィールドを選択して、詳細ペインを開きます。必要に応じてフィールドを作成できる便利なボタンが用意されています。