Longhorn、エンタープライズレベルのクラウドネイティブコンテナ分散ストレージ監視

Longhorn、エンタープライズレベルのクラウドネイティブコンテナ分散ストレージ監視

[[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

監視名前空間を作成する

  1. APIバージョン: v1
  2. 種類: 名前空間
  3. メタデータ:
  4. 名前: モニタリング

Prometheus Operatorのインストール

Prometheus Operator と、それに必要な ClusterRole、ClusterRoleBinding、およびサービス アカウントをデプロイします。

  1. apiバージョン: rbac。認証.k8s.io/v1
  2. 種類: ClusterRoleBinding
  3. メタデータ:
  4. ラベル:
  5. app.kubernetes.io/コンポーネント: コントローラー
  6. app.kubernetes.io/名前: prometheus-operator
  7. app.kubernetes.io/バージョン: v0.38.3
  8. 名前: プロメテウスオペレーター
  9. 名前空間: 監視
  10. ロールリファレンス:
  11. apiGroup : rbac.authorization.k8s.io
  12. 種類: ClusterRole
  13. 名前: プロメテウスオペレーター
  14. 科目:
  15. - 種類: サービスアカウント
  16. 名前: プロメテウスオペレーター
  17. 名前空間: 監視
  18. ---  
  19. apiバージョン: rbac。認証.k8s.io/v1
  20. 種類: ClusterRole
  21. メタデータ:
  22. ラベル:
  23. app.kubernetes.io/コンポーネント: コントローラー
  24. app.kubernetes.io/名前: prometheus-operator
  25. app.kubernetes.io/バージョン: v0.38.3
  26. 名前: プロメテウスオペレーター
  27. 名前空間: 監視
  28. ルール:
  29. -apiグループ:
  30. apiextensions.k8s.io の拡張機能
  31. リソース:
  32. - カスタムリソース定義
  33. 動詞:
  34. -作成する 
  35. -apiグループ:
  36. apiextensions.k8s.io の拡張機能
  37. リソース名:
  38. -alertmanagers.monitoring.coreos.com
  39. - podmonitors.monitoring.coreos.com
  40. - prometheuses.monitoring.coreos.com
  41. - prometheusrules.monitoring.coreos.com
  42. -servicemonitors.monitoring.coreos.com
  43. - thanosrulers.monitoring.coreos.com
  44. リソース:
  45. - カスタムリソース定義
  46. 動詞:
  47. - 得る
  48. -アップデート 
  49. -apiグループ:
  50. - モニタリング
  51. リソース:
  52. - アラートマネージャー
  53. - アラートマネージャー/ファイナライザー
  54. - プロメテウス
  55. - プロメテウス/ファイナライザー
  56. -サノスルーラー
  57. - サノスルーラー/ファイナライザー
  58. -サービスモニター
  59. - ポッドモニター
  60. -プロメテウスルール
  61. 動詞:
  62. - '*'  
  63. -apiグループ:
  64. - アプリ
  65. リソース:
  66. - ステートフルセット
  67. 動詞:
  68. - '*'  
  69. -apiグループ:
  70. - 「」  
  71. リソース:
  72. - 構成マップ
  73. - 秘密
  74. 動詞:
  75. - '*'  
  76. -apiグループ:
  77. - 「」  
  78. リソース:
  79. - ポッド
  80. 動詞:
  81. - リスト
  82. -消去 
  83. -apiグループ:
  84. - 「」  
  85. リソース:
  86. - サービス
  87. - サービス/ファイナライザー
  88. - エンドポイント
  89. 動詞:
  90. - 得る
  91. -作成する 
  92. -アップデート 
  93. -消去 
  94. -apiグループ:
  95. - 「」  
  96. リソース:
  97. - ノード
  98. 動詞:
  99. - リスト
  100. - 時計
  101. -apiグループ:
  102. - 「」  
  103. リソース:
  104. - 名前空間
  105. 動詞:
  106. - 得る
  107. - リスト
  108. - 時計
  109. ---  
  110. APIバージョン: アプリ/v1
  111. 種類: デプロイメント
  112. メタデータ:
  113. ラベル:
  114. app.kubernetes.io/コンポーネント: コントローラー
  115. app.kubernetes.io/名前: prometheus-operator
  116. app.kubernetes.io/バージョン: v0.38.3
  117. 名前: プロメテウスオペレーター
  118. 名前空間: 監視
  119. 仕様:
  120. レプリカ: 1
  121. セレクタ:
  122. 一致ラベル:
  123. app.kubernetes.io/コンポーネント: コントローラー
  124. app.kubernetes.io/名前: prometheus-operator
  125. テンプレート:
  126. メタデータ:
  127. ラベル:
  128. app.kubernetes.io/コンポーネント: コントローラー
  129. app.kubernetes.io/名前: prometheus-operator
  130. app.kubernetes.io/バージョン: v0.38.3
  131. 仕様:
  132. コンテナ:
  133. -引数:
  134. - --kubelet-service=kube-system/kubelet  
  135. - --logtostderr=true  
  136. - --config-reloader-image=jimmidyson/configmap-reload:v0.3.0  
  137. - --prometheus-config-reloader=quay.io/prometheus-operator/prometheus-config-reloader:v0.38.3  
  138. イメージ: quay.io/prometheus-operator/prometheus-operator:v0.38.3
  139. 名前: プロメテウスオペレーター
  140. ポート:
  141. - コンテナポート: 8080
  142. 名前: http
  143. リソース:
  144. 制限:
  145. CPU: 200m
  146. メモリ: 200Mi
  147. リクエスト:
  148. CPU: 100m
  149. メモリ: 100Mi
  150. セキュリティコンテキスト:
  151. 権限昇格を許可: false  
  152. ノードセレクタ:
  153. beta.kubernetes.io/os: Linux の場合
  154. セキュリティコンテキスト:
  155. 非ルートとして実行: true  
  156. 実行ユーザー: 65534
  157. サービスアカウント名: prometheus-operator
  158. ---  
  159. APIバージョン: v1
  160. 種類: サービスアカウント
  161. メタデータ:
  162. ラベル:
  163. app.kubernetes.io/コンポーネント: コントローラー
  164. app.kubernetes.io/名前: prometheus-operator
  165. app.kubernetes.io/バージョン: v0.38.3
  166. 名前: プロメテウスオペレーター
  167. 名前空間: 監視
  168. ---  
  169. APIバージョン: v1
  170. 種類: サービス
  171. メタデータ:
  172. ラベル:
  173. app.kubernetes.io/コンポーネント: コントローラー
  174. app.kubernetes.io/名前: prometheus-operator
  175. app.kubernetes.io/バージョン: v0.38.3
  176. 名前: プロメテウスオペレーター
  177. 名前空間: 監視
  178. 仕様:
  179. クラスターIP: なし
  180. ポート:
  181. -名前: http
  182. ポート: 8080
  183. ターゲットポート: http
  184. セレクタ:
  185. app.kubernetes.io/コンポーネント: コントローラー
  186. app.kubernetes.io/名前: prometheus-operator

Longhorn ServiceMonitor のインストール

Longhorn ServiceMonitor には、Longhorn バックエンド サービスを選択するためのラベル セレクター app:longhorn-manager があります。その後、Prometheus CRD に Longhorn ServiceMonitor を含めることができるため、Prometheus サーバーはすべての Longhorn マネージャー ポッドとそのエンドポイントを検出できるようになります。

  1. apiバージョン: monitored.coreos.com/v1
  2. 種類: サービスモニター
  3. メタデータ:
  4. 名前: longhorn-prometheus-servicemonitor
  5. 名前空間: 監視
  6. ラベル:
  7. 名前: longhorn-prometheus-servicemonitor
  8. 仕様:
  9. セレクタ:
  10. 一致ラベル:
  11. アプリ: longhorn-manager
  12. 名前空間セレクター:
  13. 一致する名前:
  14. -ロングホーンシステム
  15. エンドポイント:
  16. - ポート: マネージャー

Prometheus AlertManagerのインストールと設定

3 つのインスタンスを使用して、可用性の高い Alertmanager デプロイメントを作成します。

  1. apiバージョン: monitored.coreos.com/v1
  2. 種類: アラートマネージャー
  3. メタデータ:
  4. 名前: ロングホーン
  5. 名前空間: 監視
  6. 仕様:
  7. レプリカ: 3

有効な構成が提供されない限り、Alertmanager インスタンスは起動できません。 Alertmanager の設定に関する詳細な手順については、こちらをご覧ください。次のコードは構成例を示しています。

  1. グローバル:
  2. 解決タイムアウト: 5分
  3. ルート:
  4. group_by: [アラート名]
  5. 受信者: email_and_slack
  6. 受信者:
  7. -名前: email_and_slack
  8. メール設定:
  9. - to : <通知送信するメールアドレス>
  10. from : <送信者アドレス>
  11. smarthost: <電子メールが送信される SMTP ホスト>
  12. # SMTP認証情報。
  13. auth_username: <ユーザー名>
  14. auth_identity: <アイデンティティ>
  15. auth_password: <パスワード>
  16. ヘッダー:
  17. 件名: 「ロングホーンアラート」  
  18. テキスト: |-
  19. {{ 範囲 .アラート }}
  20. *警告:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
  21. *説明:* {{ .Annotations.description }}
  22. *詳細:*
  23. {{ range .Labels.SortedPairs }} • *{{ .名前}}:* `{{ .値 }}`
  24. {{終わり}}
  25. {{終わり}}
  26. slack_configs:
  27. - api_url: <Slack ウェブフック URL>
  28. チャンネル: <チャンネルまたは ユーザー 通知を送信する>
  29. テキスト: |-
  30. {{ 範囲 .アラート }}
  31. *警告:* {{ .Annotations.summary }} - `{{ .Labels.severity }}`
  32. *説明:* {{ .Annotations.description }}
  33. *詳細:*
  34. {{ range .Labels.SortedPairs }} • *{{ .名前}}:* `{{ .値 }}`
  35. {{終わり}}
  36. {{終わり}}

上記の Alertmanager 構成を alertmanager.yaml というファイルに保存し、kubectl を使用してそこからシークレットを作成します。

Alertmanager インスタンスでは、シークレット リソース名が alertmanager-{ALERTMANAGER_NAME} の形式に従う必要があります。前のステップでは、Alertmanagerの名前はlonghornなので、シークレット名はalertmanager-longhornにする必要があります。

  1. $ kubectlシークレットジェネリックアラートマネージャーロングホーンを作成します--from-file=alertmanager.yaml -n モニタリング 

Alertmanager の Web UI を表示できるようにするには、サービスを通じて公開します。簡単な方法は、NodePort タイプの Service を使用することです。

  1. APIバージョン: v1
  2. 種類: サービス
  3. メタデータ:
  4. 名前: alertmanager-longhorn
  5. 名前空間: 監視
  6. 仕様:
  7. タイプ: NodePort
  8. ポート:
  9. -名前: ウェブ
  10. ノードポート: 30903
  11. ポート: 9093
  12. プロトコル: TCP
  13. ターゲットポート: web
  14. セレクタ:
  15. アラートマネージャ: ロングホーン

上記のサービスを作成すると、ノードの IP とポート 30903 を介して Alertmanager Web UI にアクセスできるようになります。

上記の NodePort サービスは TLS 接続経由で通信しないため、このサービスを使用して簡単に検証してみましょう。サービス タイプを ClusterIP に変更し、Ingress コントローラーを設定して、TLS 接続を介して Alertmanager の Web UI を公開することもできます。

Prometheusサーバーのインストールと設定

アラート条件を定義する PrometheusRule カスタム リソースを作成します。

  1. apiバージョン: monitored.coreos.com/v1
  2. 種類: PrometheusRule
  3. メタデータ:
  4. ラベル:
  5. プロメテウス:ロングホーン
  6. 役割: アラートルール
  7. 名前: プロメテウス・ロングホーン・ルール
  8. 名前空間: 監視
  9. 仕様:
  10. グループ:
  11. -名前: longhorn.rules
  12. ルール:
  13. - アラート: LonghornVolumeUsageCritical
  14. 注釈:
  15. 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}  { {$value}}% 使用済み 
  16. 5分以上。
  17. 概要: Longhorn ボリューム容量の使用率90% を超えています。
  18. 式: 100 * (longhorn_volume_usage_bytes / longhorn_volume_capacity_bytes) > 90
  19. 5mの場合
  20. ラベル:
  21. 問題: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}の使用が重大です
  22. 深刻度: 重大

