KUSANAGI9でZabbixサーバ6.0をインストールする方法

謝 永佳

プライム・ストラテジー「KUSANAGI」開発チームの謝です。
サーバー環境を監視する際に、Zabbixは堅牢で多機能なソリューションとして知られていると思います。
今回の記事では、高性能な仮想マシン環境であるKUSANAGI9にZabbix 6.0をインストールするプロセスについて説明します。
現在Zabbixの最新版は6.4ですが、6.4はLTS(長期サポート)ではないため、今回はZabbix 6.0 LTSで説明します。

要件確認と事前準備

Zabbix 6.0インストール作業に取り掛かる前に、KUSANAGI9環境が最新に更新され、初期設定(kusanagi init)まで完了していることを確認してください。

システム要件

  • OS: KUSANAGI 9.4.11 (AlmaLinux 8.9)もしくはそれ以上を推奨
  • CPU: デュアルコアのCPU、もしくはそれ以上を推奨
  • メモリ: 最低2GB以上、大規模システムでは8GB以上を推奨
  • ディスクスペース: Zabbix自体にはそれほど多くのスペースは必要ありませんが、データベースやログには十分なスペースを提供する必要があります。最低20GBの空き容量目安にしてください
  • データベースサーバ:1 MariaDBの最新安定版。

ソフトウェア要件

  • Webサーバ: 2Nginxの最新安定版
  • PHP: PHP 7.2以上

上記の要件を踏まえて、KUSANAGI9環境の初期設定は次のオプションをお勧めします。

[kusanagi@ZabbixServer ~]$ kusanagi init --passwd "パスワード" --phrase "パスフレーズ" --dbrootpass "DBのルートパスワード" --nginx124 --php83 --mariadb10.6

Zabbix 6.0をインストール

ステップ1:Zabbixリポジトリのインストール

Zabbixはデフォルトリポジトリに含まれていませんので、パッケージマネージャーを使ってインストールできるように、公式のZabbixリポジトリをKUSANAGI9に追加する必要があります。

