

Zabbix server 7.0をソースファイルからビルド・インストールしてみた(1) – ビルド・インストール編
こんにちは。プラットフォーム技術部の丸山です。
本記事では、Zabbix serverをソースファイルからビルド、インストールする方法について連載形式で紹介していきたいと思います!
今回はビルドからインストールまでをおこないます。
背景
以前、お客様から「マイナーバージョンアップ時の切り替えや切り戻しを、迅速に実施できるようにしたい」というご要望をいただきました。
そのため、新バージョンのZabbix serverをソースからビルドし、インストール先のシンボリックリンクを変更することにより、新旧バージョンを容易に切り替えできるよう、ご要望に合った環境を構築しました。
本記事はそこでの実績をベースに記載しています。
ソースからビルドするメリット・デメリットについて
メリット
- 自分の環境に最適なコンパイルオプションを設定することで、パフォーマンスの最適化が見込める。
- 必要な依存ライブラリを自分で管理することで、環境に合った構成を構築できる。
デメリット
- パッケージインストールよりも多くの手順を実施する必要がある。(下記例)- ソースコードのダウンロード
- コンパイル
- 各種設定(zabbixユーザー・グループの作成、ログディレクトリの作成、Zabbix serverのサービス登録など)
 
- コンパイルオプションの理解や、構成設定に合わせたパッケージをインストールするための知識が必要となる。
環境情報
本記事で使用する環境は以下の通りです。
- Rocky Linux 9.4
- Zabbix server 7.0.2
- PHP 8.0.30
- Apache HTTP Server 2.4.57
- MySQL 8.0.32
なお、本記事ではMySQLのインストールおよび初期設定については割愛します。
ソースアーカイブのダウンロード、ビルド、インストール手順
参考ドキュメント
本記事では公式ドキュメントを参考に作業します。
ソースアーカイブのダウンロード
公式CDNよりZabbix server 7.0.2のソースアーカイブをダウンロードします。
ダウンロードしたソースアーカイブを「 /usr/local/src 」に配置し、解凍します。
※本記事とは異なるバージョンにてインストールを実施する際は、任意のバージョンを公式CDNよりダウンロードしてください。
#### ソースアーカイブ配置場所へ移動
# cd /usr/local/src
#### ソースアーカイブの解凍
# tar -zxvf zabbix-7.0.2.tar.gz
ユーザーアカウントの作成
ソースからビルドする場合、パッケージインストール時と異なりzabbixユーザーおよびzabbixグループは自動作成されません。
そのため、手動でzabbixユーザーおよびzabbixグループを作成します。
#### zabbixグループの作成
# groupadd --system zabbix
#### zabbixユーザーをzabbixグループへ所属
# useradd --system -g zabbix -d /var/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
ログディレクトリの作成およびパーミッション設定
ソースからビルドする場合、ユーザー・グループと同様にログディレクトリも自動では作成されないため、手動で作成する必要があります。
#### ログディレクトリの作成
# mkdir /var/log/zabbix
# chown  zabbix:zabbix /var/log/zabbix
DBセットアップ
本記事では公式ドキュメントを参考にMySQLのDBセットアップをおこないます。
前述の通り、MySQLのインストールおよび初期設定については割愛しています。
#### MySQLへ接続
# mysql -uroot -p<password>
#### Zabbix用データベースの作成
# mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
# mysql> create user 'zabbix'@'localhost' identified by '<password>';
# mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
# mysql> SET GLOBAL log_bin_trust_function_creators = 1;
# mysql> quit;
データベースにデータをインポートします。
#### データベーススキーマの作成とデータセット挿入のため、SQLスクリプト格納場所へ移動
# cd /usr/local/src/zabbix-7.0.2/database/mysql/
#### データのインポート
# mysql -uzabbix -p<password> zabbix < schema.sql
# mysql -uzabbix -p<password> zabbix < images.sql
# mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql
必要パッケージインストールおよびソースの構成設定
構成設定に合わせて必要なパッケージをインストールします。
Zabbix server 7.0系で指定可能な構成設定には、以下コマンドを実行することで確認できます。
#### ソースディレクトリへ移動
# cd /usr/local/src/zabbix-7.0.2
#### 指定可能な構成設定一覧の出力
# ./configure --help
本記事では7.0系のパッケージインストール時と同等の構成になるように、以下の構成設定を指定します。
| 構成設定 | 説明 | 
|---|---|
| --prefix=/usr/local/zabbix-7.0.2 | インストール先ディレクトリを指定する | 
| --enable-server | Zabbixサーバーのビルドを有効にする | 
| --enable-agent | Zabbixエージェント及びクライアントユーティリティの ビルドを有効にする | 
| --enable-java | Javaゲートウェイのビルドを有効にする | 
| --enable-webservice | Zabbixウェブサービスのビルドを有効にする | 
| --enable-ipv6 | IPv6のサポートを有効にする | 
| --with-mysql | MySQLクライアントライブラリを使用する | 
| --with-libxml2 | XMLライブラリを使用する | 
| --with-unixodbc | unixODBCライブラリを使用する | 
| --with-net-snmp | Net-SNMPのサポートを有効にする | 
| --with-ssh | SSHベースのチェックを使用する | 
| --with-libpcre2 | libpcre2のインストールディレクトリを指定する | 
| --with-openipmi | IPMIデバイスの監視を有効にする | 
| --with-libevent | libeventのインストール・ディレクトリを指定する | 
| --with-openssl | OpenSSLライブラリが提供する暗号化を使用する | 
| --with-ldap | LDAPサーバーの監視を有効にする | 
| --with-libcurl | cURLライブラリを使用する | 
上記、構成設定に合わせて必要パッケージをインストールします。
#### 構成設定に必要なパッケージのインストール
# dnf install --enablerepo=crb OpenIPMI-devel unixODBC-devel
# dnf install curl-devel gnutls-devel java-devel libevent-devel libssh-devel libxml2-devel make net-snmp-devel openldap-devel openssl-devel pcre2-devel policycoreutils-devel httpd mariadb-connector-c-devel 
Zabbix Web サービス構築用パッケージもインストールします。
#### Zabbix Web サービス構築用パッケージのインストール
# dnf install php-fpm golang
ZabbixソースコードのビルドにはGNU拡張機能付きC99が必要なため、該当コンパイラを指定します。
#### GNU拡張機能付きC99の有効化
# export CFLAGS="-std=gnu99"
以上で準備が整いましたので、configureを実行します。
#### configure格納ディレクトリへ移動
# cd /usr/local/src/zabbix-7.0.2
#### configureの実行
# ./configure \
--prefix=/usr/local/zabbix-7.0.2 \
--enable-server \
--enable-agent \
--enable-java \
--enable-webservice \
--enable-ipv6 \
--with-mysql \
--with-libxml2 \
--with-unixodbc \
--with-net-snmp \
--with-ssh \
--with-libpcre2 \
--with-openipmi \
--with-libevent \
--with-openssl \
--with-ldap \
--with-libcurl
#### configure完了のメッセージ
***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <https://www.zabbix.com>                   *
***********************************************************
問題なくconfigureの実行が完了した後、ビルドおよびインストールをおこないます。
#### ビルドの実行
# make
#### インストールの実行
# make install
ビルド、インストール完了時はメッセージなどの出力がないため、エラーなく実行完了した時点でインストール完了です。
次回について
今回はソースアーカイブのダウンロードからビルド、インストールの方法まで紹介しました!
次回は、インストール後の設定方法について紹介します!
Zabbixの導入・構築でお困りですか?
Zabbixの導入・構築でお困りですか?アークシステムは、Zabbix Japan LLCの公式認定パートナーとして、豊富な実績と高い技術力でお客様をサポートします。
アークシステムが選ばれる理由
- 豊富な経験: 多くのZabbix導入・構築プロジェクトを成功に導いた実績
- 確かな技術力: Zabbix認定資格を持つエンジニアが対応
- 独自のソリューション: 「監視定義テンプレート」を活用した迅速かつ高品質な実装
- 最新情報へのアクセス: Zabbix社との強力なパートナーシップを活かした最新技術対応
こんな方に最適です
- Zabbixの新規導入を検討している
- 現行システムの運用に課題を感じている
- 大規模環境での監視体制を整えたい
アークシステムでは、Zabbixの導入・運用に関する課題を解決し、最適な環境を構築します。どんなご相談でもお気軽にお問い合わせください!















