Rancher入門:Rancherを用いたKubernetesクラスターの監視

はじめに

サイオステクノロジーの塚田です。Rancher入門ブログシリーズとして、前回はRancherを使って複数のクラスターを管理する方法について解説しました。本記事では、Rancherを用いてKubernetesクラスターの監視を行う方法について解説します。具体的には、Rancher標準のモニタリング機能を有効化し、PrometheusやGrafanaと連携することでRancherのダッシュボードからクラスターのリソース消費状況をモニタリングしたり、アラート通知を実現する手順を紹介します。これにより、複数のクラスターを効率的に監視・管理できる仕組みを構築することができます。

概要

前提条件

  • Rancher Serverが構築済みであること
  • Rancher Serverにログインできること
  • Rancherから管理対象クラスターを連携済みであること

構築イメージ

RancherのダッシュボードからHelmを利用して、rancher-monitoringアプリケーションをインストールします。これにより、管理対象クラスター内にPrometheusやGrafanaなどのモニタリングツールを導入することができます。rancher-monitoringアプリケーションは、主要なオープンソースの監視およびアラート機能をクラスタに迅速に導入するためのツールです。

Prometheusは、システム監視や時系列データの収集を目的としたオープンソースのモニタリングツールです。Prometheusを利用することで、CPU使用率やメモリ使用量などのリソースデータを効率的に収集し、システムの状況を可視化することができます。
導入後のイメージは以下の通りです。

バージョン情報

  • Rancher Monitoring: 105.1.0+up61.3.2

※本記事執筆時点における最新バージョン

導入手順

モニタリングのインストール

まずはCluster Management画面上で対象クラスターのExploreを押下してクラスターのダッシュボードに遷移します。

Apps内のChartsからMonitoringを選択します。

Monitoringを選択し、Installを押下します。

インストール設定を以下のように入力し、Installを実行します。

  • Project: System
  • 他はデフォルト

 

 

インストール完了後、サイドバーからWorkloadsを選択し、Installed Appsページにrancher-monitoringが存在することを確認します。

Monitoringアプリケーションをインストールすると、クラスターダッシュボードのメニューにMonitoringが追加されます。
この画面から、インストールしたPrometheus、Grafana、Alertmanagerの詳細な設定画面に遷移することができます。

クラスターのモニタリング

rancher-monitoringアプリケーションを導入することで、RancherのUI画面に各種ダッシュボードが追加されます。これを利用して、クラスターのモニタリングを行います。

メニューからClusterを選択し、画面を下にスクロールすると、クラスターのリソース消費状況を表示するダッシュボードが追加されています。
ここではクラスター内の各NodeのCPU利用率、メモリ利用率、ディスク利用率などを確認することができます。


Summaryの横にある、Grafanaへのリンクを押下するとクラスター内で稼働しているGrafanaの画面に遷移することができます。

Grafanaへ遷移した直後は未ログイン状態です。
この状態でもダッシュボードの閲覧は可能ですが、Data Sourceの追加などができません。

Grafanaにadminユーザーとしてログインすると、Data Sourceの追加やダッシュボードの編集が実行できるようになります。
デフォルトのGrafanaのログイン情報は以下の通りです。

  • ユーザー:admin
  • パスワード:prom-operator

ワークロードのモニタリング

クラスター単位だけではなく、クラスター内部のリソースも監視することができます。手順は以下の通りです。

サイドバーからWorkloadsに遷移します。

DeploymentsやPodsに移動し、Metricsタブを押下するとPodのリソース消費状況のダッシュボードが表示されます。

アラート設定

Rancherのダッシュボード上でAlertmanagerのルールを設定し、各クラスターから設定した通知先にアラート通知を送信することができます。

今回は、nginxのPodからアラートを発報する設定を作成するデモを行います。Rancher上でPodを作成する方法は前回の記事にて紹介しておりますので、参考になれば幸いです。

前提条件

  • nginxのPodが起動していること
  • SlackのIncoming Webhookを設定し、Slcak API用のURLを発行していること

Slack Webhook URLをキーとするSecretをnginx namespaceに作成します。

  • Key: slack_url
  • Value: <SLACK_WEBHOOK_URL>


Monitoring→AlartmanagerConfigへ遷移します。

Createを押下してAlartmanagerConfigを新規作成します。

Add Receiverを押下してReciever設定画面へ遷移します。

Add Slackを選択します。

Target情報を入力します。

  • 作成したSecretを選択
  • defaultチャンネル欄に作成した検証用チャンネルを入力

Routeを設定します

  • プルダウンからAlartmanagerConfigを選択
  • MatcherでSecretと同じnamespaceを指定

サイドバーのMonitoringからPrometheus Ruleに遷移し、Createを押下してアラートルールを作成します。
以下のように設定します。

  • namespace: アラートを発報したいリソースと同じnamespaceを指定
  • name: 任意の名称
  • Rule Group 1の設定
    • Group Name: 任意の名称
    • Add Alertを選択し、アラートルールを入力
      • Alert Name: 任意の名称
      • PromQL Expression: container_memory_working_set_bytes{pod=~”nginx.*”} > 1000000
      • Severity: critical
      • Annotations: Messageを有効化し、任意のメッセージを入力


 

指定したSlackチャンネルにアラートが送信されたことを確認します。

このように、Rancherのダッシュボード画面上からAlertmanagerの通知ルールを設定し、アラートをSlackに送信することができます。これにより、複数のクラスターが稼働している環境下でも、アラート設定をRancher上で一元管理することができます。

まとめ

本記事では、RancherのKubernetesクラスター監視機能を利用して管理対象クラスターをモニタリングする方法を解説しました。

一般的に、PrometheusやGrafanaはHelmを用いてインストールされることが多いですが、この方法ではインストール後に設定やツール間の連携を手動で行う必要があり、セットアップに時間と手間がかかる場合があります。さらに、管理するクラスターが増えるほど、それぞれのクラスターでモニタリング環境を構築・管理する工数も比例して増加し、運用の負担が大きくなる傾向があります。一方で、rancher-monitoringアプリケーションを利用することで、PrometheusやGrafanaのインストールと設定をRancherのUIから簡単に一括管理でき、手動設定の手間を大幅に削減できます。特に、複数クラスターを管理している環境では、Rancherの一元化されたダッシュボードを活用することで、効率的にモニタリング環境を構築できる点が大きなメリットです。

次回の記事では、RancherとLonghornを組み合わせた分散ストレージの管理方法を紹介します。ぜひご期待ください。

参考

Rancher公式ドキュメント: Monitoring and Alerting

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です