3 ソースコードからのインストール

Zabbixの最新バージョンはソースからコンパイルすることで入手できます。

Zabbixをソースからインストールするためのステップバイステップのチュートリアルはこちらです。

1 Zabbixデーモンのインストール

1 ソースアーカイブをダウンロード

Zabbixダウンロードページにアクセスし、ソースコードのアーカイブをダウンロードします。 ダウンロードしたら、次のコマンドを実行して解凍します。

$ tar -zxvf zabbix-6.4.0.tar.gz

コマンドには正しいZabbixバージョンを入力してください。ダウンロードしたアーカイブの名前と一致する必要があります。

2 ユーザーアカウントの作成

すべてのZabbixデーモンプロセスには、権限のないユーザーが必要です。 Zabbixデーモンが権限のないユーザーアカウントから起動された場合、そのユーザーとして実行されます。

ただし、デーモンが'root'アカウントから起動された場合は、'zabbix'ユーザーアカウントに切り替わります。したがって、このアカウントが存在する必要があります。 このようなユーザーアカウント (独自のグループ"zabbix"内) を作成するには、以下のコマンドを実行します。

RedHatベースのシステムの場合:

groupadd --system zabbix
       useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

Debianベースのシステムの場合:

addgroup --system --quiet zabbix
       adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

Zabbixプロセスにはホーム ディレクトリは必要ないため、ホームディレクトリを作成することはお勧めしません。 ただし、それを必要とする機能 (例: MySQL認証情報を$HOME/.my.cnfに保存する) を使用している場合は、次のコマンドを実行して自由に作成できます。

RedHatベースのシステムの場合:

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
       chown zabbix:zabbix /usr/lib/zabbix

Debianベースのシステムの場合:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
       chown zabbix:zabbix /var/lib/zabbix

Zabbixフロントエンドのインストールには別のユーザーアカウントは必要ありません。

Zabbixサーバーエージェントが同じマシン上で実行されている場合は、サーバーの実行にはエージェントの実行とは異なるユーザーを使用することをお勧めします。 両方を同じユーザーとして実行してしまうと、エージェントはサーバー設定ファイルにアクセスでき、Zabbixの管理者レベルのユーザーはデータベースパスワードなどを非常に簡単に取得できてしまいます。

Zabbixをrootbin、または特別な権限を持つその他のアカウントとして実行すると、セキュリティ上のリスクが生じます。

3 Zabbixデータベースの作成

Zabbixサーバープロキシデーモン、Zabbixフロントエンドには、データベースが必要です。 Zabbixエージェントの実行には必要ありません。

データベーススキーマを作成し、データセットを挿入するためのSQLスクリプトが提供されています。 Zabbixプロキシデータベースにはスキーマのみが必要ですが、Zabbixサーバーデータベースにはスキーマ上のデータセットも必要です。

Zabbixデータベースを作成したら、次のZabbixのコンパイル手順に進みます。

4 ソースの構成

Zabbixサーバー、Zabbixプロキシ、またはZabbix エージェントを構築するには、GNU拡張機能を備えたC99が必要です。 このバージョンは、CFLAGS="-std=gnu99" を設定することで明示的に指定できます。

export CFLAGS="-std=gnu99"

Zabbix Gitリポジトリからインストールする場合は、最初に実行する必要があります:

./bootstrap.sh

Zabbixサーバーまたはプロキシのソースを構成する場合、使用するデータベースの種類を指定する必要があります。サーバーまたはプロキシプロセスで一度にコンパイルできるデータベースタイプは 1 つだけです。

サポートされているすべての構成オプションを確認するには、抽出したZabbixソースディレクトリ内で次のコマンドを実行します。

./configure --help

Zabbixサーバーとエージェントのソースを設定するには、次のようなコマンドを実行します。

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

Zabbixサーバー (PostgreSQLなどを使用)のソースを設定するには、次のコマンドを実行します。

./configure --enable-server --with-postgresql --with-net-snmp

Zabbixプロキシ (SQLiteなどを使用)のソースを設定するには、次のコマンドを実行します。

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Zabbixエージェントのソースを設定するには、次のコマンドを実行します。

./configure --enable-agent

Zabbixエージェント2の場合は、次のコマンドを実行します。

./configure --enable-agent2

