こんにちは、久しぶりに投稿します。ナイルでインフラ担当をしています。

Zabbix Advent Calendar 2016 9日目の記事になります。参加したのに忘れていたので、急遽書いた(公開数時間前)ので文章拙いですが勘弁ください。小ネタに近いですが、実際導入すると死活監視やリソースのモニタリングなどが捗ります。

Grafanaとは

b18f9904295df3252d80911bc95d7145

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でインストールできます。

http://docs.grafana.org/installation/rpm/#install-via-yum-repository

インストールして、立ち上げると3000番ポートでlistenします。気になる方はnginx等でリバプロを入れると良いかと思います。

Zabbixをデータソースとして追加する

データソース追加でzabbixを選択し、必要な情報を入力します。

26c3bf8525b39086149a409b47a268c7

ダッシュボードを作成して比較してみる

インストールもできたので、とあるWebのヘルスチェックを一覧で見れるダッシュボードを作成したいと思います。

zabbixの場合

ホストごとにグラフを作成して、それらをまとめたスクリーンを作ると思います。やや二度手間ですね。24ee22e81c41525755596261a36f0b48

grafanaの場合

こちらはgrafanaでの作成例です。grafanaで作成する場合、zabbixでグラフを作成する必要がなく可視化したいアイテムを選択するだけで可視化することができます。

0de9b6266f7340ef15fce03180b60db1

設定する際には、zabbixユーザーフレンドリーな形式でアイテムを選択します。もちろん入力の予測候補も出してくれます。すごく簡単ですね。

7933c5d64e301191e94143b1cefd5329

まとめ

最後に簡単ではありますがまとめさせていただきます。zabbixのような利用ユーザーも多く、古くからも利用されている監視ツールの利点を活かしながらも、grafanaを利用することでより使いやすい、モダンなダッシュボードを作成することが可能です。grafanaはあくまでも可視化のツールに過ぎません。仮に監視ツールをzabbixからsensuに変更になった場合でも、データソースを変更するだけで同じ可視化ツールで監視を継続することも可能です。