Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

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

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

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

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

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

Zabbixダウンロードページにアクセスし、ソースコードのアーカイブをダウンロードします。 ダウンロード後、ソースを解凍してください。

以下のコマンドラインを実行してください:

$ tar -zxvf zabbix-6.0.0.tar.gz

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

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

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

ただし、デーモンが "root" アカウントで起動された場合は、"zabbix" アカウントに切り替わるため、 "zabbix" グループに所属するユーザアカウント(”zabbix:zabbix”)を作成する必要があります。

RedHat-based システムでは 以下を実行:

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

Debian-based システムでは 以下を実行:

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-based システムでは 以下を実行:

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

Debian-based システムでは 以下を実行:

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

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

Zabbixのserveragentが同じマシンで実行されている場合、 server とagent は別のユーザで実行することをお勧めします。 そうしないと、両方が同じユーザで実行された場合、agent が server の設定ファイルにアクセスし agent は server の設定ファイルにアクセスすることができ、Zabbix の Admin レベルのユーザは簡単にserver の設定ファイル (例として、データベースパスワードなど)を取得することができてしまいます。

Zabbixをrootbin、その他の特別な権限のアカウントで実行することはセキュリティ上のリスクがあります。

3 Zabbixデータベースの作成

Zabbix serverおよびproxyデーモン、 およびZabbixフロントエンドには、データベースが必要です。 Zabbix agentの実行にはデータベースは必要ありません。

SQL スクリプトが提供されていますで、データベーススキーマの作成とデータセットの挿入を行います。Zabbix proxyデータベースにはスキーマのみ必要ですが、Zabbix server データベースにはスキーマ上にデータセットが必要です。

Zabbixデータベースの作成が完了したら、次のステップに進みます。

4 ソースの構成

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

サポートされているすべての設定オプションを確認するには、解凍したZabbixのソースディレクトリ内で以下を実行してください。

./configure --help

Zabbix server とagentのソースを設定するには、以下のように実行します。

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

Zabbix server (PostgreSQLなど)のソースを設定するには、以下のコマンドを実行します。

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

Zabbix proxyのソースを設定する場合(SQLiteなどを使用する場合)は、以下を実行します。

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

Zabbix agentのソースを設定するには、以下を実行します。

./configure --enable-agent

Zabbix agent 2のソースを設定するには、以下を実行します。

./configure --enable-agent2

現在サポートされているGoバージョンが、Zabbixエージェント2のビルドに必要です。 golang.orgを参照してください。

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

  • Command-line utilities zabbix_get and zabbix_sender are compiled if --enable-agent option is used.
  • --with-libcurl and --with-libxml2 configuration options are required for virtual machine monitoring; --with-libcurl is also required for SMTP authentication and web.page.* Zabbix agent items. Note that cURL 7.20.0 or higher is required with the --with-libcurl configuration option.
  • Zabbix always compiles with the PCRE library (since version 3.4.0); installing it is not optional. --with-libpcre=[DIR] only allows pointing to a specific base install directory, instead of searching through a number of common places for the libpcre files.
  • You may use the --enable-static flag to statically link libraries. If you plan to distribute compiled binaries among different servers, you must use this flag to make these binaries work without required libraries. Note that --enable-static does not work in Solaris.
  • Using --enable-static option is not recommended when building server. In order to build the server statically, you must have a static version of every external library needed. There is no strict check for that in configure script.
  • Add optional path to the MySQL configuration file --with-mysql=/<path_to_the_file>/mysql_config to select the desired MySQL client library when there is a need to use one that is not located in the default location. It is useful when there are several versions of MySQL installed or MariaDB installed alongside MySQL on the same system.
  • Use --with-oracle flag to specify location of the OCI API.

./configure がライブラリの欠落やその他の理由で失敗した場合は、 config.log ファイルを参照してください。 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

こちらもご参照ください: - Compiling Zabbix with encryption support for encryption support - Known issues with compiling Zabbix agent on HP-UX

5 全体のMake と インストール

Zabbix Gitrepositoryからインストールする場合、 以下のコマンドを最初に実行する必要があります。

$ make dbschema

make install