A configured Go environment with a currently supported Go version is required for building Zabbix agent 2. Zabbixエージェント2を構築するには、現在サポートされているGoバージョンで構成されたGo環境が必要です。 インストール手順については、go.devを参照してください。

コンパイルオプションに関する注意事項:

  • --enable-agentオプションが使用されている場合、コマンドラインユーティリティzabbix_getおよびzabbix_senderがコンパイルされます。
  • 仮想マシンの監視には--with-libcurlおよび--with-libxml2構成オプションが必要です。--with-libcurlは、SMTP認証とZabbixエージェントアイテムweb.page.*にも必要です。--with-libcurl構成オプションを使用するには、cURL 7.20.0以降が必須であることに注意してください。
  • Zabbixは常にPCREライブラリを使用してコンパイルします (バージョン 3.4.0以降)。インストールはオプションではありません。 --with-libpcre=[DIR]では、libpcreファイルの一般的な場所を検索するのではなく、特定のベースインストール ディレクトリを指定することのみが許可されます。
  • --enable-staticフラグを使用して、ライブラリを静的にリンクできます。 コンパイルされたバイナリをさまざまなサーバーに配布する予定がある場合は、このフラグを使用して、必要なライブラリがなくてもこれらのバイナリが機能するようにする必要があります。 --enable-staticはSolarisでは機能しないことに注意してください。
  • サーバーを構築する場合、 --enable-staticオプションの使用は推奨されません。 サーバーを静的に構築するには、必要なすべての外部ライブラリの静的バージョンが必要です。 設定スクリプトではそれに対する厳密なチェックはありません。
  • デフォルトの場所にないMySQLクライアントライブラリを使用する必要がある場合に、必要なMySQLクライアントライブラリを選択するには、MySQL構成ファイルにオプションのパス--with-mysql=/<path_to_the_file>/mysql_configを追加します。 これは、複数のバージョンのMySQLがインストールされている場合、または同じシステム上にMySQLと一緒にMariaDBがインストールされている場合に便利です。
  • --with-oracleフラグを使用して、OCI APIの場所を指定します。

ライブラリの欠落またはその他の状況により./configureが失敗した場合は、エラーの詳細についてconfig.logファイルを参照してください。 たとえば、libsslが欠落している場合、即座に表示されるエラーメッセージは誤解を招く可能性があります。

checking for main in -lmysqlclient... no
       configure: error: Not found mysqlclient library

config.logにはさらに詳しい説明があります。

/usr/bin/ld: cannot find -lssl
       /usr/bin/ld: cannot find -lcrypto

参照:

5 全体の作成とインストール

Zabbix Gitリポジトリからインストールする場合は、最初に実行する必要があります:

$ make dbschema

make install

このステップは、十分な権限を持つユーザー (通常は'root'、またはsudoを使用) として実行する必要があります。

make installを実行すると、デフォルトでデーモンのバイナリ(zabbix_server, zabbix_agentd, zabbix_proxy)が/usr/local/sbinにインストールされ、クライアントのバイナリ(zabbix_get, zabbix_sender)が/usr/local/binにインストールされます。

/usr/localとは異なる場所を指定するには、ソースを構成する前の手順で--prefixキーを使用します (例: --prefix=/home/zabbix)。 この場合、デーモンのバイナリは<prefix>/sbinにインストールされ、ユーティリティは<prefix>/binにインストールされます。 manページは<prefix>/shareの下にインストールされます。

6 設定ファイルの確認と編集
  • Zabbixエージェント設定ファイル/usr/local/etc/zabbix_agentd.confを編集します

zabbix_agentdがインストールされているすべてのホストに対してこのファイルを設定する必要があります。

ファイル内でZabbixサーバーのIPアドレスを指定する必要があります。 他のホストからの接続は拒否されます。

  • Zabbixサーバー設定ファイル/usr/local/etc/zabbix_server.confを編集します

データベース名、ユーザー、およびパスワード (使用している場合) を指定する必要があります。

小規模なインストール (監視対象ホストが最大10台) の場合、残りのパラメーターはデフォルトのままで問題ありません。 ただし、Zabbixサーバー (またはプロキシ) のパフォーマンスを最大化したい場合は、デフォルトのパラメーターを変更する必要があります。

  • Zabbixプロキシをインストールしている場合は、プロキシ設定ファイル/usr/local/etc/zabbix_proxy.confを編集します

