ライン

ポイント:エージェント対応が豊富

ライン

 はじめに

本格的な監視ツール

 サーバがハングアップ?サービスが落ちた? など早めに気づきたいことが沢山あるのですが、なかなかマッチしたフリーのツールがありませんでした。Zabbixは以前にも試したことはありましたが、導入しても使い方が感覚ではわからずそのままでした。

 雑誌の Software Design誌に記事になって、ブログ等でも話題になっているのをいくつか見て、久々に導入してみることにしました。
なるほど。便利だ。雑誌も本日買って来ましたが、Zabbixの1.8というバージョンは最近にリリースされたものだったらしい。その前はZABBIXとすべてラージレターで書かれるものだったみたいですが、1.8系から表記が変わったそうです。

 いつも通りですが、導入と設定のメモを備忘録として残しますので、参考になる部分がありましたらどうぞ。

 導入

FreeBSDの portsで導入[/usr/ports/net-mgmt/zabbix-server]

 portsには、1.6系と1.8系が準備されていました。
既に、1.8系が安定版のようでサフィックス数値の付いていない側が1.8系でした。
ports には、zabbix-agent、zabbix-frontend、zabbix-proxy、zabbix-serverがそれぞれあり、今回は Proxy以外をサーバに導入します。
 専用サーバをたてるほど、サーバは存在していないので他の用途のサーバと相乗りです。
MySQLとApache/PHPが導入されているマシンで、さほどサーバ負荷がないものを選択しました。

 make install すると、設定画面の1つ目が来ました。

サーバには、MySQLが動作中なので、これを選択。
IPv6はまだ無視。選択から外す。
LDAPのDBは使っていないので選択を外す。
jabberは使わないので、選択を外す。
fpingは一応入れておくことにする。

 Jabberを使うのは、GoogleのTalkにメッセージを飛ばしてくるなどができるのだろうか。
必要なら将来入れてコンパイルし直せばいいので、このまま進めることにします。

IPv6はまだ無視。選択から外す。
その他はデフォルトをそのまま適用で進めた。

 net-snmpはこのサーバには入れていなかったので導入がされた。このオフィスでSNMPが検知できるのはルータぐらいかな。
安々な機器で構成し過ぎかも知れないな。
 ここまで、10分程度で導入を終えています。

======================================================================
Zabbix requires a database.  If you are using SQLite, one will be
created automatically.  Otherwise you can install one as follows (<db>
is your database engine and &gl;db_client> is its client program):

% cd /usr/local/share/zabbix/server/create
% cat schema/<db>.sql data/data.sql data/images_<db>.sql | <db_client>

To upgrade an existing database, see the scripts in
/usr/local/share/zabbix/server/upgrades.
======================================================================

と表示されて導入が完了しました。

●導入直後の設定
 /usr/local/etc/rc.dにzabbix_serverができていることを確認。
/usr/local/etc/zabbix/zabbix_server.conf のサンプルができていることを確認。

●/etc/rc.conf
 前準備で、これは入れておきましょう。

zabbix_server_enable="YES"

 設定ファイルの記述は、以下の設定の側で記述することにします。

 設定

MySQL関連

 申し訳ないですが、今回のページではMySQL-Serverが動作しているサーバなので、これに関する設定メモがありません。
このホームページのどこかに書かれていると思いますので参照してください。他のドメインページかも知れないですが…。

 /usr/local/share/zabbix/server/create/schema に以下のファイルが存在していました。

-r--r--r--  1 toor  wheel  44283 Jan 28 06:23 mysql.sql
-r--r--r--  1 toor  wheel  41752 Jan 28 06:23 oracle.sql
-r--r--r--  1 toor  wheel  42454 Jan 28 06:23 postgresql.sql
-r--r--r--  1 toor  wheel  41606 Jan 28 06:23 sqlite.sql

 MySQL を使うので、最初の物を利用すれば良さそうです。
 前提となるID/Groupが正しくできているかを一応確認しました。

zabbix:*:122:122::0:0:Zabbix NMS:/nonexistent:/usr/sbin/nologin

zabbix:*:122:

 問題なさそうです。
 以下、PASSWORDと出てきますが、これはあなたが設定したMySQLのrootのパスワードの意味で、そのままを設定したということではないので。あらかじめそういう見方をして参考にしてください。

# mysql -u root -p PASSWORD
> create database zabbix;
> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
> flush privileges;
> quit;

 まずは、Zabbix用のアカウントを作成。パスワードは自由に決めてくださいな。

# cat mysql.sql| mysql -u zabbix -p zabbix
Enter password:zabbix

 続けて、以下を入力します。

# /usr/local/share/zabbix/server/create/data
# cat data.sql | mysql -u zabbix -p zabbix
Enter password:zabbix

 こんな感じで取り込みました。

Zabbix-Server関連

 では、元に戻り、zabbix_server.confを設定します。

LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
FpingLocation=/usr/local/sbin/fping
ListenIP=(IPアドレスを指定)

 上記のMySQLの作業設定の通り、3行を書いています。listenIP には、外向けのサーバのIPアドレスを指定。
fpingは、一緒に導入したので、導入されている絶対位置を記述しています。
 ログとPIDファイルは、専用のディレクトリを掘ったので、以下の作業をしておきましょう。

# mkdir /var/run/zabbix /var/log/zabbix
# chown zabbix:zabbix /var/run/zabbix /var/log/zabbix

 この状態で、サービスをあげてみることにしました。

エラー

 いきなりエラー表示で、サービスがあがってきません。
ログには以下のように書かれていました。

 32649:20100306:151641.447 Can't allocate shared memory of size 8388608 [Cannot allocate memory]
 32649:20100306:151641.447 ERROR: Can't allocate shared memory for configuration cache.

 これは、Google様にお伺いをすると、いくつかのページ(多くは英語)に答えが書かれていました。
