grafanaを使用してzabbixのモダンなダッシュボードを簡単作成!
こんにちは、久しぶりに投稿します。ナイルでインフラ担当をしています。
Zabbix Advent Calendar 2016 9日目の記事になります。参加したのに忘れていたので、急遽書いた(公開数時間前)ので文章拙いですが勘弁ください。小ネタに近いですが、実際導入すると死活監視やリソースのモニタリングなどが捗ります。
Grafanaとは
kibana等でも使用されているOSSのダッシュボードツールです。zabbixだけでなく、ElasticsearchやGraphite、AWS CloudWatchなど複数のデータソースのものを可視化することができます。ライブデモもあるので、実際どういうものか気になったらまずは見てみてください。
Zabbix + grafanaについて
zabbix3系はUIがモダンになったという話も聞きますが、2.4系など従来のUIのzabbixを使用していることが多いのではないでしょうか?しかもUIのためだけに既存のzabbixのバージョンを上げるのもなかなか大変です。
死活監視のツールとして古くからあるzabbixとgrafanaを組み合わせることで、従来の死活監視の運用を変えることなく見やすいダッシュボードが簡単に作れます。
またいろいろな制約によりプロダクトごとにzabbixを使い分けていたり、プロダクトとイントラでzabbixを使い分けているなど、複数のzabbixをデータソースとして1つのダッシュボードに集約することも可能です。実際弊社では、イントラとプロダクトで複数のzabbixを使用しています。またAWS上にプロダクトがありRDSなどの専用サービスも使用しているのでCloudWatchのデータも頻繁に参照することが有ります。
従来であれば、それぞれのzabbixやAWSのコンソールにログインして確認、またはCloudWatchからAPI経由でzabbixに飛ばすようなことを行うでしょう。ちなみに、最近CloudWatchのデータ保持期間が延長されたので、わざわざzabbixに飛ばすというモチベーションがそこまで高くないかもしれません。
そこで弊社ではgrafana1つで、すべてのzabbix、AWSのCloudWatchのデータを閲覧できるようにしています。
導入
インストール
公式ドキュメントにしたがってyumのリポジトリを追加してyumでインストールできます。
インストールして、立ち上げると3000番ポートでlistenします。気になる方はnginx等でリバプロを入れると良いかと思います。
Zabbixをデータソースとして追加する
データソース追加でzabbixを選択し、必要な情報を入力します。
ダッシュボードを作成して比較してみる
インストールもできたので、とあるWebのヘルスチェックを一覧で見れるダッシュボードを作成したいと思います。
zabbixの場合
ホストごとにグラフを作成して、それらをまとめたスクリーンを作ると思います。やや二度手間ですね。
grafanaの場合
こちらはgrafanaでの作成例です。grafanaで作成する場合、zabbixでグラフを作成する必要がなく可視化したいアイテムを選択するだけで可視化することができます。
設定する際には、zabbixユーザーフレンドリーな形式でアイテムを選択します。もちろん入力の予測候補も出してくれます。すごく簡単ですね。
まとめ
最後に簡単ではありますがまとめさせていただきます。zabbixのような利用ユーザーも多く、古くからも利用されている監視ツールの利点を活かしながらも、grafanaを利用することでより使いやすい、モダンなダッシュボードを作成することが可能です。grafanaはあくまでも可視化のツールに過ぎません。仮に監視ツールをzabbixからsensuに変更になった場合でも、データソースを変更するだけで同じ可視化ツールで監視を継続することも可能です。