はじめに
Prometheusを検証するにはbinaryをインストールしたりdockerイメージを使ってデプロイする方法があります。しかし、Prometheusを検証する際にはPrometheus単体でやることは少なく、GrafanaやAlertManager、各種Exporterと合わせて使うことが多いです。それらを一発でデプロイできるようyamlファイルやhelmチャートを書くことはなかなか大変であり、Prometheusの検証をするという目的以前の段階で苦労が多いと思います。
この記事では、RancherのCatalog機能を使うことでPrometheusとその周辺を簡単に利用できることを紹介したいと思います。また、Prometheusと並んで有名なモニタリングツールであるDatadogのAgentもCatalogからデプロイできるので、合わせて紹介します。
Rancherとは
RancherはRancher社が開発を進めるOSSであり、コンテナオーケストレーションの一つです。Kubernetesクラスターを簡単に構築できるだけでなく、複数環境にあるKubernetesクラスターを統合できることが特徴的なツールになります。
またRancherではHelmと連携してCatalogというアプリケーションパッケージを提供しており、今回はこのCatalog機能を利用してPrometheus、Datadogをデプロイします。
Rancherの環境構築
Rancherのインストール方法は公式ページで紹介されています。またこちらの記事でも構築方法を紹介しております。
構築環境
CatalogからPrometheusをデプロイ
早速Prometheusをデプロイします。Rancherにログインしたのち、画面上部から「Default」を選択します。
画面遷移後、画面上部の「Catalog Apps」を選択し、さらにその先の画面から「Launch」をクリックします。
Catalog一覧が表示されるので、その中からPrometheusを選択します。
するとPrometheusの設定画面が表示されます。
設定画面では入力する箇所はほとんどありません。唯一Grafanaのパスワードだけは入力しておきましたが、以前Grafanaを触った時Grafanaの画面に初回アクセスした際パスワード入力を求められたため、ここで入力しなくても問題はないと思います。
画面の一番下までスクロールし、「Launch」をクリックします。
クリックすると以下のような画面が表示されます。
しばらく待つと以下のようにステータスが緑色になりデプロイが完了します。
画面上に幾つかのリンクが表示されています。これらは作成されたカタログの各アプリケーションへのリンクになります。なお、ポート番号はデプロイの度にランダムに割り振られるようです。
それではそれぞれのアプリケーションにアクセスします。ここでは<workerノードのグローバルIPアドレス:各ポート番号>
をURL欄に入力します。
※ここでの表示先のリンクはプライベートIPアドレス宛になっており、今回構築した環境では直接アクセスできないため、グローバルIPを指定してアクセスしています。
Prometheus
Grafana
Alertmanager
Node Exporter
無事に各アプリケーションにアクセスできました。このようにRancherの環境さえあれば、数クリックでPrometheus + Grafana + Alertmanagerの環境が構築されるのです。とても簡単ですね。
ちなみに、Catalog Apps画面からデプロイされたPrometheusカタログの中身を見ると、Configmapが利用されていること、GrafanaのパスワードはSecretsで管理されていることなどがわかります。
CatalogからDatadog Agentをデプロイ
続いてDatadogをデプロイします。Datadog Catalogでは、Datadog AgentをRancherの管理下にあるノードにデプロイします。そのため、Datadogにユーザ登録をしていない場合は、まずユーザ登録をする必要があります。
Datadogを利用するにはDatadogの公式ページから名前やメールアドレスを登録する必要があります。はじめは14日間の無料お試し期間になりますので、ひとまずお金はかかりません。
Datadogの登録が完了したら、Rancherの管理画面からDatadog Agentをデプロイします。
Prometheusをデプロイした時と同様、Catalog Apps画面に行き、Datadogを選択します。
こちらも同様にDatadogの設定画面に遷移します。
Datadogの設定画面で入力するのは、Datadog API Keyになります。まずDatadogの管理画面から「Integrations」→「APIs」にアクセスし、API Keyを取得します。
続いて取得したAPI Keyを、Rancher CatalogのDatadog設定画面より「Agent Configuration」の項目に入力します。
また今回はAWSのインスタンス上にRancherを立てているため、「Daemonset Configuration」にある「Run datadog pod on RKE Control Plane Nodes」をFalseにします。
こちらも画面下の「Launch」をクリックし、しばらくするとステータスが緑色になり、デプロイが完了します。
Datadog管理画面の「Infrastructure」画面から見ると、確かにRancherのマネジメント配下の2ノードが確認できます(master-1, worker-1)。
まとめ
RancherのCatalogを利用することで、簡単にPrometheusやDatadogの環境を構築できました。Rancherではデフォルトで利用できるCatalogが数多く用意されており、様々なアプリケーションを簡単に利用できるかもしれません。検証環境等を用意する際には、選択肢の一つとしてRancherを考えておきべきかもしれません。
補足
Multi-Tenant Prometheus機能
Rancher 2.2からの新機能でMulti-Tenant Prometheus機能がサポートされました。今回紹介したCatalogよりも簡単にPrometheus + Grafana環境がデプロイできるようです。こちらの機能に関してはこちらの記事を参照ください。
Helm Chartからデプロイ
今回はCatalog Appsの「Library」からデプロイしましたが、画面上部から「Global」→「Catalogs」を選択し、「Helm Stable」を有効にすることで、先ほどの「Catalog Apps」画面から「Helm」バージョンを選択することができるようになります。
ただHelm Chartを利用するにはPersistentVolumeを用意する必要があります。
Catalog Categories
CatalogのCategoriesを「Monitoring」にすると、なぜかPrometheusだけが表示されます。。。