4.4. コンテナ監視(Docker/Kubernetes/Podman/OpenShift)の使い方¶
4.4.1. Dockerメトリクス監視機能¶
dockerコマンド経由で情報を取得し、Senju DevOperation Conductorのモニタリング機能を使って、監視することができます。
監視定義を千手ブラウザより登録し、監視を実施します。監視結果は、各種モニタ画面(グローバルノードモニタ/ノードモニタ)にてその監視状況を表示できます。予め設定したしきい値により障害を検知した場合は、メッセージモニタにメッセージが通知されます。(モニタリング機能については、ユーザーズガイド「 4.モニタリング 」を参照して下さい。)
4.4.2. Dockerコンテナログ監視機能¶
監視項目「Docker:コンテナログ監視」では Docker から取得したログをログファイルに蓄積します。このログファイルを監視することでDockerのコンテナログを検知することが可能です。
4.4.2.1. ログファイル¶
ログフォーマットがLTSVの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/dkr_container_{nodeid}_{containername}.log
ログファイル名(センサー)
~/log/container.d/dkr_container_{user}@{nodeid}_{containername}.log
ログフォーマットがJSONの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/dkr_container_{nodeid}_{containername}.json
ログファイル名(センサー)
~/log/container.d/dkr_container_{user}@{nodeid}_{containername}.json
4.4.2.2. ログフォーマット¶
以下にDockerコンテナログ監視で取得したログファイルのレコード形式について説明します。 デフォルトのレコードフォーマットは LTSV形式で、項目間はタブ区切りとなります。
【Dockerコンテナログファイル レコード形式】
ログフォーマットがLTSVの場合:
最新のタイムスタンプ コンテナ名 メッセージ
¶ No.
項目
キー:
説明
1
タイムスタンプ
TimeStamp:
取得したコンテナログが記録された時刻。フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)
2
コンテナ名
Container:
取得したコンテナ名
4
メッセージ
Message:
取得したコンテナログのメッセージ
ログフォーマットがJSONの場合:
イベント内容
¶ No.
項目
説明
1
コンテナログ内容
取得したコンテナログの内容が入ります。コンテナログの内容はJSONの形式で出力されます。
4.4.3. Kubernetesメトリクス監視機能¶
kubectlコマンド経由で情報を取得し、Senju DevOperation Conductorのモニタリング機能を使って、監視することができます。
監視定義を千手ブラウザより登録し、監視を実施します。監視結果は、各種モニタ画面(グローバルノードモニタ/ノードモニタ)にてその監視状況を表示できます。予め設定したしきい値により障害を検知した場合は、メッセージモニタにメッセージが通知されます。(モニタリング機能については、ユーザーズガイド「 4.モニタリング 」を参照して下さい。)
4.4.4. Kubernetesイベント監視機能¶
監視項目「Kubernetes:イベント監視」では Kubernetes から取得したログをログファイルに蓄積します。このログファイルを監視することでKubernetesのイベントを検知することが可能です。
4.4.4.1. ログファイル¶
監視項目「Kubernetes:イベント監視」で取得したログファイルは次のファイルに出力されます。ただし、ファイル名に使用できない記号は「-」(半角ハイフン)に置き換えます。
ログフォーマットがLTSVの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/k8s_events_{nodeid}_default.log
ログファイル名(通常+ネームスペース指定)
~/log/container.d/k8s_events_{nodeid}_default_{namespace}.log
ログファイル名(通常+コンテキスト指定)
~/log/container.d/k8s_events_{nodeid}_{context}.log
ログファイル名(通常+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_events_{nodeid}_{context}_{namespace}.log
ログファイル名(センサー)
~/log/container.d/k8s_events_{user}@{nodeid}_default.log
ログファイル名(センサー+ネームスペース指定)
~/log/container.d/k8s_events_{user}@{nodeid}_default_{namespace}.log
ログファイル名(センサー+コンテキスト指定)
~/log/container.d/k8s_events_{user}@{nodeid}_{context}.log
ログファイル名(センサー+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_events_{user}@{nodeid}_{context}_{namespace}.log
ログフォーマットがJSONの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/k8s_events_{nodeid}_default.json
ログファイル名(通常+ネームスペース指定)
~/log/container.d/k8s_events_{nodeid}_default_{namespace}.json
ログファイル名(通常+コンテキスト指定)
~/log/container.d/k8s_events_{nodeid}_{context}.json
ログファイル名(通常+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_events_{nodeid}_{context}_{namespace}.json
ログファイル名(センサー)
~/log/container.d/k8s_events_{user}@{nodeid}_default.json
ログファイル名(センサー+ネームスペース指定)
~/log/container.d/k8s_events_{user}@{nodeid}_default_{namespace}.json
ログファイル名(センサー+コンテキスト指定)
~/log/container.d/k8s_events_{user}@{nodeid}_{context}.json
ログファイル名(センサー+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_events_{user}@{nodeid}_{context}_{namespace}.json
4.4.4.2. ログフォーマット¶
以下にKubernetesイベント監視で取得したログファイルのレコード形式について説明します。 デフォルトのレコードフォーマットは LTSV形式で、項目間はタブ区切りとなります。
【Kubernetesイベントログファイル レコード形式】
ログフォーマットがLTSVの場合:
最新のタイムスタンプ ノードID 名前空間 タイプ(通常、警告) 理由 オブジェクト サブオブジェクト 発生環境 メッセージ 最初のタイムスタンプ 回数 名前
¶ No.
項目
キー:
説明
1
最新のタイムスタンプ
LastTimeStamp:
取得したイベントが記録された最新時刻。存在しない場合は、FirstTimeStampの値を利用します。
フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)2
ノードID
NodeId:
ノードID名
3
名前空間
Namespace:
名前空間
4
タイプ(通常、警告)
Type:
イベントタイプ(Normal/Warning)
5
理由
Reason:
イベントオブジェクトのステータス理由。
6
オブジェクト
Object:
イベントに関連するオブジェクト
7
サブオブジェクト
SubObject:
イベントに関連するサブオブジェクト
8
発生環境
Source:
取得したイベントの発生環境
9
メッセージ
Message:
取得したイベントのメッセージ
10
最初のタイムスタンプ
FirstTimeStamp:
取得したイベントが最初に記録された時刻。存在しない場合は、eventTimeの値を利用します。
フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)11
回数
Count:
取得イベントの発生回数
12
名前
Name:
取得したPod名
ログフォーマットがJSONの場合:
イベント内容
¶ No.
項目
説明
1
イベント内容
取得したイベント内容が入ります。イベント内容はJSONの形式で出力されます。
4.4.5. Kubernetesコンテナログ監視機能¶
監視項目「Kubernetes:コンテナログ監視」では Kubernetes から取得したログをログファイルに蓄積します。このログファイルを監視することでKubernetesのコンテナログを検知することが可能です。
4.4.5.1. ログファイル¶
ログフォーマットがLTSVの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/k8s_container_{nodeid}_{selector}_default.log
ログファイル名(通常+ネームスペース指定)
~/log/container.d/k8s_container_{nodeid}_{selector}_default_{namespace}.log
ログファイル名(通常+コンテキスト指定)
~/log/container.d/k8s_container_{nodeid}_{selector}_{context}.log
ログファイル名(通常+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_container_{nodeid}_{selector}_{context}_{namespace}.log
ログファイル名(センサー)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_default.log
ログファイル名(センサー+ネームスペース指定)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_default_{namespace}.log
ログファイル名(センサー+コンテキスト指定)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_{context}.log
ログファイル名(センサー+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_{context}_{namespace}.log
ログフォーマットがJSONの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/k8s_container_{nodeid}_{selector}_default.json
ログファイル名(通常+ネームスペース指定)
~/log/container.d/k8s_container_{nodeid}_{selector}_default_{namespace}.json
ログファイル名(通常+コンテキスト指定)
~/log/container.d/k8s_container_{nodeid}_{selector}_{context}.json
ログファイル名(通常+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_container_{nodeid}_{selector}_{context}_{namespace}.json
ログファイル名(センサー)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_default.json
ログファイル名(センサー+ネームスペース指定)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_default_{namespace}.json
ログファイル名(センサー+コンテキスト指定)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_{context}.json
ログファイル名(センサー+コンテキスト+ネームスペース指定)
~/log/container.d/k8s_container_{user}@{nodeid}_{selector}_{context}_{namespace}.json
4.4.5.2. ログフォーマット¶
以下にKubernetesコンテナログ監視で取得したログファイルのレコード形式について説明します。 デフォルトのレコードフォーマットは LTSV形式で、項目間はタブ区切りとなります。
【Kubernetesコンテナログファイル レコード形式】
ログフォーマットがLTSVの場合:
最新のタイムスタンプ Pod名 コンテナ名 メッセージ
¶ No.
項目
キー:
説明
1
タイムスタンプ
TimeStamp:
取得したコンテナログが記録された時刻。フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)
2
Pod名
Pod:
取得したPod名
3
コンテナ名
Container:
取得したコンテナ名
4
メッセージ
Message:
取得したコンテナログのメッセージ
ログフォーマットがJSONの場合:
イベント内容
¶ No.
項目
説明
1
コンテナログ内容
取得したコンテナログの内容が入ります。コンテナログの内容はJSONの形式で出力されます。
4.4.6. Podmanメトリクス監視機能¶
podmanコマンド経由で情報を取得し、Senju DevOperation Conductorのモニタリング機能を使って、監視することができます。
監視定義を千手ブラウザより登録し、監視を実施します。監視結果は、各種モニタ画面(グローバルノードモニタ/ノードモニタ)にてその監視状況を表示できます。予め設定したしきい値により障害を検知した場合は、メッセージモニタにメッセージが通知されます。(モニタリング機能については、ユーザーズガイド「 4.モニタリング 」を参照して下さい。)
4.4.7. OpenShiftメトリクス監視機能¶
ocコマンド経由で情報を取得し、Senju DevOperation Conductorのモニタリング機能を使って、監視することができます。
監視定義を千手ブラウザより登録し、監視を実施します。監視結果は、各種モニタ画面(グローバルノードモニタ/ノードモニタ)にてその監視状況を表示できます。予め設定したしきい値により障害を検知した場合は、メッセージモニタにメッセージが通知されます。(モニタリング機能については、ユーザーズガイド「 4.モニタリング 」を参照して下さい。)
4.4.8. OpenShiftイベント監視機能¶
監視項目「OpenShift:イベント監視」では OpenShift から取得したログをログファイルに蓄積します。このログファイルを監視することでOpenShiftのイベントを検知することが可能です。
4.4.8.1. ログファイル¶
監視項目「OpenShift:イベント監視」で取得したログファイルは次のファイルに出力されます。ただし、ファイル名に使用できない記号は「-」(半角ハイフン)に置き換えます。
ログフォーマットがLTSVの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/ops_events_{nodeid}_default.log
ログファイル名(通常+コンテキスト指定)
~/log/container.d/ops_events_{nodeid}_{context}.log
ログファイル名(センサー)
~/log/container.d/ops_events_{user}@{nodeid}_default.log
ログファイル名(センサー+コンテキスト指定時)
~/log/container.d/ops_events_{user}@{nodeid}_{context}.log
ログフォーマットがJSONの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/ops_events_{nodeid}_default.json
ログファイル名(通常+コンテキスト指定)
~/log/container.d/ops_events_{nodeid}_{context}.json
ログファイル名(センサー)
~/log/container.d/ops_events_{user}@{nodeid}_default.json
ログファイル名(センサー+コンテキスト指定時)
~/log/container.d/ops_events_{user}@{nodeid}_{context}.json
4.4.8.2. ログフォーマット¶
以下にOpenShiftイベント監視で取得したログファイルのレコード形式について説明します。 デフォルトのレコードフォーマットは LTSV形式で、項目間はタブ区切りとなります。
【OpenShiftイベントログファイル レコード形式】
ログフォーマットがLTSVの場合:
最新のタイムスタンプ ノードID 名前空間 タイプ(通常、警告) 理由 オブジェクト サブオブジェクト 発生環境 メッセージ 最初のタイムスタンプ 回数 名前
¶ No.
項目
キー:
説明
1
最新のタイムスタンプ
LastTimeStamp:
取得したイベントが記録された最新時刻。存在しない場合は、FirstTimeStampの値を利用します。
フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)2
ノードID
NodeId:
ノードID名
3
名前空間
Namespace:
名前空間
4
タイプ(通常、警告)
Type:
イベントタイプ(Normal/Warning)
5
理由
Reason:
イベントオブジェクトのステータス理由。
6
オブジェクト
Object:
イベントに関連するオブジェクト
7
サブオブジェクト
SubObject:
イベントに関連するサブオブジェクト
8
発生環境
Source:
取得したイベントの発生環境
9
メッセージ
Message:
取得したイベントのメッセージ
10
最初のタイムスタンプ
FirstTimeStamp:
取得したイベントが最初に記録された時刻。存在しない場合は、eventTimeの値を利用します。
フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)11
回数
Count:
取得イベントの発生回数
12
名前
Name:
取得したPod名
ログフォーマットがJSONの場合:
イベント内容
¶ No.
項目
説明
1
イベント内容
取得したイベント内容が入ります。イベント内容はJSONの形式で出力されます。
4.4.9. OpenShiftコンテナログ監視機能¶
監視項目「OpenShift:コンテナログ監視」では OpenShift から取得したログをログファイルに蓄積します。このログファイルを監視することでOpenShiftのコンテナログを検知することが可能です。
4.4.9.1. ログファイル¶
ログフォーマットがLTSVの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/ops_container_{nodeid}_{selector}_default.log
ログファイル名(通常+コンテキスト指定)
~/log/container.d/ops_container_{nodeid}_{selector}_{context}.log
ログファイル名(センサー)
~/log/container.d/ops_container_{user}@{nodeid}_{selector}_default.log
ログファイル名(センサー+コンテキスト指定時)
~/log/container.d/ops_container_{user}@{nodeid}_{selector}_{context}.log
ログフォーマットがJSONの場合:
¶ 項目
内容
ログディレクトリ名
~/log/container.d/
ログファイル名(通常)
~/log/container.d/ops_container_{nodeid}_{selector}_default.json
ログファイル名(通常+コンテキスト指定)
~/log/container.d/ops_container_{nodeid}_{selector}_{context}.json
ログファイル名(センサー)
~/log/container.d/ops_container_{user}@{nodeid}_{selector}_default.json
ログファイル名(センサー+コンテキスト指定時)
~/log/container.d/ops_container_{user}@{nodeid}_{selector}_{context}.json
4.4.9.2. ログフォーマット¶
以下にOpenShiftコンテナログ監視で取得したログファイルのレコード形式について説明します。 デフォルトのレコードフォーマットは LTSV形式で、項目間はタブ区切りとなります。
【OpenShiftコンテナログファイル レコード形式】
ログフォーマットがLTSVの場合:
最新のタイムスタンプ Pod名 コンテナ名 メッセージ
¶ No.
項目
キー:
説明
1
タイムスタンプ
TimeStamp:
取得したコンテナログが記録された時刻。フォーマット:YYYY-MM-DDThh:mm:ddZ(例:2020-03-13T07:09:06Z)
2
Pod名
Pod:
取得したPod名
3
コンテナ名
Container:
取得したコンテナ名
4
メッセージ
Message:
取得したコンテナログのメッセージ
ログフォーマットがJSONの場合:
イベント内容
¶ No.
項目
説明
1
コンテナログ内容
取得したコンテナログの内容が入ります。コンテナログの内容はJSONの形式で出力されます。
4.4.10. テキストログ監視の設定方法¶
以下にSenju DevOperation Conductorのテキストログ監視を利用して、Kubernetesイベントログ監視/Kubernetesコンテナログ監視/OpenShiftイベント監視で取得したログメッセージを監視する運用例を示します。この例では、ログメッセージにキーワードが発生時にメッセージモニタに通知されるようにログフィルタを登録し、監視する場合について説明します。
警告
管理対象ノードにおいて千手が起動していない状態で、[反映(監視属性)]を行うと失敗しますので、注意して下さい。
4.4.11. 使用上の制限事項¶
Docker監視項目、Kubernetes監視項目、Podman監視項目およびOpenShift監視項目のパラメータにスペース、メタキャラクタを含む値を指定することはできません。
OpenShift監視項目のセンサー監視では「コンテキスト」パラメータの値に「#」が含まれる場合、センサーのログインシェルの種類により「#」をバックスラッシュ「\」でエスケープする必要があります。
¶ シェル種類
エスケープ有無
指定例
csh
有
default/xxxx-xxx:nnnn/IAM\\\#xxxxx@nri.co.jp
bash
無
default/xxxx-xxx:nnnn/IAM#xxxxx@nri.co.jp
dash
無
default/xxxx-xxx:nnnn/IAM#xxxxx@nri.co.jp
「Podman:コンテナ別」で始まる監視項目は、一部podman statsコマンドで取得していますが、podman statsコマンドはPodman、cgroupのバージョンとrootlessモードの状態により、サポートされないことがあります。詳細については下記の表に示します。
¶ Podman V2
Podman V3
cgroup v1
cgroup v2
cgroup v1
cgroup v2
rootless有効
×
×
×
△
rootless無効
○
○
○
○
○:実行可能×:実行不可△:一部項目取得可能
- OpenShift監視での監視先がRed Hat OpenShift Service on AWS (ROSA)の場合、以下の監視項目は利用できません。
OpenShift:Pod別CPU使用率(%)
OpenShift:Pod別CPUミリコア使用量(millicores)
OpenShift:Pod別メモリ使用量(KB)
OpenShift:Pod別メモリ使用量(MB)
OpenShift:ワーカーノード別CPU使用率(%)
OpenShift:ワーカーノード別CPUミリコア使用量(millicores)
OpenShift:ワーカーノード別メモリ使用率(%)
OpenShift:ワーカーノード別メモリ使用量(MB)
OpenShift:デプロイメント別CPU使用率(%)
OpenShift:レプリカセット別CPU使用率(%)
OpenShift:デーモンセット別CPU使用率(%)