14.2. カスタムロギングアラート
Logging 5.7 以降のバージョンでは、ユーザーは、カスタマイズされたアラートと記録されたメトリクスを生成するように LokiStack デプロイメントを設定できます。カスタマイズされた アラートおよび記録ルール を使用する場合は、LokiStack ルーラーコンポーネントを有効にする必要があります。
				LokiStack のログベースのアラートと記録されたメトリクスは、LogQL 式をルーラーコンポーネントに提供することによってトリガーされます。Loki Operator は、選択した LokiStack サイズ (1x.extra-small、1x.small、または 1x.medium) に最適化されたルーラーを管理します。
			
				これらの式を提供するには、Prometheus 互換の アラートルール を含む AlertingRule カスタムリソース (CR)、または Prometheus 互換の 記録ルール を含む RecordingRule CR を作成する必要があります。
			
				管理者は、application、audit、または infrastructure テナントのログベースのアラートまたは記録されたメトリクスを設定できます。管理者権限のないユーザーは、アクセス権のあるアプリケーションの application テナントに対してログベースのアラートまたは記録されたメトリクスを設定できます。
			
				アプリケーション、監査、およびインフラストラクチャーのアラートは、ローカルの Alertmanager インスタンスを無効にしていない限り、デフォルトで openshift-monitoring namespace の OpenShift Container Platform モニタリングスタック Alertmanager に送信されます。openshift-user-workload-monitoring namespace でユーザー定義プロジェクトの監視に使用される Alertmanager が有効になっている場合、アプリケーションアラートはデフォルトでこの namespace の Alertmanager に送信されます。
			
14.2.1. ルーラーの設定
LokiStack ルーラーコンポーネントが有効になっている場合、ユーザーはログアラートや記録されたメトリクスをトリガーする LogQL 式のグループを定義できます。
					管理者は、LokiStack カスタムリソース (CR) を変更することでルーラーを有効にできます。
				
前提条件
- Red Hat OpenShift Logging Operator と Loki Operator がインストールされている。
- 
							LokiStackCR が作成されている。
- 管理者権限がある。
14.2.2. LokiStack ルールの RBAC 権限の認可
					管理者は、クラスターロールをユーザー名にバインドすることで、ユーザーが独自のアラートおよび記録ルールを作成および管理できるようにすることができます。クラスターロールは、ユーザーに必要なロールベースのアクセス制御 (RBAC) 権限を含む ClusterRole オブジェクトとして定義されます。
				
Logging 5.8 以降では、アラートおよび記録ルール用の次のクラスターロールを LokiStack で使用できます。
| ルール名 | 説明 | 
|---|---|
| 
									 | 
									このロールを持つユーザーは、アラートルールを管理する管理レベルのアクセス権を持ちます。このクラスターロールは、 | 
| 
									 | 
									このロールを持つユーザーは、 | 
| 
									 | 
									このロールを持つユーザーは、 | 
| 
									 | 
									このロールを持つユーザーは、 | 
| 
									 | 
									このロールを持つユーザーは、記録ルールを管理する管理レベルのアクセス権を持ちます。このクラスターロールは、 | 
| 
									 | 
									このロールを持つユーザーは、 | 
| 
									 | 
									このロールを持つユーザーは、 | 
| 
									 | 
									このロールを持つユーザーは、 | 
14.2.2.1. 例
ユーザーにクラスターロールを適用するには、既存のクラスターロールを特定のユーザー名にバインドする必要があります。
						クラスターロールは、使用するロールバインディングの種類に応じて、クラスタースコープまたは namespace スコープにすることができます。RoleBinding オブジェクトを使用する場合は、oc adm policy add-role-to-user コマンドを使用する場合と同様に、クラスターロールが指定した namespace にのみ適用されます。ClusterRoleBinding オブジェクトを使用する場合は、oc adm policy add-cluster-role-to-user コマンドを使用する場合と同様に、クラスターロールがクラスター内のすべての namespace に適用されます。
					
次のコマンド例では、指定したユーザーに、クラスター内の特定の namespace のアラートルールに対する作成、読み取り、更新、および削除 (CRUD) 権限を付与します。
特定の namespace のアラートルールに対する CRUD 権限を付与するクラスターロールバインディングコマンドの例
oc adm policy add-role-to-user alertingrules.loki.grafana.com-v1-admin -n <namespace> <username>
$ oc adm policy add-role-to-user alertingrules.loki.grafana.com-v1-admin -n <namespace> <username>次のコマンドは、指定したユーザーに、すべての namespace のアラートルールに対する管理者権限を付与します。
管理者権限を付与するクラスターロールバインディングコマンドの例
oc adm policy add-cluster-role-to-user alertingrules.loki.grafana.com-v1-admin <username>
$ oc adm policy add-cluster-role-to-user alertingrules.loki.grafana.com-v1-admin <username>14.2.3. Loki を使用したログベースのアラートルールの作成
					AlertingRule CR には、単一の LokiStack インスタンスのアラートルールグループを宣言するために使用する、仕様および Webhook 検証定義のセットが含まれます。Webhook 検証定義は、ルール検証条件もサポートします。
				
- 
							AlertingRuleCR に無効なinterval期間が含まれる場合、無効なアラートルールです。
- 
							AlertingRuleCR に無効なfor期間が含まれる場合、無効なアラートルールです。
- 
							AlertingRuleCR に無効な LogQLexprが含まれる場合、無効なアラートルールです。
- 
							AlertingRuleCR に同じ名前のグループが 2 つ含まれる場合、無効なアラートルールです。
- 上記のいずれにも当てはまらない場合、アラートルールは有効であるとみなされます。
| テナントタイプ | AlertingRuleCR の有効な namespace | 
|---|---|
| application | |
| audit | 
									 | 
| infrastructure | 
									 | 
前提条件
- Red Hat OpenShift Logging Operator 5.7 以降
- OpenShift Container Platform 4.13 以降
手順
- AlertingRuleカスタムリソース (CR) を作成します。- インフラストラクチャー AlertingRule CR の例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- このAlertingRuleCR が作成される namespace には、LokiStackspec.rules.namespaceSelector定義に一致するラベルが必要です。
- 2
- labelsブロックは、LokiStack の- spec.rules.selector定義と一致する必要があります。
- 3
- infrastructureテナントの- AlertingRuleCR は、- openshift-*、- kube-\*、または- defaultnamespaces でのみサポートされます。
- 4
- kubernetes_namespace_name:の値は、- metadata.namespaceの値と一致する必要があります。
- 5
- この必須フィールドの値は、critical、warning、またはinfoである必要があります。
- 6
- このフィールドは必須です。
- 7
- このフィールドは必須です。
 - アプリケーション AlertingRule CR の例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- このAlertingRuleCR が作成される namespace には、LokiStackspec.rules.namespaceSelector定義に一致するラベルが必要です。
- 2
- labelsブロックは、LokiStack の- spec.rules.selector定義と一致する必要があります。
- 3
- kubernetes_namespace_name:の値は、- metadata.namespaceの値と一致する必要があります。
- 4
- この必須フィールドの値は、critical、warning、またはinfoである必要があります。
- 5
- この必須フィールドの値は、ルールの概要です。
- 6
- この必須フィールドの値は、ルールの詳細な説明です。
 
- AlertingRuleCR を適用します。- oc apply -f <filename>.yaml - $ oc apply -f <filename>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow