読者です 読者をやめる 読者になる 読者になる

ZABBIX インストールメモ

Nagios をインストールしていたマシンがお亡くなりになりましたので、折角なので仮想環境と ZABBIX に移行したいと思います。

使用環境

VMware Server 2.x に CentOS 5.5 x64 をなるべく最小構成でインストールしました。
メモリ 512MB、HDD 64GB(事前割当なし)です。

インストール

ZABBIX-JPドキュメント を参照し、インストールしていきたいと思います。

ZABBIX の yum レポジトリを登録します。(参照: ZABBIX-JPのyumリポジトリ利用方法


インストールします。(参照: ZABBIX 1.6 のインストール

# yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

Dependencies Resolved

===============================================================================================================
 Package                      Arch            Version                     Repository                      Size
===============================================================================================================
Installing:
 zabbix                       x86_64          1.6.9-3.el5.JP              zabbix-jp                       11 k
 zabbix-agent                 x86_64          1.6.9-3.el5.JP              zabbix-jp                      245 k
 zabbix-server                x86_64          1.6.9-3.el5.JP              zabbix-jp                      5.6 M
 zabbix-server-mysql          x86_64          1.6.9-3.el5.JP              zabbix-jp                      243 k
 zabbix-web                   x86_64          1.6.9-3.el5.JP              zabbix-jp                      1.2 M
 zabbix-web-mysql             x86_64          1.6.9-3.el5.JP              zabbix-jp                      9.4 k
Installing for dependencies:
 fping                        x86_64          2.4b2-16.el5.JP             zabbix-jp-relatedpkgs           34 k
 iksemel                      x86_64          1.2-13.el5.JP               zabbix-jp-relatedpkgs           47 k
 php-bcmath                   x86_64          5.1.6-27.el5_5.3            updates                         35 k
 php-gd                       x86_64          5.1.6-27.el5_5.3            updates                        118 k
 php-mbstring                 x86_64          5.1.6-27.el5_5.3            updates                        1.0 M
 php-mysql                    x86_64          5.1.6-27.el5_5.3            updates                         89 k
 php-pdo                      x86_64          5.1.6-27.el5_5.3            updates                         66 k
Updating for dependencies:
 php                          x86_64          5.1.6-27.el5_5.3            updates                        2.3 M
 php-cli                      x86_64          5.1.6-27.el5_5.3            updates                        2.2 M
 php-common                   x86_64          5.1.6-27.el5_5.3            updates                        153 k
 php-ldap                     x86_64          5.1.6-27.el5_5.3            updates                         38 k

Transaction Summary
===============================================================================================================
Install      13 Package(s)
Upgrade       4 Package(s)

Total download size: 13 M


yum で依存関係もクリアされ無事インストールされたようなので、そのまま MySQL の設定を続けます。(参照: MySQL データベースサーバの設定


MySQL データベースサーバの設定 の「5. ZABBIX の初期データベースをインポートします」というところ、ファイルが見つからないのでスルーしましたが、確実に必要な作業でした!


※初期データベースをインポートせずに、インストールを進めたところ、完了した時点で以下のエラーが Web の画面に出ました。

Error in query [SELECT * FROM nodes WHERE nodeid=0] [Table 'zabbix.nodes' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]
Error in query [SELECT n.nodeid as nodeid,n.name as node_name,hg.groupid,hg.name,min(r.permission) as permission,g.userid FROM groups hg LEFT JOIN rights r ON r.id=hg.groupid LEFT JOIN users_groups g ON r.groupid=g.usrgrpid AND g.userid=0 LEFT JOIN nodes n ON (hg.groupid div 100000000000000)=n.nodeid WHERE (hg.groupid div 100000000000000) in (0) GROUP BY n.nodeid, n.name, hg.groupid, hg.name, g.userid, g.userid ORDER BY node_name, hg.name, permission ] [Table 'zabbix.groups' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]
Error in query [SELECT n.nodeid as nodeid,n.name as node_name,hg.groupid,hg.name,min(r.permission) as permission,g.userid FROM groups hg LEFT JOIN rights r ON r.id=hg.groupid LEFT JOIN users_groups g ON r.groupid=g.usrgrpid AND g.userid=0 LEFT JOIN nodes n ON (hg.groupid div 100000000000000)=n.nodeid WHERE (hg.groupid div 100000000000000) in (0) GROUP BY n.nodeid, n.name, hg.groupid, hg.name, g.userid, g.userid ORDER BY node_name, hg.name, permission ] [Table 'zabbix.groups' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]
Error in query [SELECT n.nodeid as nodeid,n.name as node_name,hg.groupid,hg.name,min(r.permission) as permission,g.userid FROM groups hg LEFT JOIN rights r ON r.id=hg.groupid LEFT JOIN users_groups g ON r.groupid=g.usrgrpid AND g.userid=0 LEFT JOIN nodes n ON (hg.groupid div 100000000000000)=n.nodeid WHERE (hg.groupid div 100000000000000) in (0) GROUP BY n.nodeid, n.name, hg.groupid, hg.name, g.userid, g.userid ORDER BY node_name, hg.name, permission ] [Table 'zabbix.groups' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]
Error in query [SELECT n.nodeid as nodeid,n.name as node_name,hg.groupid,hg.name,min(r.permission) as permission,g.userid FROM groups hg LEFT JOIN rights r ON r.id=hg.groupid LEFT JOIN users_groups g ON r.groupid=g.usrgrpid AND g.userid=0 LEFT JOIN nodes n ON (hg.groupid div 100000000000000)=n.nodeid WHERE (hg.groupid div 100000000000000) in (0) GROUP BY n.nodeid, n.name, hg.groupid, hg.name, g.userid, g.userid ORDER BY node_name, hg.name, permission ] [Table 'zabbix.groups' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]
Error in query [SELECT n.nodeid as nodeid,n.name as node_name,hg.groupid,hg.name,min(r.permission) as permission,g.userid FROM groups hg LEFT JOIN rights r ON r.id=hg.groupid LEFT JOIN users_groups g ON r.groupid=g.usrgrpid AND g.userid=0 LEFT JOIN nodes n ON (hg.groupid div 100000000000000)=n.nodeid WHERE (hg.groupid div 100000000000000) in (0) GROUP BY n.nodeid, n.name, hg.groupid, hg.name, g.userid, g.userid ORDER BY node_name, hg.name, permission ] [Table 'zabbix.groups' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]
Error in query [SELECT * FROM config WHERE (configid div 100000000000000) in (0) ] [Table 'zabbix.config' doesn't exist]
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource[/usr/share/zabbix/include/db.inc.php:521]


これでは先に進めませんので、mysql.sql を探します。まずは /usr/share 以下を探してみましょう。

$ find /usr/share -name mysql.sql
/usr/share/doc/zabbix-server-1.6.9/schema/mysql.sql

あれ?場所が違うだけか…
サイトに記載されている /usr/share/zabbix-server-1.6.6/ ではなく、/usr/share/doc 以下に格納されていました。要注意です。


ということで、

mysql -u root -p zabbix < /usr/share/doc/zabbix-server-1.6.9/schema/mysql.sql
mysql -u root -p zabbix < /usr/share/doc/zabbix-server-1.6.9/data/data.sql
mysql -u root -p zabbix < /usr/share/doc/zabbix-server-1.6.9/data/images_mysql.sql

無事初期 DB のインポートが完了しました。


後は /zabbix/ にアクセスして、Webインターフェースの設定 の通りにインストールしていけば OK です。

※マニュアルでは

# chmod 777 /etc/zabbix

を推奨していますが、/etc/zabbix/zabbix.conf.php を削除せずに名前を変更して Web インターフェースの設定を進め、最後の設定を保存する画面が表示される前にファイル名を戻し

# chmod 644 /etc/zabbix/zabbix.conf.php
# chown apache.apache /etc/zabbix/zabbix.conf.php

に設定すると上書きしてくれますので、それでも良いかもしれません。


後は、ZABBIXサーバの設定 と、ZABBIXエージェントの設定 を行って一応完了です。

以上です。