3.6. Loki のログベースのアラート
AlertingRule カスタムリソース (CR) を作成することで、Loki のログベースのアラートを設定できます。
3.6.1. LokiStack ルールの RBAC 権限の認可 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、クラスターロールをユーザー名にバインドすることで、ユーザーが独自のアラートおよび記録ルールを作成および管理できるようにすることができます。クラスターロールは、ユーザーに必要なロールベースのアクセス制御 (RBAC) 権限を含む ClusterRole オブジェクトとして定義されます。
LokiStack では、アラートおよび記録ルール用の次のクラスターロールが利用できます。
| ルール名 | 説明 |
|---|---|
|
|
このロールを持つユーザーは、アラートルールを管理する管理レベルのアクセス権を持ちます。このクラスターロールは、 |
|
|
このロールを持つユーザーは、 |
|
|
このロールを持つユーザーは、 |
|
|
このロールを持つユーザーは、 |
|
|
このロールを持つユーザーは、記録ルールを管理する管理レベルのアクセス権を持ちます。このクラスターロールは、 |
|
|
このロールを持つユーザーは、 |
|
|
このロールを持つユーザーは、 |
|
|
このロールを持つユーザーは、 |
3.6.1.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>
3.6.2. Loki を使用したログベースのアラートルールの作成 リンクのコピーリンクがクリップボードにコピーされました!
AlertingRule CR には、単一の LokiStack インスタンスのアラートルールグループを宣言するために使用する、仕様および Webhook 検証定義のセットが含まれます。Webhook 検証定義は、ルール検証条件もサポートします。
-
AlertingRuleCR に無効なinterval期間が含まれる場合、無効なアラートルールです。 -
AlertingRuleCR に無効なfor期間が含まれる場合、無効なアラートルールです。 -
AlertingRuleCR に無効な LogQLexprが含まれる場合、無効なアラートルールです。 -
AlertingRuleCR に同じ名前のグループが 2 つ含まれる場合、無効なアラートルールです。 - 上記のいずれも該当しない場合、アラートルールは有効とみなされます。
| テナントタイプ | AlertingRule CR の有効な namespace |
|---|---|
| application |
|
| audit |
|
| infrastructure |
|
手順
AlertingRuleカスタムリソース (CR) を作成します。インフラストラクチャー
AlertingRuleCR の例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
- このフィールドは必須です。
アプリケーション
AlertingRuleCR の例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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow