Solutions前書きトレースとロギングに加えて、監視とアラートはKubernetesの可観測性スタックの重要なコンポーネントです。Kubernetesクラスターの監視を設定すると、リソースの使用状況を追跡し、アプリケーションエラーを分析およびデバッグできます。監視システムは通常、メトリックデータと視覚化レイヤーを格納する時系列データベースで構成されます。アラートレイヤーはアラートを作成および管理し、必要に応じて統合および外部サービスに渡します。最後に、1つ以上のコンポーネントが、この監視スタックによるアラート用に保存、視覚化、および処理されるメトリックデータを生成または公開します。人気のある監視ソリューションの1つは、オープンソースのhttps://prometheus.io/[Prometheus]、https://grafana.com/[Grafana]、およびhttps://github.com/prometheus/alertmanager[Alertmanager]スタックです。*は、時系列データベースおよび監視ツールであり、メトリックエンドポイントをポーリングし、これらのエンドポイントによって公開されたデータをスクレイピングおよび処理します。PromQL、時系列データクエリ言語を使用して、このデータをクエリできます。*は、メトリックデータのダッシュボードとグラフを作成できるデータ視覚化および分析ツールです。*は、通常Prometheusと一緒にデプロイされ、スタックのアラートレイヤーを形成し、Prometheusによって生成されたアラートを処理し、重複排除、グループ化、電子メールやhttps://www.pagerduty.com/[PagerDuty]などの統合にルーティングします。[kube-state-metrics]やhttps://github.com/prometheus/node_exporter[node_exporter]などのツールは、クラスターレベルのKubernetesオブジェクトメトリックを次のように公開します。CPUやメモリ使用量などのマシンレベルのメトリックも含まれます。Operator]およびhttps://github.com/coreos/kube-prometheus[kube-prometheus]プロジェクト。これらのプロジェクトは、PrometheusとGrafanaの標準構成とダッシュボードを作成し、下位レベルのKubernetesオブジェクト定義の一部を抽象化します。OperatorとKubernetesクラスターの監視に役立つダッシュボード、ルール、およびアラートのデフォルトセットとともに、上記のコンポーネントの残り。prometheus-operator`ヘルムチャートをインストールする方法を示します。チュートリアルの終わりまでに、完全な監視スタックをクラスターにインストールします。前提条件このチュートリアルを実行するには、次のものが必要です。Kubernetesクラスター。[公式ドキュメント]をご覧ください。Managerを使用してKubernetesクラスターにソフトウェアをインストールする方法]。Helmチャートをインストールする前に、DigitalOcean固有の設定パラメーターでチャートのデフォルトの一部をオーバーライドするカスタム値ファイルを作成します。Install]セクションを参照してください。+`というファイルを作成して開きます。custom-values.yaml次のカスタム値をコピーして貼り付けます。Kubernetesで公開されていないKubernetesコントロールプレーンコンポーネントの監視が無効になります。file]のチャートにパッケージ化されているデフォルト値の一部をオーバーライドします。最初に、Prometheus、Grafana、Alertmanagerの永続ストレージを有効にして、Podの再起動後もデータが保持されるようにします。+」永続ボリュームクレーム(PVC)を定義しています。監視ストレージのニーズに合わせて、これらのPVCのサイズを変更する必要があります。Volumes]を参照してください。*ユーザーでhttps://grafana.com/[Grafana]メトリックダッシュボードにログインするために使用する安全なパスワードに置き換えます。[node-exporter]に別のポートを設定します。Node-exporterは各Kubernetesノードで実行され、OSおよびハードウェアメトリックをPrometheusに提供します。Kubernetesファイアウォールのデフォルトを回避するには、デフォルトポートを変更する必要があります。これにより、ポート9100はブロックされますが、30000〜32767の範囲のポートは許可されます。node-exporterのカスタムファイアウォールルールを設定できます。[ファイアウォールルールの設定方法]を参照してください。[コントロールプレーンコンポーネント]のメトリックコレクションを無効にします。Kubernetes:Kubernetesスケジューラーとコントローラーマネージャー、etcdクラスターデータストア。+`チャートの設定可能なパラメーターの完全なリストを見るには、チャートのhttps://github.com/helm/charts/tree/master/stable/prometheus-operator#configuration[Configuration]セクションを参照してくださいリポジトリREADMEまたはデフォルト値ファイル。編集が完了したら、ファイルを保存して閉じます。これで、Helmを使用してチャートをインストールできます。Kubernetesクラスターにインストールします。Prometheusオペレーター。Kubernetes_Operator_で、Prometheusクラスターを構成および管理できます。Operatorsは、ドメイン固有のロジックを、Kubernetesを使用したアプリケーションのパッケージ化、展開、および管理のプロセスに統合します。Overview]をご覧ください。[この紹介記事]をご覧ください。Operatorはhttps://kubernetes.io/docs/concepts/workloads/controllers/deployment/[Deployment]としてインストールされます。StatefulSetとしてインストールされたPrometheus。Alertmanager、Prometheusサーバーから送信されたアラートを処理し、PagerDutyや電子メールなどの統合にルーティングするサービス。Alertmanagerの詳細については、Prometheusのドキュメントのhttps://prometheus.io/docs/practices/alerting/[Alerting]を参照してください。AlertmanagerはStatefulSetとしてインストールされます。Grafanaは、Prometheusメトリックのダッシュボードを視覚化および作成できる時系列データ視覚化ツールです。Grafanaはデプロイメントとしてインストールされます。node-exporter、クラスターノード上で実行され、OSおよびハードウェアメトリックをPrometheusに提供するPrometheusエクスポーター。repo]を参照してください。node-exporterはhttps://kubernetes.io/docs/concepts/workloads/controllers/daemonset/[DaemonSet]としてインストールされます。APIサーバーをリッスンし、展開やポッドなどのKubernetesオブジェクトの状態に関するメトリックを生成するアドオンエージェント。repo]をご覧ください。kube-state-metricsはデプロイメントとしてインストールされます。デフォルトでは、node-exporter、kube-state-metrics、および上記の他のコンポーネントによって生成されたスクレイピングメトリックとともに、Prometheusは次のコンポーネントからメトリックをスクレイピングするように構成されます。CoreDNS、KubernetesクラスターDNSサーバー。kubelet、kube-apiserverと対話してノード上のポッドとコンテナーを管理するプライマリノードエージェント。cAdvisor、実行中のコンテナを検出し、CPU、メモリ、ファイルシステム、およびネットワーク使用量のメトリックを収集するノードエージェント。prometheus-operator」ヘルムチャートをインストールし、上で作成したカスタム値ファイルを渡すことから始めましょう。+`名前空間にインストールします。これにより、監視スタックを他のKubernetesクラスターから明確に分離できます。+」という名前を付け、https://www.digitalocean.com/community/tutorials/how-to-set-up-digitalocean-kubernetes-clusterで作成したカスタム値ファイルを渡します-helm-and-prometheus-operator#step-1-%E2%80%94-custom-values-fileの作成[ステップ1]で監視します。+`チャートをインストールすることを指定します。次のような出力が表示されるはずです。Kubernetesクラスターに正常にインストールされたことを示しています。`を使用してリリースポッドのステータスを確認します。"release=doks-cluster-monitoring"以下が表示されるはずです。3m36sこれは、すべての監視コンポーネントが稼働中であり、Grafanaとその事前構成済みダッシュボードを使用してPrometheusメトリックの調査を開始できることを示しています。+`サービスとして公開します。クラスター内部IPアドレスを介してのみアクセスできます。+`のようなパブリック向けタイプに更新します。Podポートに転送します。patchを使用して所定の場所にAPIオブジェクトを更新]および公式Kubernetesドキュメントのhttps://kubernetes.io/docs/concepts/services-networking/service/[Services]。monitoring次のサービスが表示されるはずです。Podのポート「3000」に転送します。file]で構成されます。8000:80次のような出力が表示されるはずです。3000これは、ローカルポート「8000」がGrafanaポッドに正常に転送されていることを示しています。+`にアクセスします。次のGrafanaログインページが表示されます。次に、*ログイン*を押します。次の*ホームダッシュボード*に移動します。[Grafanaホームページ]左側のナビゲーションバーで、[ダッシュボード]ボタンを選択し、[管理]をクリックします。[Grafanaダッシュボードタブ]次のダッシュボード管理インターフェイスが表示されます。+」ヘルムチャートによってインストールされたダッシュボードが一覧表示されます。+`によって生成されます。repo]をご覧ください。*ダッシュボードをクリックして、特定のノードのCPU、メモリ、ディスク、およびネットワークの使用状況を視覚化します。Dashboard]各ダッシュボードの説明と、それを使用してクラスターのメトリックデータを視覚化する方法は、このチュートリアルの範囲を超えています。Errors(USE)Method]ページを参照してください。Book]は、別の役立つリソースです。[分散システムの監視]。[スタートガイド]ページをご覧ください。次のステップでは、同様のプロセスに従って、Prometheus監視システムに接続して調査します。`を使用してローカルポートを転送する必要があります。+`を押してポートフォワードトンネルを閉じることができます。新しいシェルとポートフォワード接続を開くことができます。monitoring次のサービスが表示されるはずです。docks-cluster-monitoring-pr-prometheus」サービスのポート「9090」に転送します。9090:9090次のような出力が表示されるはずです。9090これは、ローカルポート「9090」がプロメテウスポッドに正常に転送されていることを示しています。+`にアクセスします。次のプロメテウス*グラフ*ページが表示されます。[プロメテウスグラフページ]ここから、Prometheusクエリ言語であるPromQLを使用して、データベースに保存されている時系列メトリックを選択および集計できます。Prometheus]を参照してください。+」の時系列のリストが表示されます。メトリックラベルで、メトリックを生成したノードとメトリックをスクレイピングしたジョブを確認できます。最後に、上部のナビゲーションバーで[ステータス]をクリックしてから[ターゲット]をクリックして、Prometheusがスクレイプするように構成されているターゲットのリストを表示します。https://www.digitalocean.com/community/tutorials/how-to-set-up-digitalocean-kubernetes-cluster-monitoring-withの冒頭に記載されている監視エンドポイントのリストに対応するターゲットのリストが表示されます。docs]を参照してください。同様のプロセスに従って、Prometheusによって生成されたアラートを管理するAlertManagerに接続します。Prometheus上部ナビゲーションバーの[アラート]をクリックして、これらのアラートを確認できます。`を使用してローカルポートを転送します。+`を押してポートフォワードトンネルを閉じることができます。新しいシェルとポートフォワード接続を開くことができます。monitoring次のサービスが表示されるはずです。docks-cluster-monitoring-pr-alertmanager」サービスのポート「9093」に転送します。9093:9093次のような出力が表示されるはずです。9093これは、ローカルポート「9093」がAlertmanagerポッドに正常に転送されていることを示しています。+`にアクセスします。*ページが表示されます。[アラートマネージャーアラートページ]ここから、アラートの発動とオプションでそれらのサイレンシングを探索できます。[Alertmanagerの公式ドキュメント]を参照してください。Kubernetesクラスターにインストールしました。delete」を使用して、監視スタックをアップグレード、ロールバック、または削除できます。[ソフトウェアのインストール方法]をご覧ください。Managerを使用したKubernetesクラスタで]。prometheus-operator`チャートは、Helmを使用してクラスターの監視を迅速に実行するのに役立ちます。Operatorを手動で構築、展開、および構成することができます。GitHubリポジトリを参照してください。