TECHSTEP

ITインフラ関連の記事を公開してます。

PrometheusとDatadogをRancher Catalogでデプロイ

はじめに

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」を選択します。

f:id:FY0323:20190224204957j:plain

画面遷移後、画面上部の「Catalog Apps」を選択し、さらにその先の画面から「Launch」をクリックします。

f:id:FY0323:20190224181616j:plain

Catalog一覧が表示されるので、その中からPrometheusを選択します。

f:id:FY0323:20190224205203j:plain

f:id:FY0323:20190224222525j:plain

するとPrometheusの設定画面が表示されます。

f:id:FY0323:20190224205312j:plain

設定画面では入力する箇所はほとんどありません。唯一Grafanaのパスワードだけは入力しておきましたが、以前Grafanaを触った時Grafanaの画面に初回アクセスした際パスワード入力を求められたため、ここで入力しなくても問題はないと思います。

f:id:FY0323:20190224205855j:plain

画面の一番下までスクロールし、「Launch」をクリックします。

f:id:FY0323:20190224214148j:plain

クリックすると以下のような画面が表示されます。

f:id:FY0323:20190224205936j:plain

しばらく待つと以下のようにステータスが緑色になりデプロイが完了します。

f:id:FY0323:20190224205946j:plain

画面上に幾つかのリンクが表示されています。これらは作成されたカタログの各アプリケーションへのリンクになります。なお、ポート番号はデプロイの度にランダムに割り振られるようです。

それではそれぞれのアプリケーションにアクセスします。ここでは<workerノードのグローバルIPアドレス:各ポート番号>をURL欄に入力します。

※ここでの表示先のリンクはプライベートIPアドレス宛になっており、今回構築した環境では直接アクセスできないため、グローバルIPを指定してアクセスしています。

Prometheus

f:id:FY0323:20190224210231j:plain

Grafana

f:id:FY0323:20190224210247j:plain

Alertmanager

f:id:FY0323:20190224210257j:plain

Node Exporter

f:id:FY0323:20190224210305j:plain

無事に各アプリケーションにアクセスできました。このようにRancherの環境さえあれば、数クリックでPrometheus + Grafana + Alertmanagerの環境が構築されるのです。とても簡単ですね。

ちなみに、Catalog Apps画面からデプロイされたPrometheusカタログの中身を見ると、Configmapが利用されていること、GrafanaのパスワードはSecretsで管理されていることなどがわかります。

f:id:FY0323:20190224212445j:plain

CatalogからDatadog Agentをデプロイ

続いてDatadogをデプロイします。Datadog Catalogでは、Datadog AgentをRancherの管理下にあるノードにデプロイします。そのため、Datadogにユーザ登録をしていない場合は、まずユーザ登録をする必要があります。

Datadogを利用するにはDatadogの公式ページから名前やメールアドレスを登録する必要があります。はじめは14日間の無料お試し期間になりますので、ひとまずお金はかかりません。

Datadogの登録が完了したら、Rancherの管理画面からDatadog Agentをデプロイします。

Prometheusをデプロイした時と同様、Catalog Apps画面に行き、Datadogを選択します。

f:id:FY0323:20190224205203j:plain

こちらも同様にDatadogの設定画面に遷移します。

f:id:FY0323:20190224211534j:plain

Datadogの設定画面で入力するのは、Datadog API Keyになります。まずDatadogの管理画面から「Integrations」→「APIs」にアクセスし、API Keyを取得します。

f:id:FY0323:20190224224901j:plain

続いて取得したAPI Keyを、Rancher CatalogのDatadog設定画面より「Agent Configuration」の項目に入力します。

f:id:FY0323:20190224213657j:plain

また今回はAWSインスタンス上にRancherを立てているため、「Daemonset Configuration」にある「Run datadog pod on RKE Control Plane Nodes」をFalseにします。

f:id:FY0323:20190224215116j:plain

こちらも画面下の「Launch」をクリックし、しばらくするとステータスが緑色になり、デプロイが完了します。

f:id:FY0323:20190224203706j:plain

Datadog管理画面の「Infrastructure」画面から見ると、確かにRancherのマネジメント配下の2ノードが確認できます(master-1, worker-1)。

f:id:FY0323:20190224215516j:plain

f:id:FY0323:20190224215530j:plain

まとめ

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」バージョンを選択することができるようになります。

f:id:FY0323:20190224221554j:plain

f:id:FY0323:20190224221611j:plain

f:id:FY0323:20190224221624j:plain

ただHelm Chartを利用するにはPersistentVolumeを用意する必要があります。

Catalog Categories

CatalogのCategoriesを「Monitoring」にすると、なぜかPrometheusだけが表示されます。。。

f:id:FY0323:20190224203621j:plain