アラートルールの定義方法の詳細については、https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#alerting-rules を参照してください。

RBAC 認証が有効になっている場合は、Prometheus Pod の ClusterRole と ClusterRoleBinding を作成します。

  1. APIバージョン: v1
  2. 種類: サービスアカウント
  3. メタデータ:
  4. 名前: プロメテウス
  5. 名前空間: 監視
  6. apiバージョン: rbac。認証.k8s.io/v1beta1
  7. 種類: ClusterRole
  8. メタデータ:
  9. 名前: プロメテウス
  10. 名前空間: 監視
  11. ルール:
  12. -apiグループ: [ "" ]
  13. リソース:
  14. - ノード
  15. - サービス
  16. - エンドポイント
  17. - ポッド
  18. 動詞: [ 「取得する」 「一覧表示する」 「見る」 ]
  19. -apiグループ: [ "" ]
  20. リソース:
  21. - 構成マップ
  22. 動詞: [ "得る" ]
  23. - 非リソースURL: [ "/metrics" ]
  24. 動詞: [ "得る" ]
  25. apiバージョン: rbac。認証.k8s.io/v1beta1
  26. 種類: ClusterRoleBinding
  27. メタデータ:
  28. 名前: プロメテウス
  29. ロールリファレンス:
  30. apiGroup : rbac.authorization.k8s.io
  31. 種類: ClusterRole
  32. 名前: プロメテウス
  33. 科目:
  34. - 種類: サービスアカウント
  35. 名前: プロメテウス
  36. 名前空間: 監視

