Zabbix Documentation 1.8

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

User Tools

Site Tools


Sidebar

jp:manual:installation

2 インストール

1 Zabbixの入手方法

最新バージョンの情報およびダウンロード手順については、Zabbixホームページ(http://www.zabbix.com)を参照してください。

Zabbixはソースパッケージとして配布されていますが、いくつかのOSについてはコンパイル済みのバイナリが含まれています。

2011/05/03 07:20

2 要件

2.1 ハードウェア要件

2.1.1 メモリ要件

Zabbixには、十分な量の物理メモリとディスク容量が必要です。導入当初は、物理メモリ128MBとディスク空き容量256MBがあれば十分です。ただし、必要なディスク容量は、監視するホストとパラメータの数によって異なります。監視パラメータのヒストリを長期間保存することを計画している場合、データベースにヒストリを保存するための十分な容量として少なくとも2GBを確保することを検討する必要があります。Zabbixデーモンプロセスは、それぞれがデータベースサーバと複数の接続を確立して動作します。接続に割り当てられるメモリ容量は、データベースエンジンの設定によって異なります。

物理メモリの容量を増やすほど、データベースは高速に動作し、その結果Zabbixも高速に動作します。
2.1.2 CPU要件

Zabbix、特にZABBIXデータベースは、監視パラメータの数と使用するデータベースエンジンによって程度は異なりますが、CPUリソースを大量に消費します。

2.1.3 その他のハードウェア

ZabbixのSMS通知機能を使用する場合、シリアルポートとシリアルGSMモデムが必要です。

2.1.4 ハードウェア設定の例

以下の表に、様々なハードウェア設定の例を示します。

名前 プラットフォーム CPU/メモリ データベース 監視するホスト数
小規模 Ubuntu Linux PII 350MHz 256MB MySQL MyISAM 20
中規模 Ubuntu Linux 64ビット AMD Athlon 3200+ 2GB MySQL InnoDB 500
大規模 Ubuntu Linux 64ビット Intel Dual Core 6400 4GB RAID10 MySQL InnoDBまたはPostgreSQL >1000
非常に大規模 RedHat Enterprise Intel Xeon 2xCPU 8GB Fast RAID10 MySQL InnoDBまたはPostgreSQL >10000
実際の設定は、アクティブなアイテムの数と更新速度によって大きく異なります。大規模システムでは、データベースを専用のマシンで動作させることを強くお奨めします。

2.2 サポートされるプラットフォーム

監視サーバのセキュリティ要件とミッションクリティカルな性質を考慮した場合、必要とされるパフォーマンス、フォールトトレランス、および復旧のしやすさを安定して実現できるオペレーティングシステムはUNIXだけです。Zabbixは、市販されている主なバージョンのUNIXで動作します。

以下のプラットフォームで動作確認済みです。

  • AIX
  • FreeBSD
  • HP-UX
  • Linux
  • Mac OS/X
  • NetBSD
  • OpenBSD
  • SCO Open Server
  • Solaris
  • Windows 2000、2003、XP、Vista(Zabbixエージェントのみ)
上記以外のUNIXライクなオペレーティングシステムでも同様に動作可能です。

2.3ソフトウェア要件

Zabbixは、最新のApacheウェブサーバ、主なデータベースエンジン、およびPHPスクリプト言語を組み合わせて動作します。

Zabbixが動作するには、以下のソフトウェアが必要です。

ソフトウェア バージョン コメント
Apache 1.3.12以降
PHP 5.0以降
PHP modules:
php-gd
GD 2.0以降 PHP GDモジュールは、PNGイメージ対応である必要があります。
PHP TryeTypeサポート --with-ttf
PHP bcサポート php-bcmath, --enable-bcmath
PHP XMLサポート ディストリビュータによってはphp-xmlまたはphp5-domが異なるパッケージとして提供されている場合があります。
PHP socketサポート php-net-socket, --enable-sockets. ユーザスクリプトをサポートするために必要です。
PHP multibyteサポート php-mbstring, --enable-mbstring
MySQL
php-mysql
3.22以降 MySQLをZabbixのバックエンドデータベースとして使用する場合に必要です。
Oracle
php-oci8
OracleをZabbixのバックエンドデータベースとして使用する場合に必要です。
PostgreSQL
php-pgsql
7.0.2以降
2.3.1 クライアントサイドのウェブブラウザ

HTMLとPNGイメージをサポートする必要があります。設定でCookieとJavaScriptを有効にする必要があります。最新バージョンのMozilla Firefox、Microsoft Internet Explorer、Opera、Konquerorがサポートされます。その他のブラウザ(Google Chrome、Apple Safari)もZabbixで同様に機能します。

2.4 サーバ要件

要件 説明
OpenIPMI IPMIをサポートする場合に必要です。
libssh2 SSHをサポートする場合に必要です。バージョン1.0以降

2.5 データベースエンジンの選択

ZABBIXサーバおよびプロキシでは、以下の4つのデータベースエンジンがサポートされています。

  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite

2.6 データベースサイズ

Zabbix設定データを保存するために一定量のディスク容量が必要ですが、ほとんど増えることはありません。

Zabbixデータベースサイズは、主に格納されたヒストリデータの量に関する以下の数量によって決まります。

  • 1秒あたりに処理される値の数

Zabbixサーバが1秒あたりに受信する新しい値の平均個数です。たとえば、3000個のアイテムを更新速度60秒で監視する場合、1秒あたりの値の数は3000/60=50個になります。

これは、毎秒50個の新しい値がZabbixデータベースに追加されることを意味します。

  • ヒストリデータ用のhousekeeper設定

収集した値は、一定期間(通常は数週間から数ヶ月)だけ保存されます。新しい値を追加するたびに、データおよびインデックス用に一定量のディスク容量が消費されます。

そのため、1秒あたり50個の値を受信して、そのヒストリを30日間保存する場合、値の総数は(30*24*3600)*50=129,600,000、すなわち約1.3億個になります。

使用するデータベースエンジンと受信する値のデータ型(浮動小数点、整数、文字列、ログファイルなど)によって異なりますが、1つの値を保存するために必要なディスク容量は40バイトから数百バイトまで様々です。通常は、1つの値に約50バイトが必要です。上記の例で考えると、1.3億個の値を保存するために、1.3億*50バイト=6.5GBのディスク容量が必要になります。

  • トレンドデータ用のhousekeeper設定

トレンドテーブルの各アイテムについて、1時間の最大/最小/平均/個数の統計情報が保存されます。保存されたデータは、トレンドグラフや長期間グラフの表示に使用されます。

データベースのタイプにもよりますが、Zabbixデータベースに上記の統計情報を1回分保存するために必要なディスク容量は128バイトです。たとえば、3000個の値のトレンドデータを5年分保存しようとすると、1年分で(3000/3600)*(24*3600*365)* 128 = 6.3GBなので、5年分では 31.5GB のディスク容量が必要になります。

  • イベントデータ用のhousekeeper設定

1個のイベントにつき約130バイトのディスク容量が必要です。Zabbixで毎日発生するイベントの数を算出することは非常に困難です。最悪のケースとして、1秒に1個のイベントが発生すると仮定します。

イベントデータを3年分保存する場合、3*365*24*3600* 130 = 11GBのディスク容量が必要になります。

以下の表に、ZABBIXシステムに必要なディスク容量の算出に役立つ式を示します。

パラメータ 必要なディスク容量を算出するための式(バイト)
Zabbix設定 一定サイズ。通常は10MB以下です。
ヒストリ days×(items/refresh rate)×24×3600×bytes
アイテム:アイテム数<br1/>
日:イベント履歴を保存する日数<br2/>
更新間隔:アイテムの平均更新速度<br3/>
バイト:1個の値を保存するために必要なバイト数。データベースエンジンにもよりますが、通常は50バイトです。
トレンド days×(items/3600)×24×3600×bytes
アイテム:アイテム数<br1/>
日:イベント履歴を保存する日数<br2/>
バイト:1個のトレンドを保存するために必要なバイト数。データベースエンジンにもよりますが、通常は128バイトです。
イベント days×events×24×3600×bytes
イベント:1秒あたりのイベント個数。最悪のケースでは1秒に1個のイベントが発生すると想定しています。
日:イベント履歴を保存する日数<br2/>
バイト:1個のトレンドを保存するために必要なバイト数。データベースエンジンにもよりますが、通常は130バイトです。

以上より、必要な総ディスク容量は、以下の式で計算できます。
設定+ヒストリ+トレンド+イベント
ここで算出したディスク容量は、Zabbixをインストールした直後から使用されるわけではありません。データベースサイズは最初は増え続けますが、ある時点で一定の値を維持するようになります。どの時点で一定になるかは、housekeeperの設定によって異なります。<node>分散設定のノードで必要なディスク容量も同様の方法で計算できますが、1つのノードにリンクされている子ノードの総数にも依存します。</node>

2.7 時間の同期

Zabbixが動作するサーバでは、正確なシステム日時を維持することが非常に重要です。ntpdはよく知られているデーモンの1つで、ホストの時刻を他のマシンの時刻と同期します。

2011/05/03 07:21

3 コンポーネント

3.1 Zabbixコンポーネント

Zabbixは、複数の有名なソフトウェアコンポーネントから構成されています。各コンポーネントの役割を以下に示します。

3.2 Zabbixサーバ

これはZabbixソフトウェアの中核です。簡単なサービスチェック機能を使用して、ネットワーク経由で利用するサービス(ウェブサーバやメールサーバなど)をリモートからチェックしたり、エージェントから可用性や整合性に関する情報や統計情報を受信します。設定データ、統計データ、および運用データは全てサーバに保存されます。監視対象システムで問題が発生したときに、能動的に管理者にアラートを送信するのもサーバの役割です。

Zabbixは、エージェントレスで監視したり、SNMPエージェントでネットワークデバイスを監視することもできます。

3.3 Zabbixプロキシ

プロキシは、Zabbixのオプションとして使用します。プロキシは、ZabbixXサーバの代わりにパフォーマンスおよび可用性データが収集されます。収集された全てのデータをローカルのバッファに格納し、プロキシが属するZabbixサーバに転送します。

Zabbixプロキシは、ローカル管理者のいないリモートの場所、支店、ネットワークを集中監視するための理想的なソリューションとなります。

また、Zabbixプロキシを使用して、単一のZabbixサーバの負荷を分散することもできます。この場合、プロキシのみでデータが収集されるため、サーバの処理に対するCPUとディスクI/Oの使用量が軽減されます。

3.4 Zabbixエージェント

ネットワークに接続されたシステムのローカルのリソースやアプリケーション(ハードドライブ、メモリ、プロセッサの統計情報など)を能動的に監視するには、そのシステムでZabbixエージェントを実行する必要があります。エージェントは、動作するシステムの稼働情報を収集し、Zabbixサーバで処理するためにそれらのデータを送信します。障害(ハードディスク満杯、サービスプロセスのクラッシュなど)が発生した場合、Zabbixサーバは、障害が発生したマシンに関するアラートを能動的に管理者に送信します。

Zabbixエージェントは統計情報を収集する際にネイティブのシステムコールを使用するので、非常に効率的に動作します。

3.5 ウェブインタフェース

監視データやZabbixの設定データに、プラットフォームを選ばずにどこからでも簡単にアクセスできるように、ウェブインタフェースが用意されています。このインタフェースはZabbixサーバに組み込まれており、通常はZabbixサーバが動作するのと同じ物理マシン上で動作しますが、別マシン上で動作させることもできます。

SQLiteを使用する場合は、SQLiteが動作するのと同じ物理マシン上でWebインターフェースを実行する必要があります。

2011/05/03 07:22

4 ソースからのインストール

4.1 ソフトウェア要件

ソースからZabbixサーバまたはエージェントを作成するためには、ソフトウェアの追加が必要になります。

Zabbixをコンパイルするために必要なソフトウェアを以下に示します (必要なソフトウェアのバージョン):

以下のデータベースエンジンのうちいずれか1つ:

  • IBM DB2のヘッダとライブラリ - CLIのヘッダーとライブラリが必要です。
  • MySQLのヘッダとライブラリ
  • Oracleのヘッダとライブラリ - OCIのヘッダーとライブラリが必要です。
  • PostgreSQLのヘッダとライブラリ
  • SQLiteのヘッダとライブラリ
通常は、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を処理するために必要です。

4.2Zabbixディストリビューションの構造

  • src

フロントエンドを除く全てのZabbixのソースが格納されています。

  • src/zabbix_server

zabbix_serverのMakefileとソースが格納されています。

  • src/zabbix_agent

zabbix_agentとzabbix_agentdのMakefileとソースが格納されています。

  • src/zabbix_get

zabbix_getのMakefileとソースが格納されています。

  • src/zabbix_sender

zabbix_senderのMakefileとソースが格納されています。

  • include

Zabbixのインクルードファイルが格納されています。

  • misc
    • misc/init.d

様々なプラットフォーム用のスタートアップスクリプトが格納されています。

  • frontends
    • frontends/php

* PHPフロントエンドのファイルが格納されています。

  • create

データベースの初期作成用のSQLスクリプトが格納されています。

  • create/schema

データベース作成スキーマが格納されています。

  • create/data

データベース初期作成用データが格納されています。

  • upgrades

Zabbixの様々なバージョン用のアップグレード手順が格納されています。

4.3 Zabbixサーバ

サーバサイド

ステップ1

Zabbixスーパーユーザアカウントの作成

このユーザはサーバを実行することができます。本番環境用に特権を持たない(Zabbixが通常使用する)専用アカウントを作成する必要があります。rootやbinまたは任意の特権を持つアカウントでZabbixを実行するとセキュリティ上のリスクが発生します。それは止めてください。

Zabbixサーバプロセス(zabbix_server)は、rootアカウントで実行できないように保護されています。
ステップ2

ZABBIXソースの展開

shell> tar -zxf zabbix-1.8.tar.gz
ステップ3

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に設定されている必要があります。データベース·サーバを起動する前に次のコマンドを実行します:

shell> db2set 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で登録され、データベースオブジェクト作成権限が与えられているものとします):

