ソースからZabbixサーバまたはアージェントを作成するためには、追加ソフトウェアが必要になります。
Zabbixをコンパイルするために必要なソフトウェアを以下に示します。
以下のデータベースエンジンのうちいずれか1つ:
バージョン3.22以降が必要です。
Sqlora8のヘッダとライブラリが必要です。
バージョン7.0.2以降が必要です。パフォーマンスを高める必要がある場合はPostgreSQL 8.xの使用を検討してください。
バージョン3.3.5以降が必要です。
NET-SNMP(またはUCD-SNMP)のライブラリファイルとヘッダファイル
SNMPをサポートする場合に必要です。(オプション)
Iksemelのライブラリファイルとヘッダファイル
Jabberメッセージングをサポートする場合に必要です。(オプション)
Libcurlのライブラリファイルとヘッダファイル
ウェブ監視モジュールでバージョン7.13.1以降が必要です。(オプション)
Cコンパイラ
Cコンパイラが必要です。オープンプラットフォームでは、GNU Cコンパイラが最適です。それ以外のCコンパイラ(HPやIBM製)も使用できます。
GNU Make
ZabbixのMakefileを処理するためにGNU Makeが必要です。
本書がPDF形式で格納されています。
フロントエンドを除く全てのZabbixのソースが格納されています。
zabbix_serverのMakefileとソースが格納されています。
zabbix_agentとzabbix_agentdのMakefileとソースが格納されています。
zabbix_getのMakefileとソースが格納されています。
zabbix_senderのMakefileとソースが格納されています。
Zabbixのインクルードファイルが格納されています。
* 様々なプラットフォーム用のスタートアップスクリプトが格納されています。
* PHPフロントエンドのファイルが格納されています。
データベースの初期作成用のSQLスクリプトが格納されています。
データベース作成スキーマが格納されています。
データベース初期作成用データが格納されています。
Zabbixの様々なバージョン用のアップグレード手順が格納されています。
サーバサイド
Zabbixスーパーユーザアカウントの作成
サーバを実行するユーザを作成します。本番環境用に、特権を持たない専用アカウント(通常はzabbix)を作成する必要があります。セキュリティ上のリスクが生じるので、rootやbinなど、特権を持つアカウントでは、決してZABBIXプロキシを実行しないでください。
ZABBIXソースの展開
shell> gunzip zabbix-1.8.tar.gz && tar -xvf zabbix-1.8.tar
Zabbixデータベースの作成
ZABBIXには、必要なデータベーススキーマを作成し、デフォルト設定データを挿入するためのSQLスクリプトが付属しています。スクリプトは、MySQL、Oracle、PostgreSQL、SQLite用に別々に用意されています。
MySQLの場合
shell> mysql -u<username> -p<password> mysql> create database zabbix character set utf8; mysql> quit; shell> cd create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix shell> cd ../data shell> cat data.sql | mysql -u<username> -p<password> zabbix shell> cat images_mysql.sql | mysql -u<username> -p<password> zabbix
Oracleの場合 (ユーザzabbixがパスワードpasswordで登録され、データベースオブジェクト作成権限が与えられているものとします)
shell> cd create shell> sqlplus zabbix/password sqlplus> set def off sqlplus> @schema/oracle.sql sqlplus> @data/data.sql sqlplus> @data/images_oracle.sql sqlplus> exit
PostgreSQLの場合
shell> psql -U <username> psql> create database zabbix; psql> \q shell> cd create/schema shell> cat postgresql.sql | psql -U <username> zabbix shell> cd ../data shell> cat data.sql | psql -U <username> zabbix shell> cat images_pgsql.sql | psql -U <username> zabbix
SQLiteの場合
shell> cd create/schema shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cd ../data shell> cat data.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cat images_sqlite3.sql | sqlite3 /var/lib/sqlite/zabbix.db
使用するシステムに対応するソースコードの設定とコンパイル
サーバ(マシンを監視する)とクライアント(監視されるマシン)は、どちらもソースをコンパイルして作成する必要があります。サーバのソースを設定するために、使用するデータベースを指定する必要があります。
shell> ./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl # for MySQL + Jabber + WEB monitoring
または
shell> ./configure --enable-server --with-pgsql --with-net-snmp --with-jabber --with-libcurl # for PostgreSQL + Jabber + WEB monitoring
または
shell> ./configure --enable-server --with-oracle=/home/zabbix/sqlora8 --with-net-snmp --with-jabber --with-libcurl # for Oracle + Jabber + WEB monitoring
クライアントバイナリとサーババイナリを両方ともコンパイルする場合は、以下のコマンドを実行します。
shell> ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
パラメータ–enable-staticを使用すると、強制的にスタティックリンクすることができます。
Makeとインストール
shell> make install
デフォルトでは、
make install
を実行すると、全てのファイルが/usr/local/bin、/usr/local/libなどにインストールされます。Make install実行時に十分な権限があれば、
–prefix (–prefix=/home/zabbixなど)を使用すると、/usr/local以外のインストールプレフィックスを指定できます。この場合は、デーモンのバイナリは<prefix>/sbinへ、ユーティリティは<prefix>/binへインストールされます。Manページは<prefix>/share配下にインストールされます。
/etc/servicesの設定
このステップはオプションです。実行することをお奨めします。クライアント(監視される)マシンで、以下の行を/etc/servicesに追加します。
zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper
注:ポート番号の10050と10051はIANAに正式に登録されたZabbixのポート番号です。
/etc/inetd.confの設定
推奨されているzabbix_agentdではなく、zabbix_agentを使用する場合は、以下の行を追加する必要があります。
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
inetdをリスタートします。
shell> killall -HUP inetd
設定ファイルのデフォルト設定を変更します。
/etc/zabbix/zabbix_agent.confの設定
zabbix_agentをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZabbixサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。サンプルとしてmisc/conf/zabbix_agent.confが提供されているので、必要に応じて参照してください。
/etc/zabbix/zabbix_agentd.confの設定
zabbix_agentdをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZABBIXサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。サンプルとしてmisc/conf/zabbix_agentd.confが提供されているので、必要に応じて参照してください。
/etc/zabbix/zabbix_server.confの設定
小規模な環境(監視するホスト数が10以下)にインストールする場合、デフォルトパラメータを修正する必要はありません。ただし、Zabbixのパフォーマンスを最大限に高めるには、デフォルトパラメータを変更する必要があります。詳細については、「パフォーマンスチューニング」を参照してください。
サンプルとしてmisc/conf/zabbix_server.confが提供されているので、必要に応じて参照してください。
サーバプロセスの実行
サーバサイドでzabbix_serverを実行します。
shell> cd sbin shell> ./zabbix_server
エージェントの実行
必要なマシン上でzabbix_agentdを実行します。
shell> cd bin shell> ./zabbix_agentd
Zabbixプロキシは特別なプロセスです。プロセスを実行する必要はありません。
Zabbixスーパーユーザアカウントの作成
プロキシを実行するユーザを作成します。本番環境用に、特権を持たない専用アカウント(通常はzabbix)を作成する必要があります。セキュリティ上のリスクが生じるので、rootやbinなど、特権を持つアカウントでは、決してZABBIXプロキシを実行しないでください。
ZABBIXソースの展開
shell> gunzip zabbix-1.8.tar.gz && tar -xvf zabbix-1.8.tar
Zabbixデータベースの作成(オプション)
MySQLの場合
shell> mysql -u<username> -p<password> mysql> create database zabbix character set utf8; mysql> quit; shell> cd create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix
Oracleの場合(ユーザzabbixがパスワードpasswordで登録され、データベースオブジェクト作成権限が与えられているものとします)
shell> cd create/schema shell> cat oracle.sql | sqlplus zabbix/password >out.log
PostgreSQLの場合
shell> psql -U <username> psql> create database zabbix; psql> \q shell> cd create/schema shell> cat postgresql.sql | psql -U <username> zabbix
SQLiteの場合
shell> cd create/schema shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db
使用するシステムに対応するソースコードの設定とコンパイル
ソースをコンパイルして、Zabbixプロキシプロセスのコンパイルを有効にする必要があります。プロキシのソースを設定するために、使用するデータベースを指定する必要があります。
shell> ./configure --enable-proxy --with-mysql --with-net-snmp –with-libcurl # for MySQL + WEB monitoring
または
shell> ./configure --enable-proxy --with-pgsql --with-net-snmp –with-libcurl # for PostgreSQL + WEB monitoring
または
shell> ./configure --enable-proxy --with-oracle=/home/zabbix/sqlora8 --with-net-snmp –with-libcurl # for Oracle + WEB monitoring
クライアントバイナリとプロキシバイナリを両方ともコンパイルする場合は、以下のコマンドを実行します。
shell> ./configure --enable-proxy --enable-agent --with-mysql –with-net-snmp –with-libcurl
パラメータ–enable-staticを使用すると、強制的にスタティックリンクすることができます。
Makeとインストール
shell> make install
デフォルトでは、
make install
を実行すると、全てのファイルが/usr/local/bin、/usr/local/libなどにインストールされます。–prefixを使用すると、/usr/local以外のインストールプリフィクスを指定できます。
/etc/servicesの設定
このステップはオプションです。実行することをお奨めします。クライアント(監視される)マシンで、以下の行を/etc/servicesに追加します。
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
/etc/inetd.confの設定
推奨されているzabbix_agentdではなく、zabbix_agentを使用する場合は、以下の行を追加する必要があります。
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
inetdをリスタートします。
shell> killall -HUP inetd
設定ファイルのデフォルト設定を変更します。
/etc/zabbix/zabbix_proxy.confの設定
小規模な環境(監視するホスト数が10以下)にインストールする場合、デフォルトパラメータを修正する必要はありません。ただし、Zabbixプロキシのパフォーマンスを最大限に高めるには、デフォルトパラメータを変更する必要があります。ホスト名とサーバのパラメータが正しく設定されていることを確認してください。サンプルとしてmisc/conf/zabbix_proxy.confが提供されているので、必要に応じて参照してください。
プロキシプロセスの実行
zabbix_proxyを実行します。
shell> cd sbin shell> ./zabbix_proxy
クライアントサイド
Zabbixアカウントの作成
エージェントを実行するユーザを作成します。本番環境用に、特権を持たない専用アカウント(通常はzabbix)を作成する必要があります。Zabbixエージェントは、rootアカウントで実行できないように保護されています。
ZABBIXソースの展開
shell> gunzip zabbix-1.6.tar.gz && tar xvf zabbix-1.6.tar
使用するシステムに対応するソースコードの設定とコンパイル
クライアント用のソースだけをコンパイルする必要があります。
クライアントのソースを設定するには、以下のコマンドを実行します。
shell> ./configure --enable-agent
エージェントのビルド
shell> make
bin/から/opt/zabbix/bin、または他のディレクトリにコピーします。他の一般的なディレクトリは/usr/local/bin または /usr/local/zabbix/binです。
/etc/servicesの設定
このステップは必ずしも必要ではありませんが、実行することをお奨めします。
クライアント(監視される)マシンで、以下の行を/etc/servicesに追加します。
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
/etc/inetd.confの設定
推奨されているzabbix_agentdではなく、zabbix_agentを使用する場合は、以下の行を追加する必要があります。
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
inetdをリスタートします。
shell> killall -HUP inetd
/etc/zabbix/zabbix_agent.confの設定
zabbix_agentをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZabbixサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。このファイルで、EOL文字は使用しないでください。
サンプルとしてmisc/conf/zabbix_agent.confが提供されているので、必要に応じて参照してください。
/etc/zabbix/zabbix_agentd.confの設定
zabbix_agentdをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZabbixサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。サンプルとしてmisc/conf/zabbix_agentd.confが提供されているので、必要に応じて参照してください。
監視する全てのマシン上でzabbix_agentdを実行
shell> /opt/zabbix/bin/zabbix_agentd
ソフトウェアの前提条件を全て満たしていることを確認します。
| 前提条件 | 最小値 | 説明 |
|---|---|---|
| PHPバージョン | 5.0 | |
| PHPメモリ制限 | 8MB | php.ini内での記述:\\memory_limit = 128M |
| PHP POSTの最大サイズ | 8MB | php.ini内での記述:\\post_max_size = 8M |
| PHP最大実行時間 | 300秒 | php.ini内での記述:\\max_execution_time = 300 |
| PHPデータベースサポート | MySQL, Oracle, PostgreSQL, SQLiteのいずれか: | 以下のモジュールのいずれか1つがインストールされている必要があります。\\php-mysql, php-sqlora8, php-pgsql, php-sqlite3 |
| PHP BC math | 任意 | PHP5でコンパイルされていること |
| GDバージョン | 2.0以降 | モジュールphp-gd |
| イメージ形式 | 少なくともPNGに対応していること | モジュールphp-gd |
このステップは分散監視の場合にのみ実行します。
分散環境でZABBIXを使用する場合、以下のコマンドを実行する必要があります。
shell> ./zabbix_server –n <nodeid>
ここで、ノードIDは一意なノードIDです。例:
shell> ./zabbix_server –n 1
このコマンドは、データベースデータをノードID「1」で使用できるように変換し、ローカルノードを追加します。