Zabbix-2.0のインストールと設定(PostgreSQL)

■導入環境
Zabbix-2.0を導入し、CentOS5.xおよびCentOS6.xのサーバを監視する。

ZabbixサーバはCentOS6.x、監視対象サーバは、CentOS5.x~6.xのため、両方のRPMパッケージを作成する。


【Zabbixサーバの導入~初期設定】

RPMファイルのビルド

Zabbix-JPから提供されているSRPMファイルから、RPMファイルをビルドする。

ビルド環境:CentOS6.2およびCentOS5.8


作業ディレクトリへ。

# cd /usr/local/src/

SRPMを入手。

# wget http://www.zabbix.jp/files/rpms/2.0.0/20120526/zabbix-2.0.0-1.el5.JP.src.rpm

インストール

# rpm -ivh zabbix-2.0.0-1.el5.JP.src.rpm

RPMのビルド

# rpmbuild -ba ~/rpmbuild/SPECS/zabbix.spec


※rpmbuild コマンドは、rpm-build パッケージが必要。

※依存関係のあるものは、追加インストールする。
 CentOS6.xの場合、iksemel-devel がRPMforgeにもないので、RPMsearchから入手。
 CentOS5.xの場合は、RPMforgeにある。

※CentOS6.xの場合は、~/rpmbuild/RPMS 以下にRPMが生成される。

※CentOS5.xの場合は、「rpmbuild -ba /usr/src/redhat/SPECS/zabbix.spec」
でビルドし、/usr/src/redhat/RPMS 以下にRPMが作成される。


バックエンドのDBMSごとにファイルが生成されるので、環境に合わせてインス
トールして使う。



PostgreSQLの準備
PostgreSQLのインストール

# yum install postgresql-server

DBクラスタを初期化

# su - postgres
$ initdb

zabbix用ユーザを作成

$ createuser -U postgres zabbix

zabbix用のデータベースを作成

$ createdb -U zabbix zabbix_db

DBの構築

$ psql -U zabbix zabbix_db < /usr/share/doc/zabbix-server-2.0.0/database/postgresql/schema.sql
$ psql -U zabbix zabbix_db < /usr/share/doc/zabbix-server-2.0.0/database/postgresql/images.sql
$ psql -U zabbix zabbix_db < /usr/share/doc/zabbix-server-2.0.0/database/postgresql/data.sql


■Zabbixのインストール

PostgreSQLに合わせたパッケージをインストールする。
zabbix-2.0.0-1.el6.x86_64.rpm
zabbix-agent-2.0.0-1.el6.x86_64.rpm
zabbix-server-2.0.0-1.el6.x86_64.rpm
zabbix-server-pgsql-2.0.0-1.el6.x86_64.rpm
zabbix-web-2.0.0-1.el6.noarch.rpm
zabbix-web-pgsql-2.0.0-1.el6.x86_64.rpm

依存関係が発生するので、一気にインストール

# rpm -ivh \
  zabbix-2.0.0-1.el6.x86_64.rpm\
  zabbix-agent-2.0.0-1.el6.x86_64.rpm\
  zabbix-server-2.0.0-1.el6.x86_64.rpm\
  zabbix-server-pgsql-2.0.0-1.el6.x86_64.rpm\
  zabbix-web-2.0.0-1.el6.noarch.rpm\
  zabbix-web-pgsql-2.0.0-1.el6.x86_64.rpm

/etc/zabbix/zabbix_server.conf の設定を変更する。

DBName=zabbix
 ↓
DBName=zabbix_db

DBUser=root
 ↓
DBUser=zabbix

# DBPassword=
 ↓
DBPassword=


サービスを起動

# /etc/init.d/zabbix-agent start
Starting zabbix agent:                                     [  OK  ]

# /etc/init.d/zabbix-server start
Starting zabbix server:                                    [  OK  ]


自動起動は、checkconfigやntsysvで設定

# /sbin/chkconfig zabbix-agent on
# /sbin/chkconfig zabbix-server on


■初期設定

http://IPアドレス/zabbix/ へアクセスして初期設定を行う。