shell> cd create

data/imagesをoracleサーバのどこかにコピーします、例えば/home/oracle:

shell> scp -r data/images [email protected]:/home/oracle

ファイルdata/images_oracle.sqlを編集し、images_dir変数に“/home/oracle/images”を設定します:

CREATE OR REPLACE DIRECTORY image_dir AS '/home/oracle/images'

データのインポートを行います:

shell> sqlplus zabbix/[email protected]/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
ステップ4

使用するシステムに対応するソースコードの設定とコンパイル

サーバ(マシンを監視する)とクライアント(監視されるマシン)は、どちらもソースをコンパイルして作成する必要があります。サーバのソースを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で動作しないことに注意してください。
ステップ5

Makeとインストール

shell> make install

デフォルトでは、make installを実行すると全てのファイルが/usr/local/bin、/usr/local/libなどにインストールされます。十分な権限を持っていることを確認してください。

--prefixを使用し/usr/local以外のインストールプレフィックスを指定することができます、例えば--prefix=/home/zabbix。この場合、デーモンのバイナリは<prefix>/sbinへ、ユーティリティは<prefix>/binへインストールされます。Manページは<prefix>/share配下にインストールされます。

Step 6

/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のポート番号です。

Step 7

/etc/inetd.confの設定

推奨されているzabbix_agentdではなく、zabbix_agentを使用する場合は、以下の行を追加する必要があります。

zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent

inetdをリスタートします。

shell> killall -HUP inetd

設定ファイルのデフォルト設定を変更します。

Step 8

設定ファイルを保持するための場所を作成:

mkdir /etc/zabbix
Step 9

/etc/zabbix/zabbix_agentd.confの設定

zabbix_agentdをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZABBIXサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。サンプルとしてmisc/conf/zabbix_agentd.confが提供されているので、必要に応じて参照してください。

Step 10

/etc/zabbix/zabbix_server.confの設定

小規模な環境(監視するホスト数が10以下)にインストールする場合、デフォルトパラメータを修正する必要はありません。ただし、Zabbixのパフォーマンスを最大限に高めるには、デフォルトパラメータを変更する必要があります。詳細については、「パフォーマンスチューニング」を参照してください。サンプルとしてmisc/conf/zabbix_server.confが提供されているので、必要に応じて参照してください。

Step 11

サーバプロセスの実行

サーバサイドでzabbix_serverを実行します。

shell> cd sbin
shell> ./zabbix_server
Step 12

エージェントの実行

必要なマシン上でzabbix_agentdを実行します。

shell> cd sbin
shell> ./zabbix_agentd

4.4Zabbixプロキシ

Zabbixプロキシは特別なプロセスです。Zabbixを実行する必要はありません。