Prometheus カスタム リソースを作成します。仕様で Longhorn サービス モニターと Longhorn ルールを選択したことに注意してください。

  1. apiバージョン: monitored.coreos.com/v1
  2. 種類: プロメテウス
  3. メタデータ:
  4. 名前: プロメテウス
  5. 名前空間: 監視
  6. 仕様:
  7. レプリカ: 2
  8. サービスアカウント名: プロメテウス
  9. 警告:
  10. アラートマネージャー:
  11. - 名前空間: 監視
  12. 名前: alertmanager-longhorn
  13. ポート: ウェブ
  14. サービスモニターセレクター:
  15. 一致ラベル:
  16. 名前: longhorn-prometheus-servicemonitor
  17. ルールセレクター:
  18. 一致ラベル:
  19. プロメテウス:ロングホーン
  20. 役割: アラートルール

Prometheus サーバーの Web UI を表示できるようにするには、サービス経由で公開します。簡単な方法は、NodePort タイプの Service を使用することです。

  1. APIバージョン: v1
  2. 種類: サービス
  3. メタデータ:
  4. 名前: プロメテウス
  5. 名前空間: 監視
  6. 仕様:
  7. タイプ: NodePort
  8. ポート:
  9. -名前: ウェブ
  10. ノードポート: 30904
  11. ポート: 9090
  12. プロトコル: TCP
  13. ターゲットポート: web
  14. セレクタ:
  15. プロメテウス: プロメテウス

