Monitoring a server cluster using Grafana and InfluxDB(Part2)
GrafanaとInfluxDBを使ったサーバークラスターのモニタリング 第二章
今回はGrafanaとInfluxDBを使ったサーバークラスターのモニタリングについての記事です。二回に分けてお送りしています。今回は第二回目(最終章)です。Grafanaの設定やGauge Panelなどについて解説しています。
V — Setting Up Grafana — Finally!
それではいよいよGrafanaの設定です!すべてがマシン上で設定されています。次は、Grafanaを設定し、インフラストラクチャーをモニターするための最高にかっこいいダッシュボードを構築していきます。
上記のようなダッシュボードには、3つの視覚化オプションがあります。
- An availability diagram : ノードと現在の状態とリスポンス時間の接続を見えるようにする
- Gauges :リスポンス時間を表示する、もしくはエラーメッセージがサービス失敗になる。
- A graph はそれぞれのノードのリスポンス時間のグラフ。サービスが失敗した場合、コンフィグレーション可能なアラートのグラフ。
0 — Prerequisite Steps
完全にブランクのダッシュボードを用意していてください。Grafanaの左のメニューから「Create Dashboard (ダッシュボードの作成)」ボタンを見つけるためです。
a — Availability Diagram
この可視化オプションは、それぞれのノードの状態を表示するためのカラーノードと同じように自分のアーキテクチャーの異なるパーツ間の接続を表示するためのオプションです。
ダイアグラムのプラグインはGrafana上でネイティブに利用可能ではないため、少しのコンフィグレーションでいいです。難しすぎてインストールできないということはありません。
ご自身のコマンドラインで、sudo grafana-cli plugins install jdbranham-diagram-panel を走らせ、Grafanaをリスタートしてください。すると、プラグインのインストールができると思います。Grafanaの可視化バーの中でも利用可能なはずです。
そのダイヤグラムパネルは、アーキテクチャーをdepictするための Mermaid syntaxを使います。分かりやすいように、コンフィグレーションを一つの図にまとめています。
このプラグインに対するmermaid シンタクススは下のようにコンフィギュアされます。
大切なこと:必要な結果を得るためにGrafanaを微調整する必要があるパラメーターが存在します。デフォルトでは、上のようにクエリを設定していれば、Grafanaはウィンドウの時間間隔と関連した最新の値を取得します。これが課題になってくるのです。というのも、Grafana のダッシュボードでRefresh every five seconds オプションで Last 15 minutes という設定をしたら、サービスが15分後にダウンするという知らせがくるからです。
それに対抗するために、自分のコンフィグレーションの中でこのラインを探さなければいけません。
このように、サービスがダウンした後すぐたった20秒でアラートを取得します。
そして、可用性ダイアグラムで終了しました!pm2 stop serverのサービスの一つがストップしたら、そのダイアグラムを見てみましょう。
本当に予想していた通りです!残念ながら、ダイアグラムパネルにはアラートシステムがありません。しかし、グラフパネルを使ってアラートを送ることは可能です。
b — Gauge Panel
このgauge panel(ゲージパネル)は新しいパネルで、Grafana v6.0でも利用可能です。これは以下のようにコンフィギュアされます。
そのgauge panelはresponse_timeフィールドにバインドされ、閾値は特定のノードが応答にすごく長い時間かかっている時に知らせるためにコンフィギュアされます。アラートはgauge panel上ではまだコンフィギュアされません。
c — Graph Panel
graph panel(グラフパネル)は応答時間を表示し、上のようなgauge panelととてもよく似ています。gauge panelとの主な違いは、特定の値が利用できない場合にアラートコンフィグレーションができるようになります。
上に出したウィジェットはすべて、必要に応じて好きなように調整可能ですし、調整すべきだと思います!それらのコンフィグレーションはとても特別なHA クラスターのケースをdepictしているのですが、それぞれ個人で使っているHAプロキシや、ロードバランステクニックによっても異なってくるでしょう。
VI — Conclusion
2019年においてモニタリングというものがとても必要になってきているという事実は、エンジニア全員が認めざると得ない状況となっています。モニタリングソリューションへの必要性がどんどん高まってきてはいますが、監視エージェント、視覚化ツール、事後分析ツールを統合するツールのニーズも高まっています。
DevOps の素晴らしいツールも出てくる予定です。InfluxDB は既に 2.0 with the Flux language バージョンへ移行して言っていますし、今後にも期待が十分にできそうです。
InfluxDataが市場で唯一の時系列データベースではありません。Amazonは必ず、そのシェアを獲得しようとしますし、 Amazon Timestream during re:Invent 2018を発表しました。公開されていない機能もありますが、とてもしっかりとしたInfluxCloudとなることでしょう。
もうすぐそれが分かります!
Orangesys.ioでは、kuberneteの運用、DevOps、監視のお手伝いをさせていただいています。ぜひ私たちにおまかせください。