ステップ1

Zabbixスーパーユーザアカウントの作成

このユーザはプロキシを実行することができます。本番環境用に特権を持たない(Zabbixが通常使用する)専用アカウントを作成する必要があります。rootやbinまたは任意の特権を持つアカウントでZabbixプロキシを実行するとセキュリティ上のリスクが発生します。それは止めてください。

Zabbixプロキシプロセス(zabbix_proxy)は、rootアカウントで実行できないように保護されています。
ステップ2

Zabbixソースの展開

shell> tar -zxf zabbix-1.8.tar.gz
ステップ3

Zabbixデータベースの作成(オプション)

データベースが存在しない場合は、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で登録され、データベースオブジェクト作成権限が与えられているものとします):

shell> cd create/schema 
shell> cat oracle.sql | sqlplus zabbix/password >out.log
エラーメッセージが出力された場合は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の場合:

shell> cd create/schema
shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db 
データベースが存在しない場合は自動的に作成されます。
ステップ4

使用するシステムに対応するソースコードの設定とコンパイル

ソースをコンパイルして、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はどちらも指定する必要はありません。

クライアントバイナリとプロキシバイナリを両方ともコンパイルする場合は、以下のコマンドを実行します。

shell> ./configure --enable-proxy --enable-agent --with-mysql –with-net-snmp –with-libcurl

