この記事は、Azure Advent Calendar 2017 の 10 日目 の記事です。
qiita.com
OSS のモニタリングツールである Grafana を使って、Azure のメトリクスを監視してみました。元ネタは、こちらのブログですが、Grafana を Azure Marketplace ではなく、Azure Container Service(AKS)にデプロイしました。
Azure Container Service(AKS)を作成する
最近、Azure Portal からも AKS が作れるようになりました。公式ドキュメントの手順に従って、作成します。
docs.microsoft.com
AKS の作成が完了したら、Azure Cloud Shell を使って、AKS に接続するための資格情報を取得します。
$ az aks get-credentials --resource-group gooner1210 --name gooner1210 Merged "gooner1210" as current context in /home/hara/.kube/config $ kubectl get nodes NAME STATUS ROLES AGE VERSION aks-agentpool-63390745-0 Ready agent 10m v1.7.7 aks-agentpool-63390745-1 Ready agent 10m v1.7.7 aks-agentpool-63390745-2 Ready agent 10m v1.7.7
Grafanaをデプロイする
Helm のリポジトリで公開されている Grafana の Charts を使って、AKS にデプロイします。
まず、Helm をセットアップします。
$ helm init HELM_HOME has been configured at /home/hara/.helm. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Happy Helming!
Azure のメトリクスを取得するためには、Grafana のプラグインをインストールする必要があります。
grafana.com
Grafana のプラグインは、helm install コマンドのパラメータで指定できるので、次のようなコマンドでインストールできます。
$ helm install --name gf \ --set server.installPlugins=grafana-azure-monitor-datasource,\ server.adminPassword=admin,\ server.service.type=LoadBalancer,\ server.persistentVolume.storageClass=default \ stable/grafana
プラグイン以外のパラメータは、お好みで指定してください。
Parameter | Value | Description |
---|---|---|
server.installPlugins | grafana-azure-monitor-datasource | プラグイン名 |
server.adminPassword | admin | 管理者アカウント(admin)のパスワード |
server.service.type | LoadBalancer | ダッシュボードを外部IPで公開 |
server.persistentVolume.storageClass | default | データをディスクに永続化 |
デプロイが完了したら、Grafana の External IP を確認します。
$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gf-grafana LoadBalancer 10.0.210.171 52.179.12.156 80:31032/TCP 7m kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 1h
ブラウザで Grafana の External IP にアクセスすると、ログイン画面が表示されます。
Grafanaのデータソースを追加する
Grafana の add data source を選択して、Azure のメトリクスをデータソースとして登録します。
任意の名前を入力して、Type で「Azure Monitor」を選択します。Azure Monitor API Details には、サブスクリプションIDとサービスプリンシパルを入力します。Application Insights Details はオプションなので、空欄のままで進めます。
Grafanaのダッシュボードを作成する
Grafana の New Dashboard を選択して、Azure のメトリクスを表示するダッシュボードを作成します。今回は Graph を使って、Azure Web Apps にデプロイされているアプリケーションのメトリクスを表示してみます。
Panel Title の edit をクリックして、Metrics タブからメトリクスを取得するアプリケーションのリソースやメトリクスの種類を選択します。選択候補がプルダウンで表示されるので、簡単にダッシュボードを作成できます。
2つのアプリケーションの CPU Time と AverageMemoryWorkingSet を 表示することができました。
まとめ
Grafana を使って、Azure のメトリクスを表示するダッシュボードを作成してみました。
このプラグインをインストールすると、Azure Monitor のほかに、Application Insights のメトリクスも取得できます。
Grafana のデータソースには、AWS の CloudWatch や OSS の Prometheus も指定できるので、Azure に限らず活用できる監視ツールだと思います。