Tech Sketch Bucket of Technical Chips by TIS Inc.

フリーで使える統合監視の鬼、Zabbixでナウい監視をする〜監視対象を追加しよう〜

Pocket

この記事はeXcale Developer's Blogから移転されたものです。


eXcale 開発チームの泉谷(@syguer)です。

今回は前回のインストール編に続き、Zabbixに監視対象を追加する方法について紹介します。
ZabbixはZabbix SIAによって開発されているフリーの統合監視ソフトウェアです。
日本にも支社(Zabbix Japan)がありコミュニティが活発であるなど、フリーの統合監視ソフトウェアでは代表格となっています。


監視対象を追加する

監視対象の追加は以下の流れで行います。

・監視対象ホストにZabbix agentをインストールする
・Zabbixの監視対象に対象ホストを追加する
・監視する項目を設定する


※以下、本記事ではZabbixのバージョンは2.2、OSはCent OS 6.5を使用します。
また、Zabbix serverについてはインストール済みを想定しています。Zabbix serverのインストールについてはこちらをご覧ください。


Zabbix agentについて

Zabbix agentは監視対象のホストで動かすデーモンです。
Zabbix agentは次のような2種類の働きをします。

・Passive Check
Zabbix serverからの要求に応じて値を返します。

・Active Check
事前にZabbix serverから監視する項目とZabbix serverに値を送信する間隔等について情報を受け取っておき、その情報を元にZabbix agentが能動的にZabbix serverに値を送信します。

どちらを使うかは監視する項目によります。
CPU使用率といった値の監視にはPassive Checkを、ログの監視などにはActive Checkを使います。
これらは監視の設定をするときに選択します。

Zabbix agentのインストールと設定

Zabbix agentはZabbix serverと同様yumでインストールすることができます。
インストールは監視対象ホストで行います。

インストールが完了したら早速設定をしましょう。
設定ファイルは/etc/zabbix/zabbix_agentd.confです。
このファイルには設定項目とその説明が詳細に書かれているので、それを参考に設定します。
基本的にデフォルトのままで問題ありませんが、最低限以下の変更が必要です。

  • 「Server」と「ServerActive」の値をZabbix serverが動いているホストのIP(もしくはホスト名)に変更する
  • 「Hostname」に適切な値を設定する(Zabbix serverで監視対象を設定する際に必要)

設定が完了したらZabbix agentを起動してみましょう。


監視ホストの追加

それではZabbixのwebインターフェースから先ほどZabbix agentをインストールしたホストを監視対象に追加したいと思います。
まずは[Configuration]=>[Hosts]を選択し、[Create Host]をクリックします。

「Host name」、「Groups」、「Agent Interfaces」を入力します。

Host name : 監視対象ホストのzabbix_agentd.confに記載したHostname
Groups : 監視対象ホストが所属するグループ(自身で管理できていれば何でも良い)
Agent Interface : 監視対象ホストのネットワーク情報

入力したら[Save]をクリックします。

画面が遷移し、ホストが追加されていればOKです。


監視項目の追加

続いて監視項目について設定したいと思いますが、その前にZabbixの監視項目を追加する上で必要になる概念について簡単に説明します。

・Application
アプリケーションの単位でItemをまとめるために使う。
MySQL"や"Zabbix agent"など。

・Item
実際に監視する項目を設定する。
プロセスの死活、uptimeなど。

・Trigger(詳細は次回説明します)
Itemで取得したデータにしきい値を設定する。
メモリ使用量のしきい値など。

では実際に追加していきます。今回はZabbix agentの死活を監視する項目を例として設定してみようと思います。
まずはApplicationを作成します。
[Configuration] => [Hosts]で表示されている先ほど追加したホストのApplicationsを選択します。

右上の[Create Application]を選択します

設定項目は名前だけなので、今回の例ではZabbix-agentとします。

Applicatonが作成されました。引き続きItemを設定します。

右上の[Create Item]をクリックします。

パラメータを設定します。

設定項目が多いので重要な点のみ説明します。
・Name
Itemの名前です。

・Type
監視のタイプを選択します。
本記事のZabbix agentの動作のところで紹介したPassive Check、Active Checkをはじめ、SNMP等が選べます。
上図は「Zabbix agent」となっていますが、これはZabbix agentによるPassive Checkを指しています。

・Key
監視のキーです。実際に取得する値になります。
KeyはZabbix側で用意されているのでそれを使います。Typeによって使えるKeyが異なります。
TypeにZabbix Agentを指定した場合に使えるKeyはこちらを参照してください。
今回は説明しませんが、独自のKeyを用意して使う方法もあります。

・Update Interval
値を更新する間隔です。
間隔を短くすると値がリアルタイムに近づきますが、負荷が高くなります。

・History(Trend) storage period
Zabbixでは取得したKeyの値を保存しておき、履歴を見ることができます。
その履歴の保持期間をここで設定します。

・Applications
どのアプリケーションに所属するItemかを指定します。

・Enabled
作成と同時に有効にするかを指定します。
チェックを入れるとItemの作成と同時に監視が有効になります。

[Save]をクリックするとItemが作成されます。

監視ができているか確認してみましょう。
[Monitoring] => [Latest data]をクリックすると、最新の監視データの一覧が表示されます。


一覧に表示されていてLast Valueが1になっていれば監視できています。
表示されない場合は、監視のインターバル時間に達しておらず、値が取得されていないことがあるので時間をおいてみてください。
それでも表示されない場合はZabbix agentdの設定や、Hostの追加をした時の設定が間違っていないか確認してください。


Templateによる監視設定

ここまでで監視対象のホストを追加して監視項目を設定するところまでできました。しかし、監視対象ホストごとに全ての項目を設定するのは非常に面倒で時間がかかります。
そういう時のためにZabbixではTemplateという機能が用意されています。
Templateは監視項目をまとめたもので、監視対象にTemplateを紐付けることでまとめて監視設定をすることができます。
実際にZabbixで監視を行こなう際は、個別に監視設定をすることはせず、Templateをサーバーのロールごとに用意しておいて紐付けるのが一般的だと思います。
eXcaleでも、監視設定はサーバーのロールによってテンプレートを作成し、それを紐付ける方法をとっています。(例:DB Template、Web Templateなど)

ZabbixにはデフォルトでTemplateがいくつか用意されているので、まずはそれらを見て感覚を掴むと良いと思います。
Templateは[Configuration] => [Templates]から設定できます。


最後に

前回から今回に渡り、監視対象を追加して監視するまでをひと通り紹介しました。
次回はTriggerとActionについて紹介したいと思います。

エンジニア採用中!私たちと一緒に働いてみませんか?