Zabbix server 7.0をソースファイルからビルド・インストールしてみた(1) – ビルド・インストール編

Zabbix

こんにちは。プラットフォーム技術部の丸山です。

本記事では、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-serverZabbixサーバーのビルドを有効にする
--enable-agentZabbixエージェント及びクライアントユーティリティの
ビルドを有効にする
--enable-javaJavaゲートウェイのビルドを有効にする
--enable-webserviceZabbixウェブサービスのビルドを有効にする
--enable-ipv6IPv6のサポートを有効にする
--with-mysqlMySQLクライアントライブラリを使用する
--with-libxml2XMLライブラリを使用する
--with-unixodbcunixODBCライブラリを使用する
--with-net-snmpNet-SNMPのサポートを有効にする
--with-sshSSHベースのチェックを使用する
--with-libpcre2libpcre2のインストールディレクトリを指定する
--with-openipmiIPMIデバイスの監視を有効にする
--with-libeventlibeventのインストール・ディレクトリを指定する
--with-opensslOpenSSLライブラリが提供する暗号化を使用する
--with-ldapLDAPサーバーの監視を有効にする
--with-libcurlcURLライブラリを使用する

上記、構成設定に合わせて必要パッケージをインストールします。

#### 構成設定に必要なパッケージのインストール
# 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の導入・運用に関する課題を解決し、最適な環境を構築します。どんなご相談でもお気軽にお問い合わせください!

  • Zabbix Enterprise Appliance
  • 低コスト・短納期で提供するまるごとおまかせZabbix