R&Dセンター OSS戦略企画室 OSS技術第一課 ITスペシャリスト 田中 敦

ZABBIX"大解説”~インストール方法から機能の詳細まですべてが分かる~

第1回 Zabbixとは

システムを運用していく上で、システムの状態を把握しておくことは重要です。

第三者に利用させるシステムでも、自分たちが利用するシステムでも、きちんと状態を把握しておかないと、突然サービスが停止してしまうなんてことが発生しかねません。
気づいたら、エンドユーザ向けのサービスが停止していたなんてことはありませんか?
気づいたら、部門内のファイルサーバの空き容量が0になっていたなんてことはありませんか?

システムの運用フェーズだけではなく、開発フェーズにおいても開発しているシステムに問題が無いかを確認しておくべきでしょう。
例えば、メモリリークを起こしていて、長期間稼働させているうちにメモリ不足が発生してシステムダウンとか発生してしまったことはありませんか?
開発フェーズであったとしても、そのシステムが継続して安定稼働可能であるのかを確認しておくことは重要です。

とはいえ、監視ツールなんて使ったことないし難しいし、お金もないし、と避けてしまっていませんか?

こんな時、OSSであれば費用をかけなくても試してみることができます。
もちろん、本格的に使いこなすためには、それなりの知識が必要になりますが、簡単に設定できるレベルであっても、今まで何もしてこなかった状況よりも改善することができるはずです。

また、OSSを利用するための条件についても、きちんとそのOSSがどのようなライセンスで提供されているかを確認し、そのライセンスに沿う形で利用していれば何も怖いことはありません。

では、今回とりあげるZabbixというOSSの統合監視ツールでは、どのようなことを実現できるのか学んでいきましょう。

2)どんなツールか?

Zabbixというのは、ラトビアにあるZabbix SIAという会社が開発している、OSSの統合監視ツールです。

世の中には様々なOSSの監視ツールがありますが、ソフトウェアによっては、

  • 値を取得するソフトウェア
  • 閾値を設定して閾値を超えたときにメールなどで通知するソフトウェア
  • 取得してきた値をグラフで描画する視覚化のためのソフトウェア

など、複数のソフトウェアを組み合わせることが必要なものがあります。

知識のある人がいれば、それらを組み合わせて構築することもできなくはないのですが、細かなバージョンの組み合わせや設定の問題が発生したときに、問題を切り分けて対応できるだけのスキルが必要になります。

Zabbixであれば、これらの機能を1つのソフトウェアで、実現することができます。
一例として、CPUのロードアベレージに対して、以下のようなグラフを生成することができます。ロードアベレージとは、UNIX系OSで主に利用されるCPU負荷状況の指標の一つです。この数値が上昇するということは、CPUで処理しきれていない処理が溜まっている状態が発生していることを示します。この数値がある程度以上に上昇していると、処理のレスポンスが低下するなどの現象が発生します。

厳密に言えば、Zabbixを稼働させるためには、Zabbixのサーバ側にDBサーバやWebサーバも必要です。
とはいえ、代表的なLinuxのディストリビューションを利用していれば、それらのディストリビューションに含まれるDBサーバ、Webサーバをそのまま利用することができるので、導入するために必要となる知識としては、標準的なパッケージの導入と簡単な設定のみです。

3)何ができるのか?

Zabbixのエージェントを監視対象にインストールすれば、 主に以下のような項目を監視することができます。

  • プロセスやサービスの稼動状態
  • CPUの負荷状況
  • メモリの使用量
  • スワップの発生状況
  • ハードディスクの読み書き量や空き容量
  • ネットワーク通信量
  • ログに出力されたエラーや警告

これら以外にも、スクリプトを実行してその結果を監視することもできますので、数値や文字列にできるものであれば、多くのものを監視することができます。

Zabbixのエージェントを利用しない場合は、SNMP で値を取得したり、Telnet SSH で接続して値を取得して監視することもできます。

また、障害を検知した際には、メールを送ることももちろんできますが、それ以外にもスクリプトを実行することができますので、パトランプを鳴らしたり、独自の通知方法で通知したり、特定のコマンドを実行してサーバを再起動させたりというようなことも実現できます。
監視可能なOSや機器としては、現在多く利用されているLinuxやUNIX系OS、Windowsに対応していますし、ネットワーク機器であればSNMP に対応していますので、ほとんどのサーバやネットワーク機器を監視できるといってよい でしょう。

ただし、Zabbixサーバは、LinuxもしくはUNIX系OS上でしか稼働できません。
Windows Server上ではZabbixサーバを正常に稼働させることができませんので、 監視用にLinuxもしくはUNIX系OSのサーバを1台用意してください。

4)Zabbix ならではの機能とは?

Zabbixを利用すれば、1つのソフトウェアで監視から取得した値の視覚化までできることはこれまで説明してきましたが、Zabbixならではという機能をあげておきます。

1つめは、テンプレートと呼ばれる機能です。
Zabbixにおけるテンプレートとは、アイテムやトリガーなど、よく利用するような監視の組み合わせをひとまとまりにしたものです。
また、アイテムとは、監視項目の値を取得するためのもの、トリガーとは取得したアイテムの値などを利用して正常な状態であるのか障害が発生したのかを判別するための条件設定のことです。標準のテンプレートでは、LinuxやWindowsのOS部分を監視したり、ネットワーク機器の各インターフェースの入出力量を把握できるようなテンプレートが用意されています。

Zabbixで、何を監視するか、どのような閾値で監視するかという監視の設定を 各サーバ毎に行っていたのでは、サーバを追加するたびに発生する監視設定の作業が面倒です。
そこで、同じような監視を必要とするサーバを複数台管理する場合、テンプレートと呼ばれる監視の設定の1セットを作成しておけば、サーバを追加した際に、その追加したサーバとテンプレートとを紐づけするだけで、同じテンプレートが紐づけられたサーバと同じ監視を行うことができます。

2つめは、マルチテナントと呼ばれるような機能です。

監視システムを導入する際、システムやサービス単位で用意することも可能ですが、一つ一つのシステムの規模があまり大きくない場合、個別の監視システムを用意していたのでは無駄も多く、運用にも手間がかかってしまいます。
しかし、複数のシステムの監視を1つの監視システムに集約してしまうと、今度はそれぞれのシステムの担当者以外に担当以外のシステムの状態を見せたくないという要望があがってくることが予想されます。
Zabbixであれば、ホストグループ(監視対象のグループ)とユーザグループを組み合わせて、特定のホストグループに所属するサーバやネットワーク機器を、特定のユーザグループからのみ参照させることが可能です。

これを利用することで、複数のプロジェクトを1台のZabbixサーバで監視したとしても、各プロジェクト毎に切り分けられた情報を限定して参照させることができます。
運用者や管理者にとっては、1つのZabbixの画面だけで複数のプロジェクトの状況を把握できるというメリットがあります。

3つめは、Zabbix APIです。

通常は、Webブラウザを利用して監視対象であるホストを登録したり、監視項目であるアイテムを登録したりするわけですが、クラウド環境でサーバの追加や削除を頻繁に行うような場合、いちいちブラウザを利用して操作するのは非常に面倒です。
こういう場合、他のシステムと連動させて、例えば、新しいサーバを起動したらそのタイミングでZabbixサーバ上に登録して監視を開始させたいという要求が出てくると思います。

そこで、APIの出番です。
APIを利用すれば、監視対象となるホストの登録、変更、削除をソフトウェア的に処理することが容易になるため、他のシステムと連動して自動的に監視対象を追加するとか削除するようなことが実現できます。

1

2 3 4 5 6 7
PAGE TOP