パラメータ–enable-staticを使用すると、強制的にスタティックリンクすることができます。

ステップ5

Makeとインストール

shell> make install

デフォルトでは、

make install

を実行すると、全てのファイルが/usr/local/bin、/usr/local/libなどにインストールされます。–prefixを使用すると、/usr/local以外のインストールプリフィクスを指定できます。

Step 6

/etc/servicesの設定

このステップはオプションです。実行することをお奨めします。クライアント(監視される)マシンで、以下の行を/etc/servicesに追加します。

zabbix_agent 10050/tcp zabbix_trap 10051/tcp

Step 7

/etc/inetd.confの設定

推奨されているzabbix_agentdではなく、zabbix_agentを使用する場合は、以下の行を追加する必要があります。

zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent

inetdをリスタートします。

shell> killall -HUP inetd

設定ファイルのデフォルト設定を変更します。

Step 8

/etc/zabbix/zabbix_proxy.confの設定

小規模な環境(監視するホスト数が10以下)にインストールする場合、デフォルトパラメータを修正する必要はありません。ただし、Zabbixプロキシのパフォーマンスを最大限に高めるには、デフォルトパラメータを変更する必要があります。ホスト名とサーバのパラメータが正しく設定されていることを確認してください。サンプルとしてmisc/conf/zabbix_proxy.confが提供されているので、必要に応じて参照してください。

Step 9

プロキシプロセスの実行

zabbix_proxyを実行します。

shell> cd sbin
shell> ./zabbix_proxy

4.5Zabbixエージェント

クライアントサイド

ステップ1

Zabbixアカウントの作成

エージェントを実行するユーザを作成します。本番環境用に、特権を持たない専用アカウント(通常はzabbix)を作成する必要があります。Zabbixエージェントは、rootアカウントで実行できないように保護されています。

ステップ2

ZABBIXソースの展開

shell> gunzip zabbix-1.6.tar.gz && tar xvf zabbix-1.6.tar
ステップ3

使用するシステムに対応するソースコードの設定とコンパイル

クライアント用のソースだけをコンパイルする必要があります。

クライアントのソースを設定するには、以下のコマンドを実行します。

shell> ./configure --enable-agent
ライブラリをスタティックリンクする場合はフラグ–enable-staticを使用します。コンパイルしたバイナリを複数のホストに分散させる場合は、分散先のホストに必要なライブラリが存在しなくてもバイナリが動作するように、このフラグを使用する必要があります。
ステップ4

エージェントのビルド

shell> make

bin/から/opt/zabbix/bin、または他のディレクトリにコピーします。他の一般的なディレクトリは/usr/local/bin または /usr/local/zabbix/binです。

ステップ5

/etc/servicesの設定

このステップは必ずしも必要ではありませんが、実行することをお奨めします。

クライアント(監視される)マシンで、以下の行を/etc/servicesに追加します。