[root@ZabbixServer ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
[root@ZabbixServer ~]# dnf clean all

ステップ2:Zabbixサーバ、フロントエンド、エージェントのインストール

リポジトリが追加されたら、以下のコマンドでZabbixサーバ、ウェブフロントエンド、Zabbixエージェントをインストールします

[root@ZabbixServer ~]# dnf install zabbix-agent zabbix-server zabbix-sql-scripts zabbix-web zabbix-web-japanese 

ステップ3:Zabbixフロントエンド用プロファイルのプロビジョン

kusanagi provison3コマンドでウェブインターフェースアクセス用のプロファイルをプロビジョンします。

[kusanagi@ZabbixServer ~]$ kusanagi provision --lamp --fqdn ホスト名 --email メールアドレス --dbuser "DBのユーザー名" --dbname "DB名" --dbpass "DBのパスワード" プロファイル名

各オプションについて、少し補足説明します。
CMSプラットフォームなどは利用しないのため、使用するCMSのオプションは「--lamp」を指定します。
ウェブからアクセスのホスト名は「--fqdn ホスト名」を指定します。

ステップ4:データベースの設定調整

kusanagiプロビジョンで作成したデータベースのcollateデフォルトはutf8mb4_general_ciです。Zabbixのデータベースのcollateはutf8mb4_binにするが必要なので、プロビジョンで作成したデータベースのcollateを変更します。

[root@ZabbixServer ~]# mysql -uroot -p
Enter password: ※kusanagi init時に指定したmysqlのルートパスワードを入力します。
MariaDB [(none)]> alter database データベース名 character set utf8mb4 collate utf8mb4_bin;
MariaDB [(none)]> quit

ステップ5:データベースに初期スキーマとデータのインポート

kusanagi provisionに作成したデータベースにZabbixの初期スキーマとデータをインポートします。

[root@ZabbixServer ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uDBのユーザー名 -p DB名
Enter password: ※kusanagi provision時にしたDBのパスワードを入力してください。

ステップ6:Zabbix用データベースの設定

データベースの詳細を指定するために、Zabbixサーバーの設定ファイル/etc/zabbix/zabbix_server.confを編集します。

[root@ZabbixServer ~]# vi /etc/zabbix/zabbix_server.conf

# 105行目:DB名を指定
DBName=データベース名

# 121行目:DBのユーザー名を指定
DBUser=DBのユーザー名

# 130行目:DBのパスワードを追記
DBPassword=DBのパスワード

これらの変更を行った後、ファイルを保存して閉じます。

ステップ7:プロファイルにフロントエンドのドキュメントルート設定

Zabbixのフロントエンドのドキュメントルートはプロファイルのドキュメントルートパスが違うため、プロファイルのドキュメントルートをZabbixのフロントエンドのドキュメントルートにシンボリックを設置します。

[kusanagi@ZabbixServer ~]$ cd プロファイル名/
[kusanagi@ZabbixServer プロファイル名]$ ls -l DocumentRoot/
合計 0

# ドキュメントルート内にファイルがないこと確認されたらドキュメントルートフォルダを削除
[kusanagi@ZabbixServer zabbix]$ rm -rf DocumentRoot

# シンボリックを設置
[kusanagi@ZabbixServer zabbix]$ ln -s /usr/share/zabbix/ DocumentRoot
[kusanagi@ZabbixServer zabbix]$ ls -l DocumentRoot
lrwxrwxrwx. 1 kusanagi kusanagi 18  2月  1 17:01 DocumentRoot -> /usr/share/zabbix/

ステップ8:Zabbixフロントエンド用のPHP設定

kusanagi9のmax_execution_timeとmax_input_timeの値はZabbixの要件と違うので、事前調整します。

[root@ZabbixServer ~]# vi /etc/opt/kusanagi/php.d/extensions/99-zabbix.ini

max_execution_time=300
max_input_time=300

これらの追記を行った後、ファイルを保存して閉じます。kusanagi restartでサービスを再起動します。

[root@ZabbixServer ~]# kusanagi restart

ステップ9:Zabbixサーバーの起動と有効化

すべてが設定されたので、Zabbixサーバーとエージェントを開始し、再起動時に自動起動するように設定します。

[root@ZabbixServer ~]# systemctl enable --now zabbix-server
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /usr/lib/systemd/system/zabbix-server.service.
[root@ZabbixServer ~]# systemctl enable --now zabbix-agent
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /usr/lib/systemd/system/zabbix-agent.service.

ステップ10:Zabbixウェブインターフェースへのアクセス

最後に、ブラウザを通じて以下のURLを訪れることでZabbixフロントエンドにアクセスできます。

https://ホスト名
※SSL証明書を設定され場合は「http://ホスト名」でアクセスしてください。

フロントエンド画面に表示される指示に従ってセットアップを完了してください。

おめでとうございます!KUSANAGI9にZabbix 6.0を正常にインストールし、今日から最も強力なオープンソースツールの一つを使ってインフラストラクチャの監視が始められます。

最後に

KUSANAGI9環境にZabbix 6.0をインストールすることは、監視という複雑なタスクを効率的に管理する第一歩です。10のステップを通じて、サーバー自体からネットワーク上の他のデバイスに至るまで、幅広い監視が可能となります。

しかし、インストール直後の設定はあくまで基本的なものです。安定したモニタリングシステムを維持するためには、定期的なメンテナンスと監視システム自体の監視を忘れないでください。

最後に、Zabbixが提供する豊富なドキュメントとコミュニティサポートを活用することで、さらに多機能な監視環境の構築が可能となります。監視システムは動的なものであり、絶えず進化するネットワーク環境に合わせて柔軟に拡張していくことが重要です。

この強力なツールと適切な管理を通じて、インフラストラクチャの健全性とセキュリティを長期にわたって保ち、業務の効率化に大きく貢献することができるでしょう。

  1. ZabbixはMariaDB以外のデータベースもサポートしていますが、今回はMariaDBで説明します。 ↩︎
  2. Nginx以外にApacheでも利用できますが、KUSANAGIでよく利用しているNginxで説明します。 ↩︎
  3. kusanagi provisionのドキュメントです ↩︎
<< KUSANAGIでxdebugのインストールとよく使う機能を紹介KUSANAGI 9 の環境で Bedrock を使用する >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解