このステップは、十分なパーミッションを持つユーザーで実行する必要があります。 (通常は root'、または sudo を使用します)

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

/usr/local 以外の場所を指定するには、ソースコードの構成のステップで --prefix キーを使用します。 --prefix=/home/zabbix. この場合、daemonバイナリは<prefix>/sbinに、ユーティリティは<prefix>/binにインストールされます。 man ページは <prefix>/share にインストールされます。

6 設定ファイルの見直し・編集
  • Zabbix agent configuration ファイルを編集します。 /usr/local/etc/zabbix_agentd.conf

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

このファイルには、Zabbix server のIPアドレスを指定する必要があります。他のホストからの接続は拒否されます。

  • Zabbix server configuration ファイルを編集します。 /usr/local/etc/zabbix_server.conf

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

残りのパラメータは、小規模な構成(監視するホストが10台まで)であれば、デフォルトのままでよいでしょう。 Zabbix server (またはproxy)のパフォーマンスを最大化する場合は、デフォルトのパラメータを変更する必要があります。 詳しくはパフォーマンス チューニングセクションを参照してください。

  • Zabbix proxy をインストールしている場合、proxy configurationファイルを編集します。 file /usr/local/etc/zabbix_proxy.conf

server のIPアドレスと proxy のホスト名(server が知っている必要があります)、およびデータベース名、ユーザー名、パスワード(使用している場合)を指定する必要があります。

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

7 デーモンの起動

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

shell> zabbix_server

共有メモリが36MB(またはそれ以上)確保できるシステムであることを確認してください。 そうでない場合、server は起動せず、"Cannot allocate shared memory for <type cache>" というメッセージが表示されます。 この現象はFreeBSD, Solaris 8.jaで発生する可能性があります。 このページの一番下にある"参照"のセクションを参照して、共有メモリーの設定方法を確認してください。

監視対象ホスト側で、zabbix_agentd を起動します。

shell> zabbix_agentd

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

Zabbix proxyをインストールしている場合は、zabbix_proxy を起動します。

shell> zabbix_proxy

2 Zabbix web interface のインストール

PHPファイルのコピー

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

Apache ウェブサーバーにおける HTML ドキュメントディレクトリの一般的な場所が含まれます。

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

HTMLのルートではなくサブディレクトリを使用することを推奨します。 サブディレクトリを作成し、Zabbixフロントエンドのファイルをそこにコピーするには、以下のコマンドを実行し、実際のディレクトリを置き換えます。

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

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

フロントエンドのインストール

ウェブインタフェースのインストールのページで、Zabbixフロントエンドインストールウィザードの情報をご覧ください。

3 Java gateway のインストール

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

ソースからインストールする場合、まずダウンロードをして、 ソースのアーカイブを展開します。

Java gateway をコンパイルするには、./configureスクリプトを --enable-java オプション付きで実行します。 --prefix オプションを指定して、デフォルトの /usr/local 以外のインストールパスを要求することが望ましいです。 というのも、Java gatewayをインストールすると、単一の実行ファイルだけでなく、ディレクトリツリー全体が作成されるからです。

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

Java gatewayをコンパイルしてJARファイルにパッケージするには、makeを実行します。 注意 このステップでは、パスの通ったjavacjar の実行ファイルが必要であることに注意してください。

$ make

これで、zabbix-java-gateway-$VERSION.jar ファイルが以下の場所に作成されました。 配布ディレクトリの src/zabbix_java から Java gatewayを実行することに問題がない場合、 Java gatewayの設定と実行の説明に進むことができます。 そうでない場合は、十分な権限を持っていることを確認し、make installを実行してください。

$ make install

setupでJava gatewayの設定と実行に関する詳細を参照してください。

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

Zabbix webサービスは、スケジュール レポートを使用する場合のみ インストールが必要です。

ソースコードからインストールする場合、まずダウンロードをして、 ソースコードのアーカイブを展開します。

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

設定済みのGoバージョン1.13以上の環境が必要です。

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

shell> zabbix_web_service

Scheduled reports の詳細については、設定 を参照してください。

参照

  1. Zabbixデーモンの共有メモリ設定方法