zabbix_agent 10050/tcp zabbix_trap 10051/tcp

Step 6

/etc/inetd.confの設定

推奨されているzabbix_agentdではなく、zabbix_agentを使用する場合は、以下の行を追加する必要があります。

zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent

inetdをリスタートします。

shell> killall -HUP inetd
Step 7

/etc/zabbix/zabbix_agent.confの設定

zabbix_agentをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZabbixサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。このファイルで、EOL文字は使用しないでください。

サンプルとしてmisc/conf/zabbix_agent.confが提供されているので、必要に応じて参照してください。

Step 8

/etc/zabbix/zabbix_agentd.confの設定

zabbix_agentdをインストールする全てのホストでこのファイルを設定する必要があります。このファイルには、ZabbixサーバのIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。サンプルとしてmisc/conf/zabbix_agentd.confが提供されているので、必要に応じて参照してください。

Step 9

監視する全てのマシン上でzabbix_agentdを実行

shell> /opt/zabbix/bin/zabbix_agentd
zabbix_agentを使用する場合は、zabbix_agentdは実行しないでください。
システムで共有メモリに2MBを割り当て可能であることを確認してください。この共有メモリを割り当てられない場合、エージェントの起動は失敗して、エージェントのログファイルに「Can't allocate shared memory for collector.」というメッセージが出力されます。この現象はSolaris 8で発生する可能性があります。

4.6Zabbix Webインタフェース

ステップ1

ブラウザでZABBIX URLに移動します。

ステップ2

GPL v2の内容を確認して合意します。

ステップ3

ソフトウェアの前提条件を全て満たしていることを確認します。

前提条件 最小値 説明
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
ステップ4

データベースを設定します。Zabbixデータベースは作成済みである必要があります。

ステップ5

Zabbixサーバの詳細を入力します。

Step 6

これまでに設定した内容を確認します。

Step 7

設定ファイルをダウンロードして、conf/に配置します。

Step 8

インストール完了です。

Step 9

このステップは分散監視の場合にのみ実行します。

分散環境でZABBIXを使用する場合、以下のコマンドを実行する必要があります。

shell> ./zabbix_server –n <nodeid>

ここで、ノードIDは一意なノードIDです。例:

shell> ./zabbix_server –n 1

このコマンドは、データベースデータをノードID「1」で使用できるように変換し、ローカルノードを追加します。

Step 10

Zabbixウェブインタフェースの使用準備は完了です。デフォルトのユーザ名は「Admin」、パスワードは「zabbix」です。

2011/05/03 07:30

2.5 アップグレード

2.5.1 リリースレベルの変更

サーバのバイナリとフロントエンドのアップグレードの為にリリースレベルの変更が必要とされます。リリースノートに記述れさている場合は、幾つかのインデックスがデータベースのパフォーマンス改善のために追加されることがあります。アップグレードは1.8.1から1.8.3等へといくつかのバージョンへ簡単なステップで実行することができます。

詳細はインストールとアップグレードに関する注意事項を参照してください。

2011/05/03 07:31

6 Zabbixアプライアンスの使用

Zabbixの既存のサーバを手動で設定したり再利用したりする以外に、Zabbixアプライアンスをダウンロードできます。

はじめに、アプライアンスを起動して、DHCPで受信したIPにブラウザを移動します。

Zabbixアプライアンスの起動

Zabbixアプライアンス バージョンは以下のopenSUSEのバージョンに基づいています:

Zabbixアプライアンス バージョンOpenSUSEバージョン
1.8.211.2
1.8.3
1.8.411.3
1.8.5
1.8.6
1.8.711.4
1.8.8
1.8.9
1.8.10
1.8.11
1.8.12

Zabbixアプライアンスは、以下の形式で利用可:

  • vmdk (VMWare/Virtualbox);
  • OVF (Open Virtualisation Format);
  • CD iso;
  • HDD/flash image;
  • Xen guest.

Zabbixアプライアンスでは、MySQLでZabbixサーバを設定して実行し、ウェブインタフェースを利用できます。

アプライアンスはSUSE Studioを利用して構築されています。

6.1SUSE設定の変更

OpenSUSEの基本設定にいくつかの変更が適用されています。