上記のサービスを作成すると、ノードの IP とポート 30904 を介して Prometheus サーバーの Web UI にアクセスできるようになります。

この時点で、Prometheus サーバー UI の [ターゲットとルール] セクションで、すべての Longhorn マネージャー ターゲットと Longhorn ルールを確認できるはずです。

上記の NodePort サービスは TLS 接続経由で通信しないため、このサービスを使用して簡単に検証してみましょう。サービス タイプを ClusterIP に変更し、Ingress コントローラーを設定して、TLS 接続経由で Prometheus サーバーの Web UI を公開することもできます。

Grafanaをインストールする

Grafana データ ソース構成を作成します。

  1. APIバージョン: v1
  2. 種類: ConfigMap
  3. メタデータ:
  4. 名前: grafana-datasources
  5. 名前空間: 監視
  6. データ:
  7. プロメテウスyaml: |-
  8. {
  9. "apiバージョン" : 1,
  10. 「データソース」 : [
  11. {
  12. 「アクセス」 「プロキシ」
  13. "編集可能" : true
  14. 「名前」 「プロメテウス」
  15. "組織ID" : 1,
  16. 「タイプ」 : 「プロメテウス」
  17. 「URL」 : 「http://prometheus:9090」
  18. 「バージョン」 : 1
  19. }
  20. ]
  21. }

