2.5. ログベースのアラート


2.5.1. LokiStack ルールの RBAC 権限の認可

管理者は、クラスターロールをユーザー名にバインドすることで、ユーザーが独自のアラートおよび記録ルールを作成および管理できるようにすることができます。クラスターロールは、ユーザーに必要なロールベースのアクセス制御 (RBAC) 権限を含む ClusterRole オブジェクトとして定義されます。

LokiStack では、アラートおよび記録ルール用の次のクラスターロールが利用できます。

Expand
ルール名説明

alertingrules.loki.grafana.com-v1-admin

このロールを持つユーザーは、アラートルールを管理する管理レベルのアクセス権を持ちます。このクラスターロールは、loki.grafana.com/v1 API グループ内の AlertingRule リソースを作成、読み取り、更新、削除、リスト表示、および監視する権限を付与します。

alertingrules.loki.grafana.com-v1-crdview

このロールを持つユーザーは、loki.grafana.com/v1 API グループ内の AlertingRule リソースに関連するカスタムリソース定義 (CRD) の定義を表示できますが、これらのリソースを変更または管理する権限を持ちません。

alertingrules.loki.grafana.com-v1-edit

このロールを持つユーザーは、AlertingRule リソースを作成、更新、および削除する権限を持ちます。

alertingrules.loki.grafana.com-v1-view

このロールを持つユーザーは、loki.grafana.com/v1 API グループ内の AlertingRule リソースを読み取ることができます。既存のアラートルールの設定、ラベル、およびアノテーションを検査できますが、それらを変更することはできません。

recordingrules.loki.grafana.com-v1-admin

このロールを持つユーザーは、記録ルールを管理する管理レベルのアクセス権を持ちます。このクラスターロールは、loki.grafana.com/v1 API グループ内の RecordingRule リソースを作成、読み取り、更新、削除、リスト表示、および監視する権限を付与します。

recordingrules.loki.grafana.com-v1-crdview

このロールを持つユーザーは、loki.grafana.com/v1 API グループ内の RecordingRule リソースに関連するカスタムリソース定義 (CRD) の定義を表示できますが、これらのリソースを変更または管理する権限を持ちません。

recordingrules.loki.grafana.com-v1-edit

このロールを持つユーザーは、RecordingRule リソースを作成、更新、および削除する権限を持ちます。

recordingrules.loki.grafana.com-v1-view

このロールを持つユーザーは、loki.grafana.com/v1 API グループ内の RecordingRule リソースを読み取ることができます。既存のアラートルールの設定、ラベル、およびアノテーションを検査できますが、それらを変更することはできません。

2.5.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>
Copy to Clipboard Toggle word wrap

次のコマンドは、指定したユーザーに、すべての namespace のアラートルールに対する管理者権限を付与します。

管理者権限を付与するクラスターロールバインディングコマンドの例

$ oc adm policy add-cluster-role-to-user alertingrules.loki.grafana.com-v1-admin <username>
Copy to Clipboard Toggle word wrap

2.5.2. Loki を使用したログベースのアラートルールの作成

AlertingRule CR には、単一の LokiStack インスタンスのアラートルールグループを宣言するために使用する、仕様および Webhook 検証定義のセットが含まれます。Webhook 検証定義は、ルール検証条件もサポートします。

  • AlertingRule CR に無効な interval 期間が含まれる場合、無効なアラートルールです。
  • AlertingRule CR に無効な for 期間が含まれる場合、無効なアラートルールです。
  • AlertingRule CR に無効な LogQL expr が含まれる場合、無効なアラートルールです。
  • AlertingRule CR に同じ名前のグループが 2 つ含まれる場合、無効なアラートルールです。
  • 上記のいずれも該当しない場合、アラートルールは有効とみなされます。
Expand
表2.3 AlertingRule の定義
テナントタイプAlertingRule CR の有効な namespace

application

<your_application_namespace>

audit

openshift-logging

infrastructure

openshift-/*kube-/\*default

手順

  1. AlertingRule カスタムリソース (CR) を作成します。

    インフラストラクチャー AlertingRule CR の例

      apiVersion: loki.grafana.com/v1
      kind: AlertingRule
      metadata:
        name: loki-operator-alerts
        namespace: openshift-operators-redhat 
    1
    
        labels: 
    2
    
          openshift.io/<label_name>: "true"
      spec:
        tenantID: "infrastructure" 
    3
    
        groups:
          - name: LokiOperatorHighReconciliationError
            rules:
              - alert: HighPercentageError
                expr: | 
    4
    
                  sum(rate({kubernetes_namespace_name="openshift-operators-redhat", kubernetes_pod_name=~"loki-operator-controller-manager.*"} |= "error" [1m])) by (job)
                    /
                  sum(rate({kubernetes_namespace_name="openshift-operators-redhat", kubernetes_pod_name=~"loki-operator-controller-manager.*"}[1m])) by (job)
                    > 0.01
                for: 10s
                labels:
                  severity: critical 
    5
    
                annotations:
                  summary: High Loki Operator Reconciliation Errors 
    6
    
                  description: High Loki Operator Reconciliation Errors 
    7
    Copy to Clipboard Toggle word wrap

    1
    この AlertingRule CR が作成される namespace には、LokiStack spec.rules.namespaceSelector 定義に一致するラベルが必要です。
    2
    labels ブロックは、LokiStack の spec.rules.selector 定義と一致する必要があります。
    3
    infrastructure テナントの AlertingRule CR は、openshift-*kube-\*、または default namespaces でのみサポートされます。
    4
    kubernetes_namespace_name: の値は、metadata.namespace の値と一致する必要があります。
    5
    この必須フィールドの値は、criticalwarning、または info である必要があります。
    6
    このフィールドは必須です。
    7
    このフィールドは必須です。

    アプリケーション AlertingRule CR の例

      apiVersion: loki.grafana.com/v1
      kind: AlertingRule
      metadata:
        name: app-user-workload
        namespace: app-ns 
    1
    
        labels: 
    2
    
          openshift.io/<label_name>: "true"
      spec:
        tenantID: "application"
        groups:
          - name: AppUserWorkloadHighError
            rules:
              - alert:
                expr: | 
    3
    
                  sum(rate({kubernetes_namespace_name="app-ns", kubernetes_pod_name=~"podName.*"} |= "error" [1m])) by (job)
                for: 10s
                labels:
                  severity: critical 
    4
    
                annotations:
                  summary:  
    5
    
                  description:  
    6
    Copy to Clipboard Toggle word wrap

    1
    この AlertingRule CR が作成される namespace には、LokiStack spec.rules.namespaceSelector 定義に一致するラベルが必要です。
    2
    labels ブロックは、LokiStack の spec.rules.selector 定義と一致する必要があります。
    3
    kubernetes_namespace_name: の値は、metadata.namespace の値と一致する必要があります。
    4
    この必須フィールドの値は、criticalwarning、または info である必要があります。
    5
    この必須フィールドの値は、ルールの概要です。
    6
    この必須フィールドの値は、ルールの詳細な説明です。
  2. AlertingRule CR を適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat