[[419119]]目次- Longhornを監視するためのPrometheusとGrafanaの設定
- Longhorn のメトリクスを Rancher 監視システムに統合する
- Longhorn モニタリング メトリック
- Kubeletボリュームメトリックをサポート
- Longhorn アラート ルールの例
Longhornを監視するためのPrometheusとGrafanaの設定 概要Longhorn は、REST エンドポイント http://LONGHORN_MANAGER_IP:PORT/metrics で、Prometheus テキスト形式でメトリックをネイティブに公開します。利用可能なすべてのメトリックの説明については、Longhorn のメトリックを参照してください。 Prometheus、Graphite、Telegraf などの収集ツールを使用してこれらのインジケーターをキャプチャし、収集したデータを Grafana などのツールで視覚化できます。 このドキュメントでは、Longhorn を監視するためのサンプル設定を示します。監視システムは、Prometheus を使用してデータとアラートを収集し、Grafana を使用して収集したデータを視覚化/ダッシュボード化します。大まかに言えば、監視システムは次のようなものから構成されます。 - Prometheus サーバーは、Longhorn メトリック エンドポイントから時系列データを収集して保存します。 Prometheus は、構成されたルールと収集されたデータに基づいてアラートを生成する役割も担います。その後、Prometheus サーバーは Alertmanager にアラートを送信します。
- AlertManager は、これらのアラートを管理し、アラートの消音、抑制、集約、電子メール、通話通知システム、チャット プラットフォームなどの方法による通知の送信などを行います。
- Grafana は Prometheus サーバーにデータを照会し、視覚化のためにダッシュボードを描画します。
次の図は、監視システムの詳細なアーキテクチャを示しています。 上の図には記載されていないコンポーネントが 2 つあります。 - Longhorn バックエンド サービスは、Longhorn マネージャー ポッドのセットを指すサービスです。 Longhorn メトリックは、エンドポイント http://LONGHORN_MANAGER_IP:PORT/metrics の Longhorn マネージャー ポッドで公開されます。
- Prometheus オペレーターを使用すると、Kubernetes 上で Prometheus を実行するのが非常に簡単になります。オペレーターは、ServiceMonitor、Prometheus、AlertManager の 3 つのカスタム リソースを監視します。ユーザーがこれらのカスタム リソースを作成すると、Prometheus Operator はユーザー指定の構成を使用して Prometheus サーバー AlerManager をデプロイおよび管理します。
インストール この手順に従って、すべてのコンポーネントを監視名前空間にインストールします。別の名前空間にインストールするには、フィールドの名前空間を変更します: OTHER_NAMESPACE 監視名前空間を作成する - APIバージョン: v1
- 種類: 名前空間
- メタデータ:
- 名前: モニタリング
Prometheus Operatorのインストール Prometheus Operator と、それに必要な ClusterRole、ClusterRoleBinding、およびサービス アカウントをデプロイします。 - apiバージョン: rbac。認証.k8s.io/v1
- 種類: ClusterRoleBinding
- メタデータ:
- ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- app.kubernetes.io/バージョン: v0.38.3
- 名前: プロメテウスオペレーター
- 名前空間: 監視
- ロールリファレンス:
- apiGroup : rbac.authorization.k8s.io
- 種類: ClusterRole
- 名前: プロメテウスオペレーター
- 科目:
- - 種類: サービスアカウント
- 名前: プロメテウスオペレーター
- 名前空間: 監視
-
- apiバージョン: rbac。認証.k8s.io/v1
- 種類: ClusterRole
- メタデータ:
- ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- app.kubernetes.io/バージョン: v0.38.3
- 名前: プロメテウスオペレーター
- 名前空間: 監視
- ルール:
- -apiグループ:
- apiextensions.k8s.io の拡張機能
- リソース:
- - カスタムリソース定義
- 動詞:
- -作成する
- -apiグループ:
- apiextensions.k8s.io の拡張機能
- リソース名:
- -alertmanagers.monitoring.coreos.com
- - podmonitors.monitoring.coreos.com
- - prometheuses.monitoring.coreos.com
- - prometheusrules.monitoring.coreos.com
- -servicemonitors.monitoring.coreos.com
- - thanosrulers.monitoring.coreos.com
- リソース:
- - カスタムリソース定義
- 動詞:
- - 得る
- -アップデート
- -apiグループ:
- - モニタリング
- リソース:
- - アラートマネージャー
- - アラートマネージャー/ファイナライザー
- - プロメテウス
- - プロメテウス/ファイナライザー
- -サノスルーラー
- - サノスルーラー/ファイナライザー
- -サービスモニター
- - ポッドモニター
- -プロメテウスルール
- 動詞:
- - '*'
- -apiグループ:
- - アプリ
- リソース:
- - ステートフルセット
- 動詞:
- - '*'
- -apiグループ:
- - 「」
- リソース:
- - 構成マップ
- - 秘密
- 動詞:
- - '*'
- -apiグループ:
- - 「」
- リソース:
- - ポッド
- 動詞:
- - リスト
- -消去
- -apiグループ:
- - 「」
- リソース:
- - サービス
- - サービス/ファイナライザー
- - エンドポイント
- 動詞:
- - 得る
- -作成する
- -アップデート
- -消去
- -apiグループ:
- - 「」
- リソース:
- - ノード
- 動詞:
- - リスト
- - 時計
- -apiグループ:
- - 「」
- リソース:
- - 名前空間
- 動詞:
- - 得る
- - リスト
- - 時計
-
- APIバージョン: アプリ/v1
- 種類: デプロイメント
- メタデータ:
- ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- app.kubernetes.io/バージョン: v0.38.3
- 名前: プロメテウスオペレーター
- 名前空間: 監視
- 仕様:
- レプリカ: 1
- セレクタ:
- 一致ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- テンプレート:
- メタデータ:
- ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- app.kubernetes.io/バージョン: v0.38.3
- 仕様:
- コンテナ:
- -引数:
- -
- -
- -
- -
- イメージ: quay.io/prometheus-operator/prometheus-operator:v0.38.3
- 名前: プロメテウスオペレーター
- ポート:
- - コンテナポート: 8080
- 名前: http
- リソース:
- 制限:
- CPU: 200m
- メモリ: 200Mi
- リクエスト:
- CPU: 100m
- メモリ: 100Mi
- セキュリティコンテキスト:
- 権限昇格を許可: false
- ノードセレクタ:
- beta.kubernetes.io/os: Linux の場合
- セキュリティコンテキスト:
- 非ルートとして実行: true
- 実行ユーザー: 65534
- サービスアカウント名: prometheus-operator
-
- APIバージョン: v1
- 種類: サービスアカウント
- メタデータ:
- ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- app.kubernetes.io/バージョン: v0.38.3
- 名前: プロメテウスオペレーター
- 名前空間: 監視
-
- APIバージョン: v1
- 種類: サービス
- メタデータ:
- ラベル:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
- app.kubernetes.io/バージョン: v0.38.3
- 名前: プロメテウスオペレーター
- 名前空間: 監視
- 仕様:
- クラスターIP: なし
- ポート:
- -名前: http
- ポート: 8080
- ターゲットポート: http
- セレクタ:
- app.kubernetes.io/コンポーネント: コントローラー
- app.kubernetes.io/名前: prometheus-operator
Longhorn ServiceMonitor のインストール Longhorn ServiceMonitor には、Longhorn バックエンド サービスを選択するためのラベル セレクター app:longhorn-manager があります。その後、Prometheus CRD に Longhorn ServiceMonitor を含めることができるため、Prometheus サーバーはすべての Longhorn マネージャー ポッドとそのエンドポイントを検出できるようになります。 - apiバージョン: monitored.coreos.com/v1
- 種類: サービスモニター
- メタデータ:
- 名前: longhorn-prometheus-servicemonitor
- 名前空間: 監視
- ラベル:
- 名前: longhorn-prometheus-servicemonitor
- 仕様:
- セレクタ:
- 一致ラベル:
- アプリ: longhorn-manager
- 名前空間セレクター:
- 一致する名前:
- -ロングホーンシステム
- エンドポイント:
- - ポート: マネージャー
Prometheus AlertManagerのインストールと設定 3 つのインスタンスを使用して、可用性の高い Alertmanager デプロイメントを作成します。 - apiバージョン: monitored.coreos.com/v1
- 種類: アラートマネージャー
- メタデータ:
- 名前: ロングホーン
- 名前空間: 監視
- 仕様:
- レプリカ: 3
有効な構成が提供されない限り、Alertmanager インスタンスは起動できません。 Alertmanager の設定に関する詳細な手順については、こちらをご覧ください。次のコードは構成例を示しています。 - グローバル:
- 解決タイムアウト: 5分
- ルート:
- group_by: [アラート名]
- 受信者: email_and_slack
- 受信者:
- -名前: email_and_slack
- メール設定:
- - to : <通知を送信するメールアドレス>
- from : <送信者アドレス>
- smarthost: <電子メールが送信される SMTP ホスト>
- # SMTP認証情報。
- auth_username: <ユーザー名>
- auth_identity: <アイデンティティ>
- auth_password: <パスワード>
- ヘッダー:
- 件名: 「ロングホーンアラート」
- テキスト: |-
- {{ 範囲 .アラート }}
- *警告:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
- *説明:* {{ .Annotations.description }}
- *詳細:*
- {{ range .Labels.SortedPairs }} • *{{ .名前}}:* `{{ .値 }}`
- {{終わり}}
- {{終わり}}
- slack_configs:
- - api_url: <Slack ウェブフック URL>
- チャンネル: <チャンネルまたは ユーザー 通知を送信するには>
- テキスト: |-
- {{ 範囲 .アラート }}
- *警告:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
- *説明:* {{ .Annotations.description }}
- *詳細:*
- {{ range .Labels.SortedPairs }} • *{{ .名前}}:* `{{ .値 }}`
- {{終わり}}
- {{終わり}}
上記の Alertmanager 構成を alertmanager.yaml というファイルに保存し、kubectl を使用してそこからシークレットを作成します。 Alertmanager インスタンスでは、シークレット リソース名が alertmanager-{ALERTMANAGER_NAME} の形式に従う必要があります。前のステップでは、Alertmanagerの名前はlonghornなので、シークレット名はalertmanager-longhornにする必要があります。 - $ kubectlシークレットジェネリックアラートマネージャーロングホーンを作成します
Alertmanager の Web UI を表示できるようにするには、サービスを通じて公開します。簡単な方法は、NodePort タイプの Service を使用することです。 - APIバージョン: v1
- 種類: サービス
- メタデータ:
- 名前: alertmanager-longhorn
- 名前空間: 監視
- 仕様:
- タイプ: NodePort
- ポート:
- -名前: ウェブ
- ノードポート: 30903
- ポート: 9093
- プロトコル: TCP
- ターゲットポート: web
- セレクタ:
- アラートマネージャ: ロングホーン
上記のサービスを作成すると、ノードの IP とポート 30903 を介して Alertmanager Web UI にアクセスできるようになります。 上記の NodePort サービスは TLS 接続経由で通信しないため、このサービスを使用して簡単に検証してみましょう。サービス タイプを ClusterIP に変更し、Ingress コントローラーを設定して、TLS 接続を介して Alertmanager の Web UI を公開することもできます。 Prometheusサーバーのインストールと設定 アラート条件を定義する PrometheusRule カスタム リソースを作成します。 - apiバージョン: monitored.coreos.com/v1
- 種類: PrometheusRule
- メタデータ:
- ラベル:
- プロメテウス:ロングホーン
- 役割: アラートルール
- 名前: プロメテウス・ロングホーン・ルール
- 名前空間: 監視
- 仕様:
- グループ:
- -名前: longhorn.rules
- ルール:
- - アラート: LonghornVolumeUsageCritical
- 注釈:
- 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}は { {$value}}% 使用済み
- 5分以上。
- 概要: Longhorn ボリューム容量の使用率は90% を超えています。
- 式: 100 * (longhorn_volume_usage_bytes / longhorn_volume_capacity_bytes) > 90
- 5mの場合
- ラベル:
- 問題: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}の使用が重大です。
- 深刻度: 重大
アラートルールの定義方法の詳細については、https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#alerting-rules を参照してください。 RBAC 認証が有効になっている場合は、Prometheus Pod の ClusterRole と ClusterRoleBinding を作成します。 - APIバージョン: v1
- 種類: サービスアカウント
- メタデータ:
- 名前: プロメテウス
- 名前空間: 監視
- apiバージョン: rbac。認証.k8s.io/v1beta1
- 種類: ClusterRole
- メタデータ:
- 名前: プロメテウス
- 名前空間: 監視
- ルール:
- -apiグループ: [ "" ]
- リソース:
- - ノード
- - サービス
- - エンドポイント
- - ポッド
- 動詞: [ 「取得する」 、 「一覧表示する」 、 「見る」 ]
- -apiグループ: [ "" ]
- リソース:
- - 構成マップ
- 動詞: [ "得る" ]
- - 非リソースURL: [ "/metrics" ]
- 動詞: [ "得る" ]
- apiバージョン: rbac。認証.k8s.io/v1beta1
- 種類: ClusterRoleBinding
- メタデータ:
- 名前: プロメテウス
- ロールリファレンス:
- apiGroup : rbac.authorization.k8s.io
- 種類: ClusterRole
- 名前: プロメテウス
- 科目:
- - 種類: サービスアカウント
- 名前: プロメテウス
- 名前空間: 監視
Prometheus カスタム リソースを作成します。仕様で Longhorn サービス モニターと Longhorn ルールを選択したことに注意してください。 - apiバージョン: monitored.coreos.com/v1
- 種類: プロメテウス
- メタデータ:
- 名前: プロメテウス
- 名前空間: 監視
- 仕様:
- レプリカ: 2
- サービスアカウント名: プロメテウス
- 警告:
- アラートマネージャー:
- - 名前空間: 監視
- 名前: alertmanager-longhorn
- ポート: ウェブ
- サービスモニターセレクター:
- 一致ラベル:
- 名前: longhorn-prometheus-servicemonitor
- ルールセレクター:
- 一致ラベル:
- プロメテウス:ロングホーン
- 役割: アラートルール
Prometheus サーバーの Web UI を表示できるようにするには、サービス経由で公開します。簡単な方法は、NodePort タイプの Service を使用することです。 - APIバージョン: v1
- 種類: サービス
- メタデータ:
- 名前: プロメテウス
- 名前空間: 監視
- 仕様:
- タイプ: NodePort
- ポート:
- -名前: ウェブ
- ノードポート: 30904
- ポート: 9090
- プロトコル: TCP
- ターゲットポート: web
- セレクタ:
- プロメテウス: プロメテウス
上記のサービスを作成すると、ノードの IP とポート 30904 を介して Prometheus サーバーの Web UI にアクセスできるようになります。 この時点で、Prometheus サーバー UI の [ターゲットとルール] セクションで、すべての Longhorn マネージャー ターゲットと Longhorn ルールを確認できるはずです。 上記の NodePort サービスは TLS 接続経由で通信しないため、このサービスを使用して簡単に検証してみましょう。サービス タイプを ClusterIP に変更し、Ingress コントローラーを設定して、TLS 接続経由で Prometheus サーバーの Web UI を公開することもできます。 Grafanaをインストールする Grafana データ ソース構成を作成します。 - APIバージョン: v1
- 種類: ConfigMap
- メタデータ:
- 名前: grafana-datasources
- 名前空間: 監視
- データ:
- プロメテウスyaml: |-
- {
- "apiバージョン" : 1,
- 「データソース」 : [
- {
- 「アクセス」 : 「プロキシ」 、
- "編集可能" : true 、
- 「名前」 : 「プロメテウス」 、
- "組織ID" : 1,
- 「タイプ」 : 「プロメテウス」 、
- 「URL」 : 「http://prometheus:9090」 、
- 「バージョン」 : 1
- }
- ]
- }
Grafana デプロイメントを作成します。 - APIバージョン: アプリ/v1
- 種類: デプロイメント
- メタデータ:
- 名前: グラファナ
- 名前空間: 監視
- ラベル:
- アプリ: グラファナ
- 仕様:
- レプリカ: 1
- セレクタ:
- 一致ラベル:
- アプリ: グラファナ
- テンプレート:
- メタデータ:
- 名前: グラファナ
- ラベル:
- アプリ: グラファナ
- 仕様:
- コンテナ:
- -名前: グラファナ
- イメージ: grafana/grafana:7.1.5
- ポート:
- -名前: グラファナ
- コンテナポート: 3000
- リソース:
- 制限:
- メモリ: "500Mi"
- CPU: "300m"
- リクエスト:
- メモリ: "500Mi"
- CPU: "200m"
- ボリュームマウント:
- - マウントパス: /var/lib/grafana
- 名前: grafana-storage
- - マウントパス: /etc/grafana/provisioning/datasources
- 名前: grafana-datasources
- 読み取り専用: false
- ボリューム:
- -名前: grafana-storage
- 空ディレクトリ: {}
- -名前: grafana-datasources
- 構成マップ:
- デフォルトモード: 420
- 名前: grafana-datasources
NodePort 32000 で Grafana を公開します。 - APIバージョン: v1
- 種類: サービス
- メタデータ:
- 名前: グラファナ
- 名前空間: 監視
- 仕様:
- セレクタ:
- アプリ: グラファナ
- タイプ: NodePort
- ポート:
- - ポート: 3000
- ターゲットポート: 3000
- ノードポート: 32000
上記の NodePort サービスは TLS 接続を介して通信しないため、このサービスを使用して簡単に検証してみましょう。サービス タイプを ClusterIP に変更し、Ingress コントローラーを設定して、TLS 接続経由で Grafana を公開することもできます。 ポート 32000 上の任意のノード IP を使用して Grafana ダッシュボードにアクセスします。デフォルトの資格情報は次のとおりです。 - ユーザー: admin
- パスワード: admin
Longhornダッシュボードのインストール Grafana に入ったら、プリセットのダッシュボードをインポートします: https://grafana.com/grafana/dashboards/13032 Grafana ダッシュボードをインポートする方法については、https://grafana.com/docs/grafana/latest/reference/export_import/ を参照してください。 成功すると、次のダッシュボードが表示されます。 Longhorn のメトリクスを Rancher 監視システムに統合する Rancher モニタリング システムについて Rancher を使用すると、主要なオープンソース監視ソリューションである Prometheus との統合を通じて、クラスター ノード、Kubernetes コンポーネント、ソフトウェア デプロイメントのステータスと進行状況を監視できます。 Rancher 監視システムを展開/有効化する方法については、https://rancher.com/docs/rancher/v2.x/en/monitoring-alerting/ を参照してください。 Rancher 監視システムに Longhorn メトリックを追加する Rancher を使用して Kubernetes を管理し、Rancher モニタリングを有効にしている場合は、次の ServiceMonitor をデプロイするだけで、Longhorn メトリックを Rancher モニタリングに追加できます。 - apiバージョン: monitored.coreos.com/v1
- 種類: サービスモニター
- メタデータ:
- 名前: longhorn-prometheus-servicemonitor
- 名前空間: longhorn-system
- ラベル:
- 名前: longhorn-prometheus-servicemonitor
- 仕様:
- セレクタ:
- 一致ラベル:
- アプリ: longhorn-manager
- 名前空間セレクター:
- 一致する名前:
- -ロングホーンシステム
- エンドポイント:
- - ポート: マネージャー
ServiceMonitor が作成されると、Rancher はすべての Longhorn メトリックを自動的に検出します。 その後、視覚化のために Grafana ダッシュボードを設定できます。 Longhorn モニタリング メトリック 音量 指標名 | 例示する | 例 |
---|
longhorn_ボリュームの実際のサイズバイト | 対応するノード上のボリュームの各レプリカによって使用される実際のスペース | longhorn_volume_actual_size_bytes{node="worker-2",volume="testvol"} 1.1917312e+08 | longhorn_ボリューム容量バイト | このボリュームの設定サイズ(バイト単位) | longhorn_volume_capacity_bytes{node="worker-2",volume="testvol"} 6.442450944e+09 | ロングホーンボリュームの状態 | このボリュームのステータス: 1=作成中、2=接続中、3=切断中、4=接続中、5=切断中、6=削除中 | longhorn_volume_state{node="worker-2",volume="testvol"} 2 | longhorn_volume_robustness | このボリュームの状態: 0=不明、1=正常、2=劣化、3=障害あり | longhorn_volume_robustness{node="worker-2",volume="testvol"} 1 |
ノード 指標名 | 例示する | 例 |
---|
ロングホーンノードステータス | ノードの状態: 1=true、0=false | longhorn_node_status{condition="ready",condition_reason="",node="worker-2"} 1 | ロングホーンノード数合計 | Longhornシステム内のノードの総数 | ロングホーンノード数合計 4 | longhorn_node_cpu_capacity_ミリcpu | このノードで割り当て可能な最大CPU | longhorn_node_cpu_capacity_millicpu{node="worker-2"} 2000 | longhorn_node_cpu_usage_ミリcpu | このノードのCPU使用率 | longhorn_node_cpu_usage_millicpu{node="pworker-2"} 186 | longhorn_node_memory_capacity_bytes | このノードで割り当て可能な最大メモリ | longhorn_node_memory_capacity_bytes{node="worker-2"} 4.031229952e+09 | longhorn_node_memory_usage_bytes | このノードのメモリ使用量 | longhorn_node_memory_usage_bytes{node="worker-2"} 1.833582592e+09 | longhorn_node_storage_capacity_bytes | このノードのストレージ容量 | longhorn_node_storage_capacity_bytes{node="worker-3"} 8.3987283968e+10 | longhorn_node_storage_usage_bytes | ノードの使用済みストレージ | longhorn_node_storage_usage_bytes{node="worker-3"} 9.060941824e+09 | longhorn_node_storage_reservation_bytes | このノード上で他のアプリケーションやシステム用に予約されているストレージスペース | longhorn_node_storage_reservation_bytes{node="worker-3"} 2.519618519e+10
|
ディスク 指標名 | 例示する | 例 |
---|
longhorn_ディスク容量バイト | このディスクの記憶容量 | longhorn_disk_capacity_bytes{disk="default-disk-8b28ee3134628183",node="worker-3"} 8.3987283968e+10 | longhorn_ディスク使用量バイト | このディスクの使用済みストレージ容量 | longhorn_disk_usage_bytes{disk="default-disk-8b28ee3134628183",node="worker-3"} 9.060941824e+09 | longhorn_ディスク予約バイト | このディスク上のストレージスペースは他のアプリケーションやシステム用に予約されています | longhorn_disk_reservation_bytes{disk="default-disk-8b28ee3134628183",node="worker-3"} 2.519618519e+10 |
インスタンス マネージャー 指標名 | 例示する | 例 |
---|
longhorn_instance_manager_cpu_usage_millicpu | このLonghornインスタンスマネージャのCPU使用率 | longhorn_instance_manager_cpu_usage_millicpu{instance_manager="instance-manager-e-2189ed13",instance_manager_type="engine",node="worker-2"} 80 | longhorn_instance_manager_cpu_requests_millicpu | このLonghornインスタンスマネージャに対してKubernetesで要求されるCPUリソース | longhorn_instance_manager_cpu_requests_millicpu{instance_manager="instance-manager-e-2189ed13",instance_manager_type="engine",node="worker-2"} 250 | longhorn_instance_manager_メモリ使用量バイト | この Longhorn インスタンス マネージャーのメモリ使用量 | longhorn_instance_manager_memory_usage_bytes{instance_manager="instance-manager-e-2189ed13",instance_manager_type="engine",node="worker-2"} 2.4072192e+07 | longhorn_instance_manager_memory_requests_bytes | KubernetesのこのLonghornインスタンスマネージャによって要求されるメモリ | longhorn_instance_manager_memory_requests_bytes{instance_manager="instance-manager-e-2189ed13",instance_manager_type="engine",node="worker-2"} 0
|
マネージャー 指標名 | 例示する | 例 |
---|
longhorn_manager_cpu_usage_millicpu | このLonghorn ManagerのCPU使用率 | longhorn_manager_cpu_usage_millicpu{manager="longhorn-manager-5rx2n",node="worker-2"} 27 | longhorn_manager_メモリ使用量バイト | この Longhorn Manager のメモリ使用量 | longhorn_manager_memory_usage_bytes{manager="longhorn-manager-5rx2n",node="worker-2"} 2.6144768e+07
|
KubeletボリュームメトリックをサポートKubelet ボリューム メトリックについて Kubelet は次のメトリックを公開します。 - kubelet_volume_stats_容量バイト
- kubelet_volume_stats_available_bytes
- kubelet_volume_stats_使用バイト数
- kubelet_ボリューム統計_inodes
- kubelet_volume_stats_inodes_free
- kubelet_volume_stats_inodes_used
これらのメトリックは、Longhorn ブロック デバイス内の PVC ファイル システムに関連する情報を測定します。 これらは、Longhorn ブロック デバイスに固有の情報を測定する longhorn_volume_* メトリックとは異なります。 Kubelet メトリクス エンドポイントをスクレイピングして PVC のステータスを取得し、PVC のストレージ容量不足などの異常なイベントに関するアラートを設定する監視システムを設定できます。 一般的な監視設定は prometheus-operator/kube-prometheus-stack です。これは、kubelet_volume_stats_* メトリックをスクレイピングし、それらのダッシュボードとアラート ルールを提供します。 Longhorn CSI プラグインのサポートv1.1.0 では、Longhorn CSI プラグインは CSI 仕様に従って NodeGetVolumeStats RPC をサポートします。 これにより、kubelet は Longhorn CSI プラグインを照会して PVC のステータスを取得できるようになります。 kubelet は、この情報を kubelet_volume_stats_* メトリックで公開します。 Longhorn アラート ルールの例以下に、参考として Longhorn アラート ルールのサンプルをいくつか示します。利用可能なすべての Longhorn メトリックのリストと独自のアラート ルールの作成については、ここを参照してください。 - apiバージョン: monitored.coreos.com/v1
- 種類: PrometheusRule
- メタデータ:
- ラベル:
- プロメテウス:ロングホーン
- 役割: アラートルール
- 名前: プロメテウス・ロングホーン・ルール
- 名前空間: 監視
- 仕様:
- グループ:
- -名前: longhorn.rules
- ルール:
- - アラート: LonghornVolumeActualSpaceUsedWarning
- 注釈:
- 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}によって実際に使用されている領域は {{$value}}% の容量で
- 5分以上。
- 要約: 実際に使用されたスペース Longhornのボリュームは容量の90% を超えています。
- 式: (longhorn_volume_actual_size_bytes / longhorn_volume_capacity_bytes) * 100 > 90
- 5mの場合
- ラベル:
- 問題: 実際に使用されているスペース {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}が高くなっています。
- 重大度: 警告
- - アラート: LonghornVolumeStatusCritical
- 注釈:
- 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}に障害が発生しました
- 2分以上。
- 概要: Longhorn ボリューム {{$labels.volume}} に障害があります
- 式: longhorn_volume_robustness == 3
- 5mの場合
- ラベル:
- 問題: Longhorn ボリューム {{$labels.volume}} に障害があります。
- 深刻度: 重大
- - アラート: LonghornVolumeStatusWarning
- 注釈:
- 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}が劣化しています
- 5分以上。
- 概要: Longhorn ボリューム {{$labels.volume}}が劣化しています
- 式: longhorn_volume_robustness == 2
- 5mの場合
- ラベル:
- 問題: Longhorn ボリューム {{$labels.volume}}が劣化しています。
- 重大度: 警告
- - アラート: LonghornNodeStorageWarning
- 注釈:
- 説明:ノード {{$labels.node}}の使用済みストレージは {{$value}}% の容量で
- 5分以上。
- 概要:ノードの使用済みストレージが容量の70% を超えています。
- 式: (longhorn_node_storage_usage_bytes / longhorn_node_storage_capacity_bytes) * 100 > 70
- 5mの場合
- ラベル:
- 問題:ノード {{$labels.node}}の使用済みストレージが高くなっています。
- 重大度: 警告
- - アラート: LonghornDiskStorageWarning
- 注釈:
- 説明: ノード { {$labels.node}}のディスク{{$labels.disk} }の使用済みストレージは {{$value}}% の容量で
- 5分以上。
- 概要:ディスクの使用済みストレージが容量の70% を超えています。
- 式: (longhorn_disk_usage_bytes / longhorn_disk_capacity_bytes) * 100 > 70
- 5mの場合
- ラベル:
- 問題: ノード{{$labels.node}}のディスク{{$labels.disk} }の使用済みストレージが高くなっています。
- 重大度: 警告
- - 警告: LonghornNodeDown
- 注釈:
- 説明: 5 分以上オフラインになっている Longhorn ノードが {{$value}} 個あります。
- 概要: Longhorn ノードはオフラインです
- 式: longhorn_node_total - ( count (longhorn_node_status{condition= "ready" }==1) OR ()ベクトル(0))
- 5mの場合
- ラベル:
- 問題: {{$value}} 個の Longhorn ノードがオフラインです
- 深刻度: 重大
- - アラート: LonghornIntanceManagerCPUUsageWarning
- 注釈:
- 説明: {{$labels.node}}上のLonghorn インスタンス マネージャー { {$labels.instance_manager}} の CPU 使用率 / CPU 要求は{{$value}}%です。
- 5分以上。
- 概要: {{$labels.node}}上のLonghorn インスタンス マネージャー { {$labels.instance_manager}} の CPU 使用率/CPU 要求が300% を超えています。
- 式: (longhorn_instance_manager_cpu_usage_millicpu/longhorn_instance_manager_cpu_requests_millicpu) * 100 > 300
- 5mの場合
- ラベル:
- 問題: {{$labels.node}}上のLonghorn インスタンス マネージャー { {$labels.instance_manager}} が CPU 要求を 3 倍消費します。
- 重大度: 警告
- - アラート: LonghornNodeCPUUsageWarning
- 注釈:
- 説明: Longhornノード {{$labels.node}} のCPU使用率/CPU容量は{{$value}}%です
- 5分以上。
- 概要: Longhorn ノード {{$labels.node}} で 5 分以上CPU 負荷が高くなっています。
- 式: (longhorn_node_cpu_usage_millicpu / longhorn_node_cpu_capacity_millicpu) * 100 > 90
- 5mの場合
- ラベル:
- 問題: Longhorn ノード {{$labels.node}} で CPU 負荷が高くなります。
- 重大度: 警告
アラートルールを定義する方法の詳細については、https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#alerting-rules を参照してください。 |