Grafana デプロイメントを作成します。

  1. APIバージョン: アプリ/v1
  2. 種類: デプロイメント
  3. メタデータ:
  4. 名前: グラファナ
  5. 名前空間: 監視
  6. ラベル:
  7. アプリ: グラファナ
  8. 仕様:
  9. レプリカ: 1
  10. セレクタ:
  11. 一致ラベル:
  12. アプリ: グラファナ
  13. テンプレート:
  14. メタデータ:
  15. 名前: グラファナ
  16. ラベル:
  17. アプリ: グラファナ
  18. 仕様:
  19. コンテナ:
  20. -名前: グラファナ
  21. イメージ: grafana/grafana:7.1.5
  22. ポート:
  23. -名前: グラファナ
  24. コンテナポート: 3000
  25. リソース:
  26. 制限:
  27. メモリ: "500Mi"  
  28. CPU: "300m"  
  29. リクエスト:
  30. メモリ: "500Mi"  
  31. CPU: "200m"  
  32. ボリュームマウント:
  33. - マウントパス: /var/lib/grafana
  34. 名前: grafana-storage
  35. - マウントパス: /etc/grafana/provisioning/datasources
  36. 名前: grafana-datasources
  37. 読み取り専用: false  
  38. ボリューム:
  39. -名前: grafana-storage
  40. 空ディレクトリ: {}
  41. -名前: grafana-datasources
  42. 構成マップ:
  43. デフォルトモード: 420
  44. 名前: grafana-datasources

NodePort 32000 で Grafana を公開します。

  1. APIバージョン: v1
  2. 種類: サービス
  3. メタデータ:
  4. 名前: グラファナ
  5. 名前空間: 監視
  6. 仕様:
  7. セレクタ:
  8. アプリ: グラファナ
  9. タイプ: NodePort
  10. ポート:
  11. - ポート: 3000
  12. ターゲットポート: 3000
  13. ノードポート: 32000

上記の NodePort サービスは TLS 接続を介して通信しないため、このサービスを使用して簡単に検証してみましょう。サービス タイプを ClusterIP に変更し、Ingress コントローラーを設定して、TLS 接続経由で Grafana を公開することもできます。