/etc/sysctl.conf に、以下を加えておけと。

kern.ipc.shmall=40960000
kern.ipc.shmmax=204800000

手でコマンド入れて、反映させてもいいのですが、次回起動時に忘れいそうなので、すぐにつっこんでしまいました。

  794:20100306:161239.594 Starting zabbix_server. Zabbix 1.8.1 (revision 9702).
   794:20100306:161239.594 **** Enabled features ****
   794:20100306:161239.594 SNMP monitoring:       YES
   794:20100306:161239.594 IPMI monitoring:        NO
   794:20100306:161239.594 WEB monitoring:        YES
   794:20100306:161239.594 Jabber notifications:   NO
   794:20100306:161239.594 ODBC:                   NO
   794:20100306:161239.594 SSH2 support:           NO
   794:20100306:161239.594 IPv6 support:           NO
   794:20100306:161239.594 **************************
   795:20100306:161239.976 server #1 started [DB Cache]
   801:20100306:161239.977 server #7 started [Trapper]
   802:20100306:161239.977 server #8 started [Trapper]
   803:20100306:161239.977 server #9 started [Trapper]
   804:20100306:161239.977 server #10 started [Trapper]
   809:20100306:161239.978 server #15 started [Timer]
   811:20100306:161239.979 server #17 started [Node watcher. Node ID:0]
   812:20100306:161239.979 server #18 started [HTTP Poller]
   805:20100306:161239.979 server #11 started [Trapper]
   806:20100306:161239.979 server #12 started [ICMP pinger]
   807:20100306:161239.979 server #13 started [Alerter]
   808:20100306:161239.979 server #14 started [Housekeeper]
   794:20100306:161239.980 server #0 started [Watchdog]
   814:20100306:161239.980 server #20 started [DB Syncer]
   815:20100306:161239.981 server #21 started [Escalator]
   808:20100306:161239.991 Executing housekeeper
   813:20100306:161241.646 server #19 started [Discoverer. SNMP:YES]
   798:20100306:161241.647 server #4 started [Poller. SNMP:YES]
   797:20100306:161241.648 server #3 started [Poller. SNMP:YES]
   799:20100306:161241.652 server #5 started [Poller. SNMP:YES]
   810:20100306:161241.658 server #16 started [Poller for unreachable hosts. SNMP:YES]
   800:20100306:161241.665 server #6 started [Poller. SNMP:YES]
   796:20100306:161241.672 server #2 started [Poller. SNMP:YES]
   808:20100306:161247.464 Deleted 0 records from history and trends

 いい感じであがってきました。あがってきたサービスも眺めてみましょう。

 794  ??  IN     0:00.01 zabbix_server: main process (zabbix_server)
  795  ??  IN     0:00.00 zabbix_server: db config [sleeping for 60 seconds] (zabbix_server)
  796  ??  SN     0:00.03 zabbix_server: poller [sleeping for 5 seconds] (zabbix_server)
  797  ??  SN     0:00.03 zabbix_server: poller [sleeping for 5 seconds] (zabbix_server)
  798  ??  SN     0:00.03 zabbix_server: poller [sleeping for 5 seconds] (zabbix_server)
  799  ??  SN     0:00.03 zabbix_server: poller [sleeping for 5 seconds] (zabbix_server)
  800  ??  SN     0:00.03 zabbix_server: poller [sleeping for 5 seconds] (zabbix_server)
  801  ??  IN     0:00.00 zabbix_server: trapper [waiting for connection] (zabbix_server)
  802  ??  IN     0:00.00 zabbix_server: trapper [waiting for connection] (zabbix_server)
  803  ??  IN     0:00.00 zabbix_server: trapper [waiting for connection] (zabbix_server)
  804  ??  IN     0:00.00 zabbix_server: trapper [waiting for connection] (zabbix_server)
  805  ??  IN     0:00.00 zabbix_server: trapper [waiting for connection] (zabbix_server)
  806  ??  SN     0:00.00 zabbix_server: pinger [sleeping for 5 seconds] (zabbix_server)
  807  ??  IN     0:00.00 zabbix_server: sender [sleeping for 30 seconds] (zabbix_server)
  808  ??  IN     0:00.61 zabbix_server: housekeeper [sleeping for 1 hour(s)] (zabbix_server)
  809  ??  SN     0:00.00 zabbix_server: timer [sleeping for 30 seconds] (zabbix_server)
  810  ??  SN     0:00.03 zabbix_server: poller [sleeping for 5 seconds] (zabbix_server)
  811  ??  SN     0:00.00 zabbix_server: sender [sleeping for 10 seconds] (zabbix_server)
  812  ??  SN     0:00.00 zabbix_server: http poller [sleeping for 5 seconds] (zabbix_server)
  813  ??  IN     0:00.03 zabbix_server: discoverer [sleeping for 60 seconds] (zabbix_server)
  814  ??  SN     0:00.00 zabbix_server: db syncer [sleeping for 5 seconds] (zabbix_server)
  815  ??  SN     0:00.00 zabbix_server: escalator [sleeping for 3 seconds] (zabbix_server)

 サーバの導入は、問題なくできあがりました。

 この続きは、zabbix-frontend の導入とzabbix-agentです。

 ページの作成を開始しました。ウェブ管理画面導入・設定をどうぞ。

【改訂履歴】作成:2010/3/8
【参考リンク】

Zabbixオフィシャル日本語サイト
Eyes, JAPAN Blog 統合監視ソフトウェア ZABBIX

その他参照したページも後日加えておくつもりです。
デル株式会社
Copyright © 1996,1997-2006,2007- by F.Kimura,