ソースからZabbixサーバまたはエージェントを作成するためには、ソフトウェアの追加が必要になります。
Zabbixをコンパイルするために必要なソフトウェアを以下に示します (必要なソフトウェアのバージョン):
以下のデータベースエンジンのうちいずれか1つ:
通常は、mysql-dev、postgresql-dev、sqlite3-devの各パッケージの一部として提供されます。
NET-SNMP (または UCD-SNMP)ライブラリとヘッダファイル。 SNMPサポートのために必要。(オプション)
Iksemel ライブラリとヘッダファイル。Jabberのメッセージングを有効にするために必要。(オプション)
Libcurl ライブラリとヘッダファイル。 WEB監視モジュールのために必要。(オプション)
C Compiler GNU Cコンパイラがオープンプラットフォームでは最適です。それ以外のCコンパイラ(HPやIBM製)も使用できます。
GNU Make GNU makeはZabbixのMakefileを処理するために必要です。
フロントエンドを除く全ての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サーバプロセス(zabbix_server)は、rootアカウントで実行できないように保護されています。
ZABBIXソースの展開
Zabbixデータベースの作成
Zabbixには、必要なデータベーススキーマを作成し、デフォルト設定データを挿入するためのSQLスクリプトが付属しています。スクリプトは、IBM DB2、MySQL、Oracle、PostgreSQL、SQLite用に別々に用意されています。
IBM DB2の場合:
shell> db2 "create database zabbix using codeset utf-8 territory us pagesize 32768"
shell> cd create/schema
shell> db2batch -d zabbix -f ibm_db2.sql
shell> cd ../data
shell> db2batch -d zabbix -f data.sql
shell> db2batch -d zabbix -f images_ibm_db2.sql
ZabbixフロントエンドではSQLクエリでOFFSET
句とLIMIT
句を使用します。 これを機能させるには、IBM DB2サーバーがDB2_COMPATIBILITY_VECTOR変数が3に設定されている必要があります。データベース·サーバを起動する前に次のコマンドを実行します:
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で登録され、データベースオブジェクト作成権限が与えられているものとします):
data/imagesをoracleサーバのどこかにコピーします、例えば/home/oracle:
ファイルdata/images_oracle.sqlを編集し、images_dir変数に"/home/oracle/images"を設定します:
データのインポートを行います:
shell> sqlplus zabbix/password@host/ORCL
sqlplus> set def off
sqlplus> @schema/oracle.sql
sqlplus> @data/data.sql
sqlplus> @data/images_oracle.sql
sqlplus> exit
ZabbixはUTF8でデータベース·キャラクタ·セットが必要です。データベースがUTF8でない場合はALTER DATABASE NATIONAL CHARACTER SET UTF8;
を実行することで変換することができます。
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
使用するシステムに対応するソースコードの設定とコンパイル
サーバ(マシンを監視する)とクライアント(監視されるマシン)は、どちらもソースをコンパイルして作成する必要があります。サーバのソースをconfigureするためには、使用するデータベースを指定する必要があります。
shell> ./configure --enable-server --with-ibm-db2 --with-net-snmp --with-jabber --with-libcurl # for IBM DB2 + Jabber + WEB monitoring
または
shell> ./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl # for MySQL + Jabber + WEB monitoring
または
shell> ./configure --enable-server --with-oracle --with-net-snmp --with-jabber --with-libcurl # for Oracle + 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-sqlite3 --with-net-snmp --with-jabber --with-libcurl # for SQLite3 + Jabber + WEB monitoring
--with-ibm-db2はCLI APIの指定に使用します。
--with-oracleはOCI APIの指定に使用します。
--with-ucd-snmpは--with-net-snmpの代わりに使用することができます。SNMPのサポートが不要な場合は、--with-net-snmp及び--with-ucd-snmpのどちらも指定する必要はありません。
クライアントバイナリとサーババイナリを両方ともコンパイルする場合は、以下のコマンドを実行します。
shell> ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
静的ライブラリのリンクは--enable-staticを使用します。別サーバにコンパイルしたバイナリを配布する予定がある場合は、必要なライブラリなしでこれらのバイナリを作成するために、このフラグを使用する必要があります。--enable-staticは、Solarisで動作しないことに注意してください。
Makeとインストール
デフォルトでは、make installを実行すると全てのファイルが/usr/local/bin、/usr/local/libなどにインストールされます。十分な権限を持っていることを確認してください。
--prefixを使用し/usr/local以外のインストールプレフィックスを指定することができます、例えば--prefix=/home/zabbix。この場合、デーモンのバイナリは<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を使用する場合は、以下の行を追加する必要があります。
inetdをリスタートします。
設定ファイルのデフォルト設定を変更します。
設定ファイルを保持するための場所を作成:
/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を実行します。
エージェントの実行
必要なマシン上でzabbix_agentdを実行します。
Zabbixプロキシは特別なプロセスです。Zabbixを実行する必要はありません。
Zabbixスーパーユーザアカウントの作成
このユーザはプロキシを実行することができます。本番環境用に特権を持たない(Zabbixが通常使用する)専用アカウントを作成する必要があります。rootやbinまたは任意の特権を持つアカウントでZabbixプロキシを実行するとセキュリティ上のリスクが発生します。それは止めてください。
Zabbixプロキシプロセス(zabbix_proxy)は、rootアカウントで実行できないように保護されています。
Zabbixソースの展開
Zabbixデータベースの作成(オプション) ::: noteclassic データベースが存在しない場合は、ZABBIXプロキシプロセスの初回実行時に自動的に作成されます。それ以外の場合は、既存のデータベースが使用されます。データベースの自動作成機能はSQLiteのみサポートされています。 :::Zabbixには、必要なデータベーススキーマを作成するためのSQLスクリプトが付属しています。スクリプトは、IBM DB2、MySQL、Oracle、PostgreSQL、SQLite用に別々に用意されています。
IBM DB2の場合:
shell> db2 "create database zabbix using codeset utf-8 territory us pagesize 32768"
shell> cd create/schema
shell> db2batch -d zabbix -f ibm_db2.sql
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で登録され、データベースオブジェクト作成権限が与えられているものとします):
エラーメッセージが出力された場合はout.logファイルを確認してください。ZabbixはUTF8でデータベース·キャラクタ·セットが必要です。データベースがUTF8でない場合はALTER DATABASE NATIONAL CHARACTER SET UTF8;を実行することで変換することができます。
PostgreSQLの場合:
shell> psql -U <username>
psql> create database zabbix;
psql> \q
shell> cd create/schema
shell> cat postgresql.sql | psql -U <username> zabbix
SQLiteの場合:
データベースが存在しない場合は自動的に作成されます。
使用するシステムに対応するソースコードの設定とコンパイル
ソースをコンパイルして、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
sqlora8のライブラリの位置を指定する場合はフラグ--with-oracleを使用します。Oracleをサポートする場合はこのライブラリが必要であり、libsqlora8のホームページから入手できます。
ライブラリをスタティックリンクする場合はフラグ--enable-staticを使用します。コンパイルしたバイナリを複数のホストに分散させる場合は、分散先のホストに必要なライブラリが存在しなくてもバイナリが動作するように、このフラグを使用する必要があります。Solarisでは--enable-staticは使用できません。--with-net-snmpの代わりにフラグ--with-ucd-snmpを使用することができます。SNMPをサポートする必要がない場合は、--with-net-snmpと--with-ucd-snmpはどちらも指定する必要はありません。
クライアントバイナリとプロキシバイナリを両方ともコンパイルする場合は、以下のコマンドを実行します。
パラメータ--enable-staticを使用すると、強制的にスタティックリンクすることができます。
Makeとインストール
デフォルトでは、
を実行すると、全てのファイルが/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をリスタートします。
設定ファイルのデフォルト設定を変更します。
/etc/zabbix/zabbix_proxy.confの設定
小規模な環境(監視するホスト数が10以下)にインストールする場合、デフォルトパラメータを修正する必要はありません。ただし、Zabbixプロキシのパフォーマンスを最大限に高めるには、デフォルトパラメータを変更する必要があります。ホスト名とサーバのパラメータが正しく設定されていることを確認してください。サンプルとしてmisc/conf/zabbix_proxy.confが提供されているので、必要に応じて参照してください。
プロキシプロセスの実行
zabbix_proxyを実行します。
クライアントサイド
Zabbixアカウントの作成
エージェントを実行するユーザを作成します。本番環境用に、特権を持たない専用アカウント(通常はzabbix)を作成する必要があります。Zabbixエージェントは、rootアカウントで実行できないように保護されています。
ZABBIXソースの展開
使用するシステムに対応するソースコードの設定とコンパイル
クライアント用のソースだけをコンパイルする必要があります。
クライアントのソースを設定するには、以下のコマンドを実行します。
ライブラリをスタティックリンクする場合はフラグ--enable-staticを使用します。コンパイルしたバイナリを複数のホストに分散させる場合は、分散先のホストに必要なライブラリが存在しなくてもバイナリが動作するように、このフラグを使用する必要があります。
エージェントのビルド
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をリスタートします。
/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を実行
zabbix_agentを使用する場合は、zabbix_agentdは実行しないでください。
システムで共有メモリに2MBを割り当て可能であることを確認してください。この共有メモリを割り当てられない場合、エージェントの起動は失敗して、エージェントのログファイルに「Can't allocate shared memory for collector.」というメッセージが出力されます。この現象はSolaris 8で発生する可能性があります。
ブラウザでZABBIX URLに移動します。
GPL v2の内容を確認して合意します。
ソフトウェアの前提条件を全て満たしていることを確認します。
前提条件 最小値 | 説明 | |
---|---|---|
PHPバージョン 5.0 | ||
PHPメモリ制限 8MB | php. | ni内での記述:\\memory_limit = 128M |
PHP POSTの最大サイズ 8MB | php.i | i内での記述:\\post_max_size = 8M |
PHP最大実行時間 300秒 | php.in | 内での記述:\\max_execution_time = 300 |
PHPデータベースサポート MySQL, Or | cle, PostgreSQL, SQLiteのいずれか: 以下のモジュールのいずれか1 | がインストールされている必要があります。\\php-mysql, php-sqlora8, php-pgsql, php-sqlite3 |
**PHP BC math ** | 任意 P | P5でコンパイルされていること |
GDバージョン 2.0以 | モジュールp | p-gd |
イメージ形式 少なくとも | NGに対応していること モジュールphp-gd |
データベースを設定します。Zabbixデータベースは作成済みである必要があります。
Zabbixサーバの詳細を入力します。
これまでに設定した内容を確認します。
設定ファイルをダウンロードして、conf/に配置します。
インストール完了です。
このステップは分散監視の場合にのみ実行します。
分散環境でZABBIXを使用する場合、以下のコマンドを実行する必要があります。
ここで、ノードIDは一意なノードIDです。例:
このコマンドは、データベースデータをノードID「1」で使用できるように変換し、ローカルノードを追加します。
Zabbixウェブインタフェースの使用準備は完了です。デフォルトのユーザ名は「Admin」、パスワードは「zabbix」です。