ポート 32000 上の任意のノード IP を使用して Grafana ダッシュボードにアクセスします。デフォルトの資格情報は次のとおりです。

  1. ユーザー: admin
  2. パスワード: 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 モニタリングに追加できます。

  1. apiバージョン: monitored.coreos.com/v1
  2. 種類: サービスモニター
  3. メタデータ:
  4. 名前: longhorn-prometheus-servicemonitor
  5. 名前空間: longhorn-system
  6. ラベル:
  7. 名前: longhorn-prometheus-servicemonitor
  8. 仕様:
  9. セレクタ:
  10. 一致ラベル:
  11. アプリ: longhorn-manager
  12. 名前空間セレクター:
  13. 一致する名前:
  14. -ロングホーンシステム
  15. エンドポイント:
  16. - ポート: マネージャー

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 は次のメトリックを公開します。

  1. kubelet_volume_stats_容量バイト
  2. kubelet_volume_stats_available_bytes
  3. kubelet_volume_stats_使用バイト数
  4. kubelet_ボリューム統計_inodes
  5. kubelet_volume_stats_inodes_free
  6. 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 メトリックのリストと独自のアラート ルールの作成については、ここを参照してください。

  1. apiバージョン: monitored.coreos.com/v1
  2. 種類: PrometheusRule
  3. メタデータ:
  4. ラベル:
  5. プロメテウス:ロングホーン
  6. 役割: アラートルール
  7. 名前: プロメテウス・ロングホーン・ルール
  8. 名前空間: 監視
  9. 仕様:
  10. グループ:
  11. -名前: longhorn.rules
  12. ルール:
  13. - アラート: LonghornVolumeActualSpaceUsedWarning
  14. 注釈:
  15. 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}によって実際に使用されている領域  {{$value}}% の容量 
  16. 5分以上。
  17. 要約: 実際に使用されたスペース  Longhornボリュームは容量90% を超えています
  18. 式: (longhorn_volume_actual_size_bytes / longhorn_volume_capacity_bytes) * 100 > 90
  19. 5mの場合
  20. ラベル:
  21. 問題: 実際に使用されているスペース  {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}高くなってます。
  22. 重大度: 警告
  23. - アラート: LonghornVolumeStatusCritical
  24. 注釈:
  25. 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}障害が発生しました 
  26. 2分以上。
  27. 概要: Longhorn ボリューム {{$labels.volume}} に障害があります
  28. 式: longhorn_volume_robustness == 3
  29. 5mの場合
  30. ラベル:
  31. 問題: Longhorn ボリューム {{$labels.volume}} に障害があります
  32. 深刻度: 重大
  33. - アラート: LonghornVolumeStatusWarning
  34. 注釈:
  35. 説明: {{$labels.node}}上のLonghorn ボリューム{{$labels.volume}}劣化しています 
  36. 5分以上。
  37. 概要: Longhorn ボリューム {{$labels.volume}}劣化しています
  38. 式: longhorn_volume_robustness == 2
  39. 5mの場合
  40. ラベル:
  41. 問題: Longhorn ボリューム {{$labels.volume}}劣化しています。
  42. 重大度: 警告
  43. - アラート: LonghornNodeStorageWarning
  44. 注釈:
  45. 説明:ノード {{$labels.node}}使用済みストレージ  {{$value}}% の容量 
  46. 5分以上。
  47. 概要:ノード使用済みストレージ容量70% を超えています
  48. 式: (longhorn_node_storage_usage_bytes / longhorn_node_storage_capacity_bytes) * 100 > 70
  49. 5mの場合
  50. ラベル:
  51. 問題:ノード {{$labels.node}}使用済みストレージが高くなっています。
  52. 重大度: 警告
  53. - アラート: LonghornDiskStorageWarning
  54. 注釈:
  55. 説明: ノード { {$labels.node}}ディスク{{$labels.disk} }使用済みストレージ  {{$value}}% の容量 
  56. 5分以上。
  57. 概要:ディスク使用済みストレージ容量70% を超えています
  58. 式: (longhorn_disk_usage_bytes / longhorn_disk_capacity_bytes) * 100 > 70
  59. 5mの場合
  60. ラベル:
  61. 問題: ノード{{$labels.node}}ディスク{{$labels.disk} }使用済みストレージが高くなっています。
  62. 重大度: 警告
  63. - 警告: LonghornNodeDown
  64. 注釈:
  65. 説明: 5 分以上オフラインになっている Longhorn ノードが {{$value}} 個あります。
  66. 概要: Longhorn ノードはオフラインです
  67. 式: longhorn_node_total - ( count (longhorn_node_status{condition= "ready" }==1) OR   ()ベクトル(0))
  68. 5mの場合
  69. ラベル:
  70. 問題: {{$value}} 個の Longhorn ノードがオフラインです
  71. 深刻度: 重大
  72. - アラート: LonghornIntanceManagerCPUUsageWarning
  73. 注釈:
  74. 説明: {{$labels.node}}上のLonghorn インスタンス マネージャー { {$labels.instance_manager}} の CPU 使用率 / CPU 要求{{$value}}%です  
  75. 5分以上。
  76. 概要: {{$labels.node}}上のLonghorn インスタンス マネージャー { {$labels.instance_manager}} の CPU 使用率/CPU 要求300% を超えています。
  77. 式: (longhorn_instance_manager_cpu_usage_millicpu/longhorn_instance_manager_cpu_requests_millicpu) * 100 > 300
  78. 5mの場合
  79. ラベル:
  80. 問題: {{$labels.node}}上のLonghorn インスタンス マネージャー { {$labels.instance_manager}} が CPU 要求を 3 倍消費します。
  81. 重大度: 警告
  82. - アラート: LonghornNodeCPUUsageWarning
  83. 注釈:
  84. 説明: Longhornノード {{$labels.node}} のCPU使用率/CPU容量{{$value}}%です 
  85. 5分以上。
  86. 概要: Longhorn ノード {{$labels.node}} で 5 分以上CPU 負荷が高くなっています
  87. 式: (longhorn_node_cpu_usage_millicpu / longhorn_node_cpu_capacity_millicpu) * 100 > 90
  88. 5mの場合
  89. ラベル:
  90. 問題: Longhorn ノード {{$labels.node}} で CPU 負荷が高くなります。
  91. 重大度: 警告