6.1.1MySQL設定の変更
  • バイナリログが無効になっています。
  • InnoDBは、各テーブルのデータを個別のファイルに保存するように設定されています。
6.1.2スタティックIPアドレスの使用

デフォルトでは、アプライアンスはDHCPを使用してIPアドレスを取得します。スタティックIPアドレスを指定するには、以下のようにします。

  • rootユーザでログインします。
  • お好きなエディタでファイル/etc/sysconfig/network/ifcfg-eth0を開きます。
  • BOOTPROTO変数をstaticに設定します。
  • ネットワークに対して、IPADDRNETMASKなどのパラメータを必要に応じて設定します。
  • ファイルを/etc/sysconfig/network/routes作成します。デフォルトrouteにはdefault 192.168.1.1 - -を使用しています。 (あなたのゲートウェイ・アドレスに置き換えてください).
  • コマンドrcnetwork restartを実行します。
6.1.3 Changing time zone

By default the appliance uses UTC for the system clock. To change the time zone, copy appropriate file from /usr/share/zoneinfo to /etc/localtime, for example:

cp /usr/share/zoneinfo/Europe/Riga /etc/localtime
6.1.4その他の変更
  • ネットワークは、DHCPを使用してIPアドレスを取得するように設定されています。
  • ユーティリティfpingは、権限4710を保持するように設定されています。また、所有グループをzabbixに変更し、suidまたはzabbixグループでしか使用できません。
  • ntpdは、公開プールサーバに同期するように設定されています。
  • Zabbixとの連携や監視が全般的に容易になるように様々な基本ユーティリティが追加されています。

6.2Zabbix設定

アプライアンスのZabbix設定には、パスワードとその他の設定について以下の変更があります。

6.2.1パスワード

システム:

  • root:zabbix
  • zabbix:zabbix

データベース:

  • root:zabbix
  • zabbix:zabbix

Zabbix Webインタフェース:

  • admin:zabbix
If you change frontend password, do not forget to update password setting web monitoring (Configuration → WEB).

データベースユーザのパスワードを変更するには、以下の場所で変更してください。

  • MySQL;
  • zabbix_server.conf;
  • zabbix.conf.php.
6.2.2ファイルの場所

設定ファイルは/etc/zabbixにあります。

Zabbixログファイルは/var/log/zabbixにあります。

ユーザzabbixのホームディレクトリは/var/lib/zabbixです。

6.2.3Zabbix設定の変更
  • デフォルトのLinuxテンプレートの一部のアイテムとトリガーが無効になっています(ほとんどは、アプライアンスの設定に対応していなかったものです)。
  • Zabbixウェブインタフェースのサーバ名が「Zabbix 1.8 Appliance」に設定されています。
  • ウェブインタフェースのタイムゾーンがEurope/Riga、Zabbixホームに設定されています(これは/etc/php5/apache2/php.iniで変更できます)。
  • 混乱しないように、無効なトリガーとウェブシナリオがデフォルトで表示されます。
6.2.4 Preserving configuration

If you are running live CD version of the appliance or for some other reason can't have persistent storage, you can create a backup of whole database, including all configuration and gathered data.

To create the backup, run:

mysqldump zabbix | bzip2 -9 > dbdump.bz2

Now you can transfer file dbdump.bz2 to another machine.

To restore from the backup, transfer it to the appliance and execute:

bzcat dbdump.bz2 | mysql zabbix
Make sure that Zabbix server is stopped while performing the restore.

6.3Webインタフェースへのアクセス

デフォルトでは、以下の場所からウェブインタフェースにアクセスできます。

  • 127.0.0.1
  • 192.168.0.0/16
  • 10.0.0.0/8
  • ::1

ルート(/)はウェブサーバ上の/zabbixにリダイレクトされるため、ウェブインタフェースにはhttp:<host>とhttp:<host>/zabbixのどちらからもアクセスできます。

これは/etc/apache2/conf.d/zabbix.confでカスタマイズできます。このファイルの変更後にウェブサーバを再起動してください。再起動するには、SSHを使用してrootユーザでログインし、以下を実行します。

service apache2 restart

6.4ファイアウォール

デフォルトでは、- 22 (SSH)と80 (HTTP)の2つのポートのみが開いています。追加のポート(Zabbixサーバとエージェントのポートなど)を開くには、SuSEfirewall2ユーティリティでiptablesルールを変更します。