サーバーのIPアドレスとプロキシのホスト名 (サーバーに認識されている必要がある)、およびデータベース名、ユーザー、およびパスワード (使用している場合) を指定する必要があります。

SQLiteでは、データベースファイルへのフルパスを指定する必要があります。 DBユーザーとパスワードは必要ありません。

7 デーモンの起動

サーバー側でzabbix_serverを起動します。

shell> zabbix_server

システムで36MB(またはそれ以上)の共有メモリの割り当てが許可されていることを確認してください。許可されていないと、サーバーが起動せず、サーバーログファイル内に"Cannot allocate shared memory for <type of cache>."というメッセージが表示されます。これはFreeBSD、Solaris 8で発生する可能性があります。

すべての監視対象マシンでzabbix_agentdを実行します。

shell> zabbix_agentd

システムで2MBの共有メモリの割り当てが許可されていることを確認してください。許可されていないと、エージェントが起動せず、エージェントログファイル内に"Cannot allocate shared memory for collector."というメッセージが表示されることがあります。 これはSolaris 8で発生する可能性があります。

Zabbixプロキシをインストールしている場合は、zabbix_proxyを実行します。

shell> zabbix_proxy

2 Zabbix Webインターフェースのインストール

PHPファイルのコピー

ZabbixフロントエンドはPHPで書かれているため、それを実行するにはPHPをサポートするWebサーバーが必要です。 インストールは、PHPファイルをuiディレクトリからWebサーバーのHTMLドキュメントディレクトリにコピーするだけで行われます。

Apache WebサーバーのHTMLドキュメントディレクトリの一般的な場所は次のとおりです。

  • /usr/local/apache2/htdocs (Apacheをソースからインストールする場合のデフォルトディレクトリ)
  • /srv/www/htdocs (OpenSUSE, SLES)
  • /var/www/html (Debian, Ubuntu, Fedora, RHEL)

HTMLルートの代わりにサブディレクトリを使用することをお勧めします。 サブディレクトリを作成し、そこにZabbixフロントエンドファイルをコピーするには、次のコマンドを実行して、実際のディレクトリを置き換えます。

mkdir <htdocs>/zabbix
       cd ui
       cp -a . <htdocs>/zabbix

英語以外の言語を使用する場合は、追加のフロントエンド言語のインストールで手順を参照してください。

Webインターフェースのインストール

Zabbix Webインターフェースのインストールウィザードの詳細については、Webインターフェースのインストール ページを参照してください。

3 Javaゲートウェイのインストール

JMXアプリケーションを監視する場合にのみ、Javaゲートウェイをインストールする必要があります。 Javaゲートウェイは軽量であり、データベースを必要としません。

ソースからインストールするには、まずダウンロードしてソースアーカイブを抽出します。

Javaゲートウェイをコンパイルするには、--enable-javaオプションを指定して./configureスクリプトを実行します。 Javaゲートウェイをインストールすると、単一の実行可能ファイルだけでなくディレクトリ ツリー全体が作成されるため、デフォルトの/usr/local以外のインストールパスを要求するには、--prefixオプションを指定することをお勧めします。

$ ./configure --enable-java --prefix=$PREFIX

JavaゲートウェイをコンパイルしてJARファイルにパッケージ化するには、makeを実行します。 このステップでは、パスにjavacおよびjar実行可能ファイルが必要であることに注意してください。

$ make

これで、src/zabbix_java/binにzabbix-java-gateway-$VERSION.jarファイルが作成されました。 配布ディレクトリのsrc/zabbix_javaからJavaゲートウェイを実行することに慣れている場合は、Javaゲートウェイの設定と実行の手順に進むことができます。 それ以外の場合は、十分な権限があることを確認してmake installを実行してください。

$ make install

Javaゲートウェイの構成と実行の詳細については、セットアップに進んでください。

4 Zabbix Webサービスのインストール

Zabbix Webサービスのインストールは、定期レポートを使用する場合にのみ必要です。

ソースからインストールするには、まずダウンロードしてソースアーカイブを抽出します。

Zabbix Webサービスをコンパイルするには、--enable-webserviceオプションを指定して./configureスクリプトを実行します。

Zabbix Webサービスを構築するには、構成されたGoバージョン1.13以降の環境が必要です。

Webサービスがインストールされているマシン上でzabbix_web_serviceを実行します。

shell> zabbix_web_service

定期レポート生成の設定の詳細については、セットアップに進んでください。