第1章 ログ転送の設定
ClusterLogForwarder
(CLF) を使用すると、ユーザーはさまざまな宛先へのログの転送を設定できます。さまざまなソースからログメッセージを選択し、それらを変換またはフィルタリングできるパイプラインを介して送信して、1 つ以上の出力に転送する柔軟な方法を提供します。
ClusterLogForwarder の主な機能
- 入力を使用してログメッセージを選択する
- 出力を使用してログを外部の宛先に転送する
- フィルターを使用してログメッセージをフィルタリング、変換、および破棄する
- 入力、フィルター、出力を接続するログ転送パイプラインを定義する
1.1. ログ収集のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
このリリースの Cluster Logging では、管理者が ClusterLogForwarder に関連付けられたサービスアカウントにログ収集権限を明示的に付与する必要があります。これは、ClusterLogging およびオプションで ClusterLogForwarder.logging.openshift.io リソースで構成されるレガシーロギングシナリオでは、以前のリリースでは必要ありませんでした。
Red Hat OpenShift Logging Operator は、collect-audit-logs
、collect-application-logs
、collect-infrastructure-logs
クラスターロールを提供します。これにより、コレクターは監査ログ、アプリケーションログ、およびインフラストラクチャーログをそれぞれ収集できます。
必要なクラスターロールをサービスアカウントにバインドして、ログ収集をセットアップします。
1.1.1. レガシーサービスアカウント リンクのコピーリンクがクリップボードにコピーされました!
既存のレガシーサービスアカウント logcollector
を使用するには、次の ClusterRoleBinding を作成します。
oc adm policy add-cluster-role-to-user collect-application-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-application-logs system:serviceaccount:openshift-logging:logcollector
oc adm policy add-cluster-role-to-user collect-infrastructure-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs system:serviceaccount:openshift-logging:logcollector
さらに、監査ログを収集する場合は、次の ClusterRoleBinding を作成します。
oc adm policy add-cluster-role-to-user collect-audit-logs system:serviceaccount:openshift-logging:logcollector
$ oc adm policy add-cluster-role-to-user collect-audit-logs system:serviceaccount:openshift-logging:logcollector
1.1.2. サービスアカウントの作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
Red Hat OpenShift Logging Operator が
openshift-logging
namespace にインストールされている。 - 管理者権限がある。
手順
- コレクターのサービスアカウントを作成します。認証にトークンを必要とするストレージにログを書き込む場合は、サービスアカウントにトークンを含める必要があります。
適切なクラスターロールをサービスアカウントにバインドします。
バインドコマンドの例
oc adm policy add-cluster-role-to-user <cluster_role_name> system:serviceaccount:<namespace_name>:<service_account_name>
$ oc adm policy add-cluster-role-to-user <cluster_role_name> system:serviceaccount:<namespace_name>:<service_account_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2.1. サービスアカウントのクラスターロールバインディング リンクのコピーリンクがクリップボードにコピーされました!
role_binding.yaml ファイルは、ClusterLogging Operator の ClusterRole を特定の ServiceAccount にバインドし、クラスター全体で Kubernetes リソースを管理できるようにします。
- 1
- roleRef: バインディングが適用される ClusterRole を参照します。
- 2
- apiGroup: RBAC API グループを示し、ClusterRole が Kubernetes の RBAC システムの一部であることを指定します。
- 3
- kind: 参照されるロールがクラスター全体に適用される ClusterRole であることを指定します。
- 4
- name: ServiceAccount にバインドされる ClusterRole の名前 (ここでは cluster-logging-operator)。
- 5
- subjects: ClusterRole から権限が付与されるエンティティー (ユーザーまたはサービスアカウント) を定義します。
- 6
- kind: サブジェクトが ServiceAccount であることを指定します。
- 7
- Name: 権限が付与される ServiceAccount の名前。
- 8
- namespace: ServiceAccount が配置されている namespace を示します。
1.1.2.2. アプリケーションログの書き込み リンクのコピーリンクがクリップボードにコピーされました!
write-application-logs-clusterrole.yaml ファイルは、Loki ロギングアプリケーションにアプリケーションログを書き込む権限を付与する ClusterRole を定義します。
- 1
- rules: この ClusterRole によって付与される権限を指定します。
- 2
- apiGroups: Loki ロギングシステムに関連する API グループ loki.grafana.com を参照します。
- 3
- loki.grafana.com: Loki 関連のリソースを管理するための API グループ。
- 4
- resources: この ClusterRole がやり取りする権限を付与するリソースタイプ。
- 5
- application: Loki ロギングシステム内のアプリケーションリソースを参照します。
- 6
- resourceNames: このロールが管理できるリソースの名前を指定します。
- 7
- logs: 作成できるログリソースを参照します。
- 8
- verbs: リソースで許可されるアクション。
- 9
- create: Loki システムに新しいログを作成する権限を付与します。
1.1.2.3. 監査ログの書き込み リンクのコピーリンクがクリップボードにコピーされました!
write-audit-logs-clusterrole.yaml ファイルは、Loki ロギングシステムに監査ログを作成する権限を付与する ClusterRole を定義します。
- 1
- rules: この ClusterRole によって付与される権限を定義します。
- 2
- apiGroups: API グループ loki.grafana.com を指定します。
- 3
- loki.grafana.com: Loki ロギングリソースを管理する API グループ。
- 4
- resources: このロールが管理するリソースタイプ (この場合は audit) を指します。
- 5
- audit: ロールが Loki 内の監査ログを管理することを指定します。
- 6
- resourceNames: ロールがアクセスできる特定のリソースを定義します。
- 7
- logs: このロールで管理できるログを指します。
- 8
- verbs: リソースで許可されるアクション。
- 9
- create: 新しい監査ログを作成する権限を付与します。
1.1.2.4. インフラストラクチャーログの書き込み リンクのコピーリンクがクリップボードにコピーされました!
write-infrastructure-logs-clusterrole.yaml ファイルは、Loki ロギングシステムにインフラストラクチャーログを作成する権限を付与する ClusterRole を定義します。
YAML 例
- 1
- ルール: この ClusterRole が付与する権限を指定します。
- 2
- apiGroups: Loki 関連リソースの API グループを指定します。
- 3
- loki.grafana.com: Loki ロギングシステムを管理する API グループ。
- 4
- resources: このロールが対話できるリソースタイプを定義します。
- 5
- infrastructure: このロールが管理するインフラストラクチャー関連のリソースを指します。
- 6
- resourceNames: このロールが管理できるリソースの名前を指定します。
- 7
- logs: インフラストラクチャーに関連するログリソースを指します。
- 8
- verbs: このロールによって許可されるアクションです。
- 9
- create: Loki システムにインフラストラクチャーログを作成する権限を付与します。
1.1.2.5. ClusterLogForwarder 編集者ロール リンクのコピーリンクがクリップボードにコピーされました!
clusterlogforwarder-editor-role.yaml ファイルは、ユーザーが OpenShift で ClusterLogForwarders を管理できるようにする ClusterRole を定義します。
- 1
- ルール: この ClusterRole が付与する権限を指定します。
- 2
- apiGroups: OpenShift 固有の API グループを指します。
- 3
- obervability.openshift.io: ロギングなどの可観測性リソースを管理するための API グループ。
- 4
- resources: このロールが管理できるリソースを指定します。
- 5
- clusterlogforwarders: OpenShift のログ転送リソースを指します。
- 6
- verbs: ClusterLogForwarders で許可されるアクションを指定します。
- 7
- create: 新しい ClusterLogForwarders を作成する権限を付与します。
- 8
- delete: 既存の ClusterLogForwarders を削除する権限を付与します。
- 9
- get: 特定の ClusterLogForwarders に関する情報を取得する権限を付与します。
- 10
- list: すべての ClusterLogForwarders のリスト表示を許可します。
- 11
- patch: ClusterLogForwarders を部分的に変更する権限を付与します。
- 12
- update: 既存の ClusterLogForwarders を更新する権限を付与します。
- 13
- watch: ClusterLogForwarders への変更を監視する権限を付与します。