Type: PostgreSQL
Host: localhost
Port: 0 ("0" でデフォルトの 5432 を利用)
Name: zabbix_db
User: zabbix
Password:

管理ページへログインできる初期ユーザは、Admin/zabbix 。


■FWの設定

Zabbixは、下記のポートを利用する。

・zabbix-server がzabbix-agent に、収集データの要求をする
 →zabbix-agent の10050番ポートが開いている必要がある

・zabbix-agent が zabbix-server に、アクティブチェックに関する要求をする
 →zabbix-server の10051番ポートが開いている必要がある

アクティブチェックは、主にログ監視やイベントログ監視で使用される。

不要ならば、zabbix_agentd.conf に DisableActive=1 を指定する。

これを設定すると、AgentからZabbixServerの10051番ポートへ通信しなくなる。
 →2.0では、このパラメータは削除された。
  代わりに、ServerActive にIPを指定する(初期値はローカルIP)



【ZabbixAgentの導入~設定】

ホストの監視方法は、ZabbixAgentを使う方法や使わずにTCP/IPパケットを使う方法など何種類か用意されているが、ここではLinuxホストをZabbixAgentで監視する場合について扱う。


Zabbixのエージェントで管理する場合、zabbix-2.0.0-1.i386.rpm と zabbix-agent-2.0.0-1.i386.rpm をインストールする。

(CentOS5.x/32bitの場合)

# rpm -ivh zabbix-2.0.0-1.i386.rpm
# rpm -ivh zabbix-agent-2.0.0-1.i386.rpm

サーバからの通信をFWで許可する(10050番)

iptables -A INPUT -i eth0 -s $ZabbixServer -p tcp --dport 10050 -j ACCEPT

設定ファイル(zabbix_agentd.conf)にて、Zabbixサーバを指定

Server=127.0.0.1
 ↓
Server=ZabbizサーバのIP


※configureオプションに「--enable-ipv6」を付けてZABBIXエージェントをコンパイルした場合は、IPv6アドレスでのみZABBIXエージェントのポートが開くため、そのままではIPv4アドレスで監視できない。
監視対象ホストのzabbix_agentd.confで「ListenIP=監視対象ホストのIP」を記述して、IPv4アドレスを使用することを明示的に指定する必要がある。



自動起動に追加

# /sbin/chkconfig zabbix-agent on

サービス起動

# /etc/init.d/zabbix-agent start
Starting zabbix agent:                                     [  OK  ]


Zabbixサーバの管理ページから、設定→ホスト から、ホストを追加する。
ホストタブ;
 ホスト名:ホスト名を入れる
 表示名 :ホスト一覧に表示される名称を入れる
 グループ:ホストのグループを指定する
 エージェントのインターフェース:IPまたはDNS名を入力し、ポートを指定する。
テンプレートタブ;
 Template OS Linuxを追加する。


SNMPで監視の場合】
ホストタブ;
 ホスト名:ホスト名を入れる
 表示名 :ホスト一覧に表示される名称を入れる
 グループ:ホストのグループを指定する
 SNMPインターフェース:IPまたはDNS名を入力し、ポートを指定する。
テンプレートタブ;
 Template SNMP Generic、Template SNMP Disks、Template SNMP Interfaces
  を追加する。

※一般的な値しか取得できないので、ストレージのドキュメントを見ながら取得するMIBのオブジェクトを追加する(テンプレート化すると良い)。
 SNMP template generator
 http://www.zabbix.com/wiki/scripts/gentemplate.pl



【アラート設定】

アラートをメールで通知するために、SMTPサーバの設定を行う。
管理→メディアタイプから、Emailを選択し、SMTPサーバの情報を更新する。

次に、Adminユーザ宛にアラートメールを出すので、Adminユーザのメールアドレスを登録する。
設定→ユーザーから、Adminユーザを選択し、メディアタブにて、メールの設定を行う。
 タイプ:Emailを選択
 送信先:メールの送信先を入力
 有効な時間帯:1-7,00:00-24:00 のような曜日と時間の指定ができる
 深刻度:必要なものにチェックを入れる
追加ボタンを押して、保存ボタンを押して反映させる。

閾値を越えた場合と、復旧した場合のそれぞれにメールで通知される。