SuSEfirewall2 open EXT TCP zabbix-trapper zabbix-agent

次に、ファイアウォールのルールをリロードします。

SuSEfirewall2 stop
SuSEfirewall2 start

6.5監視機能

Zabbixサーバは、以下のオプションを有効にしてコンパイルされています。

  • SNMP;
  • IPMI;
  • Web監視;
  • SSH2;
  • IPv6.

用意された設定では、Zabbixサーバ自体は、一部の基本パラメータ用にローカルにインストールされたエージェントによって監視されます。また、Zabbixウェブインタフェースは、ウェブ監視を使用して同様に監視されます。

Zabbixアプライアンスは自身のWebインターフェースを監視します。
ウェブウェブインタフェースの監視がログインすることに注意してください。これにより、多くのエントリが監査ログに追加されます。

6.6命名規則、init、その他のスクリプト

Zabbixデーモンの名前は、SUSEガイドラインに従い、アンダースコアを使用する標準のものからダッシュに変更されています。名前は以下のようになります。

  • zabbix-agentd
  • zabbix-server

同様に、設定ファイルは以下のようになります。

  • /etc/zabbix/zabbix-server.conf
  • /etc/zabbix/zabbix-agentd.conf

適切なinitスクリプトが提供されています。Zabbixサーバをコントロールするには、以下のいずれかを使用します。

service zabbix-server status
rczabbix-server status
/etc/init.d/zabbix-server status

Zabbixエージェントのデーモンの場合、serveragentdに置き換えます。

6.6.1スケジュールされたスクリプト

スケジュールされたスクリプト/var/lib/zabbix/binがあります。これは、Zabbixサーバが動作していない場合は再起動するように10分ごとにcrontabから実行されます。このスクリプトは問題発生時刻と起動時刻を/var/log/zabbix/server_problems.logに記録します。バージョン1.8.3以降のZabbixアプライアンスで利用できます。

Make sure to disable this crontab entry if stopping of Zabbix server is desired.
6.6.2 Increasing available diskspace
Create a backup of all data before attempting any of the steps.

Available diskspace on the appliance might not be sufficient. In that case it is possible to expand the disk. To do so, first expand the block device in your virtualisation environment, then follow these steps.

Start fdisk to change the partition size. As root, execute:

fdisk /dev/sda

This will start fdisk on disk sda. Next, switch to sectors by issuing:

u
Don't disable DOS compatibility mode by entering c. Proceeding with it disabled will damage the partition.

Then delete the existing partition and create new one with desired size. In majority of cases you will accept the available maximum, which will expand the filesystem to whatever size you made available for the virtual disk. To do so, enter the following sequence in fdisk prompt:

d
n
p
1
(accept default 63)
(accept default max)

If you wish to leave some space for additional partitions (swap etc), you can enter another value for last sector. When done, save the changes by issuing:

w

Reboot the virtual machine (as the partition we modified is in use currently). After reboot, filesystem resizing can take place.

resize2fs /dev/sda1

That's it, filesystem should be grown to the partition size now.

6.7 Format-specific notes

6.7.1 Xen

To use images in Xen server, run:

xm create -c file-with-suffix.xenconfig

See the following pages for more information on using Xen images:

Converting image for XenServer

To use Xen images with Citrix Xenserver you have to convert the disk image. To do so:

  • Create a virtual disk which is at least as large as the image
  • Find out the UUID for this disk
xe vdi-list params=all
  • If there are lots of disks, they can be filtered by name parameter name-label, as assigned when creating the virtual disk
  • Import the image
xe vdi-import filename="image.raw" uuid="<UUID>"

Instructions from Brian Radford blog.

6.7.2 VMWare

The images in vmdk format are usable directly in VMWare Player, Server and Workstation products. For use in ESX, ESXi and vSphere they must be converted using VMWare converter.

6.7.3 HDD/flash image (raw)

See http://en.opensuse.org/openSUSE:SUSE_Studio_Disc_Image_Howtos for more information on disk images.

6.8 Known issues

6.8.1 For appliance 1.8.8

Zabbix appliance 1.8.8 reports itself as being based on 1.8.7 in the boot messages. This is incorrect, actual appliance contains Zabbix 1.8.8.

2011/05/03 07:32