sidetech

(元)インフラエンジニアの寄り道メモ。

WindowsでPrometheus&Grafanaのまとめ。

出だしは、Azure Insightだったのに終わりはPrometheus?

いあ・・・結局の主役はGrafanaかな?

f:id:hunter1014:20190925164553p:plain

 

そんなこんなで手抜きな記事を連投したので、まとまりも何にもない状況なのですが、タイトルの通り、少しまとめます。

f:id:hunter1014:20190924235441p:plain

画像はAzure Insightからです。図を描かなくて助かる(笑)

ちょっとGrafanaにツッコミですが、「stats.grafana.org」にアクセスしに行っちゃっているのは何なんすかね。何見られているんでしょう?

 

図式でもわかる通り、クライアントはGrafanaを見て、GrafanaはPrometheusとAzure Monitorを見に行く構成を今回は構築しました。

で、Prometheusでは、以下のExporterを使いました。

blackbox_exporter(https://github.com/prometheus/blackbox_exporter)

snmp_exporter(https://github.com/prometheus/snmp_exporter)

・wmi_exporter(https://github.com/martinlindhe/wmi_exporter)

どれもWindows Server 2019 datacenterにぶっこみました。

・Prometheus(https://prometheus.io/download/)

インストールはwmi_exporterだけmsi形式のインストールを使いました。

WIndowsamd64形式を選んでインストールしています。

インストールというか、自由に配置して、exeを起動しているだけですね…。

おそらく、一番難しくないPrometheus&Grafanaでしょう・・・ね。ノーマルなら。

 

 PrometheusのymlなConfigは以下のようにしました。

f:id:hunter1014:20190925000645p:plain

すべて「file_sd_configs」でノードの追加対応をしています。file_sd_configにしておくと、その先のファイルを修正するだけで、どんどん反映されていくのは知っていましたが、Windowsでも同様に機能しました。

 

f:id:hunter1014:20190925154752p:plain

ファイルの中はこんな感じです。ラベルを関係した変数として持っていけるので、こんな感じで仕上げてみました。

 

blackbox_exporterでのICMPチェックの機能は私にとってちょっとどうやって信用していいのかわからない値が返ってくるので、他人様が作っているping_exporterを使ってみたいと思っている所。

(追記)なんと正しい記述方法を見つけて試してみたらいい感じになった(^^;

blog.sidetech.jp

 

snmp_exporterはWindowsでも動きました・・・が、snmp generatorのwindows版がないので、どこかLinux系でMIB食わせて生成させる必要ありです。

どちらにせよ、snmpsnmpが得意な監視ソフトに任せたほうが良いような。

 

wmi_exporterもなんのひねりもなくやってますが、wmiを活用するにはWindows側で頑張る必要があるので、そこはちゃんとみておかないとかな。

 

Grafanaは、結局の所、式を書く方法が何が正解なのか結構色々調べてやらないといけなかったり、他人様のダッシュボードを見ながら研究したりしないといけないので、思い通りに動かすのはちょっと大変ですね。

それとアラートの機能で、テンプレート変数が活用できないオチがありまして。。。

これは、Prometheus Alertを引っ張るプラグインが良さそうな気がしますが、まだ試していません。

 

PrometheusのConfigのとおり、結構なscrapeタイミングで取得を繰り返すとどうなるか。

14~18ノード程度ではありますが、dataフォルダをみたら2.92GBでした。

9/18から動かしているから・・・今日が25日。1週間で3GBってぐらいですかね。

後々、この対処も考えないといけないです。

PrometheusのRemote Stotageというファンクションを使うことになるはずなんですが…さてAzure Storageにどうやって持っていくかな。そもそもAzureストレージをマウントしちゃえばいいかな?

データの太り方がまあ予測しきれていないので、もうちょっと時間が必要ですね。

それと、1回だけグラフ表示が1~2分程度出来ないタイミングがありました。これが先人の方々がいう突然の処理影響ですかね・・・。

 

あと、課題としてはwmiで引っ張った値とAzure Monitorで引っ張った同系の値の乖離をどうするかなとか。単位は同じなのになぁ。何か計算式が足りないんだろうな。活きたデータにするのがとにかく大変ですね。

 

Grafanaを使っていて思うのは、Summaryとなるレポート用画面と、Currentの監視用画面と、Statisticsとなる解析用画面は分けたほうがいいな・・・と感じるところです。いっぺんに・・・は画面が足りません。テンプレート変数の考え方は面白いけど、それによってどうやって画面配置と上記3つの課題を克服するか・・・これが悩みになりますね。

構築後や改変後の動きにはAzure Insightが使えます。プロセス毎に動きが見えて良きかなです。プロセス毎のトラフィックを拾えていたので、アプリケーション毎のトラフィックを見ることが出来ますね。総ネットワーク帯域中、どのアプリケーションがどのくらいの帯域を使っているのか、Grafanaで表現できたら面白そうだなぁ。

 

てことで、Azure InsightとPrometheusアラートの勉強に戻ります。