Azure Container Instances でPrometheus の Docker Image を展開して簡易監視環境を作る。

はじめに

くどうです。

今回はAzure Container Instances を利用してPrometheus 環境を構築する方法を説明していきます。
Container Instance 上で展開するメリットは一時的に展開して監視を行う場合です。
Containerを展開するのみなので、VMを立ち上げるより安易です。
あと、IaaSではないのでメンテナンスのさほどかからないですが費用面ではたぶん割高になると思います。
・・・Serverlessっぽくもありますね(白目

リクエスト
・DockerHubのアカウント
・Docker Imageを編集できる環境(ローカル、VMなど)

構成図は以下です。

・DockerHub
・Azure Container Instances
・VM(監視対象)

注意事項はセキュリティです。
上記の手法ではIP:9100とIP:9090はフルオープンです。

監視対象

監視対象となるVM(ex:ubuntu)を立ち上げます。
node-exporterをインストールします。

受信ポートに9100をanyで開けます。

グローバルIPを確認しておきます。
準備完了です。

Prometheus Container Imageを作成

Prometheus のContainer imageを作成します。

Prometheus のDocker ImageをBuildしようとすると下記のエラーが発生しました。

そこで、一度RunしてConfigを編集してCommitしてImageを作成しています。

編集ファイル
/etc/prometheus/prometheus.yml

targetsに監視対象(グルーバルIP:9100)を追記します。

対象をConfigに書き込んだらImageを取得しまします。

DockerHubにUploadします。
(事前に $sudo docker login が必要)

以上で準備完了です。
次は、Container Instanceを展開します。

Container imageをAzure Container Instancesに展開

ポータルから展開します。
DockerHubのレポジトリを指定します。

ポートは9090を指定します。

以上で完了です。
しばらくするとアクセス出来るようになります。

IPアドレス:9090にアクセスします。

しばらくするとグラフが確認できると思います。

まとめ

Container InstancesはDockerで利用できるものなら基本利用できるかと思います。
簡易環境の構築などにも利用できるのではないでしょうか。

再度書きますが注意事項はセキュリティです。
上記の手法ではIP:9100とIP:9090はフルオープンです。