アラートルールを定義する方法の詳細については、https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#alerting-rules を参照してください。

<<:  効率的な運用とイノベーションの加速により、SAP は Yongtai Biopharmaceuticals が患者にデジタルケアを提供できるよう支援します。

>>:  Kafka、RocketMQ、Pulsar の包括的な比較!

推薦する

標準相互接続:618プロモーション、ロサンゼルス50G高防御VPSの年間支払いは178元から

Standard Interconnect(arebz)は、公式でよく宣伝されています:中国NO1の...

検索エンジンがあなたのウェブサイトを好まないのはなぜでしょうか?

検索エンジンがコンテンツを効果的に閲覧できない場合、ウェブサイトにどれだけ努力を注いでも無駄になって...

#特別オファー# servarica: カナダの大型ハードドライブ VPS、年間 29 ドル、1G メモリ/1 コア/1T ハードドライブ/無制限トラフィック

servarica(カナダの会社、2010年~)は数日前にブラックフライデー\サイバーマンデースーパ...

これからのインターネットマーケティング必修コース:CEOに正しい個性を与える方法

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますCEOマー...

BandwagonHost の公式ウェブサイトにアクセスできません。BandwagonHost の新しいアドレスは何ですか?

最近、ある人から質問を受けました。「BandwagonHost の Web サイトが開けず、Band...

分類情報ウェブサイトを巧みに利用して、従来の業界のSEOトラフィックを迅速に収益化します。

序文: 1. トラフィック収益化とコンバージョン率の研究に注力しており、1~2年ごとにトラフィック収...

SoSo 検索エンジン最適化 SEO 標準

序文SEO(検索エンジン最適化)とは、検索エンジンの検索特性とランキングルールに基づいてウェブサイト...

実用的なヒント | モバイル インターネット 100 万レベルのチャネル プロモーション方法

チャネル全体の操作はCAC を中心に実行されます。 CAC の制御可能な範囲内で、ボリュームを最大化...

kvmla-香港 VPS/127 元/メモリ 4g/ハードディスク 65g/トラフィック無制限//Windows 中国語版

kvmla.pro の香港データセンターが補充されました: 沙田データセンターと PN データセンタ...

ウェブサイトの基盤をしっかり構築する方法

本日お伝えしたいのは、Web サイトの初期段階で強固な基盤を築く方法です。良いスタートは必ずしも戦い...

インダストリー4.0時代の技術革新を促進するために、弾力性のあるエッジコンピューティングを導入する

中国、北京、2021 年 9 月 14 日 - 私たちが経験しているインダストリー 4.0 は、新興...

オンライン文学市場の収益性の高い「出発点」をめぐる競争はすでに始まっている

利益を上げ始めたばかりのオンライン文学市場において、強力な侵入者であるテンセントと対峙したシャンダは...

USクラウドサーバー\US VPS推奨「トップ」マーチャント「Vultr」

Vultrは2009年に設立された、アメリカのChoopaデータセンター傘下のクラウドサーバーブラン...

bhost-60% オフ/256MB RAM/512MB Vswap/英国

bhost は 2002 年に設立されたという老舗のイギリスのホスティング会社です。現在は open...

一般的なコンテナイメージ構築ツールとソリューションの紹介

[[420216]] Docker を使用する場合、通常は docker build を使用してイメ...