CLOUD NAVIクラウドとは?からクラウドを支える技術や関連用語まで解説

FJcloud実践

ZabbixでFJcloud-Vを監視する方法

2025年3月28日

ITシステムを運用する上で欠かせないのが、システムダウンを検知したり、将来的に障害の原因となりそうな要因を早期に発見するための「監視」です。しかし、監視に多数の工数を割いたとしても、ビジネスの価値に直接コミットするわけではありません。従い、なるべく手間をかけず、クラウド事業者が用意しているサービスや監視SaaSを使うのが一般的だと言えるでしょう。

しかし環境や条件によっては、こうしたサービスが使えない場合もあります。そういう時は、オンプレミス時代のように、監視システムをセルフホストする必要性が出てきます。本記事では、オープンソースで人気の監視システムである「Zabbix」を、FJcloud-V上に構築する方法を紹介します。

前提条件

Zabbixの動作には、Zabbixサーバー本体、ユーザーが操作するWebフロントエンド、そしてバックエンドとなるデータベースが必要です。本記事ではUbuntu 22.04 LTSのインスタンスを1台起動し、必要なコンポーネント一式をすべてオールインワンで構築し、Zabbixサーバーとします。

また、監視対象となるサーバーと、監視対象にインストールするエージェントも必要となります。これにはUbuntu 22.04 LTSのインスタンスをもう1台用意し、監視エージェントをインストールします。

Zabbixサーバーと監視対象のサーバーは、FJcloud-Vのプライベートネットワークで通信できるように設定しておきます。

本記事で解説するサーバーとネットワークの構成
2台のインスタンスを起動し、それぞれZabbixサーバーと監視対象としました。割り当てられたIPアドレスを控えておきましょう

Zabbixサーバーのインストール

サーバー用のインスタンスにログインして、Zabbixサーバーをインストールしましょう。今回は以下の設定でインストールを行います。

ZABBIXバージョン Zabbix 7.0 LTS
OSディストリビューション Ubuntu
OSバージョン 22.04 LTS
ZABBIX COMPONENT Server, Frontend, Agent
データベース MySQL
WEB SERVER Apache

インストール手順は公式のダウンロードページにアクセスし、上記の表を参考に、Zabbixサーバーのプラットフォームを選択することで確認できます。ですが公式の手順はいくつか不足している部分があるため、以下でそれを補完した手順を解説します。

まずはzabbix-releaseパッケージをインストールします。これはZabbix本体ではなく、Zabbixインストール用のリポジトリをシステムに追加するためのパッケージです。

# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu22.04_all.deb
# apt install ./zabbix-release_latest_7.0+ubuntu22.04_all.deb

以下のコマンドでZabbixサーバーと、それ以外の必要なパッケージ一式をインストールします。

# apt update 
# apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent mysql-server fonts-noto-cjk

ZabbixサーバーのWebフロントエンドは、日本語にも対応しています。ですがそのままではフォントが足りず、グラフ内の日本語が文字化けしてしまいます。そこでNotoフォントをインストールした上で、以下のコマンドでzabbix-frontend-fontの向き先をNotoSansCJK-Regular.ttcに変更してください。ここでは優先度を20としているため、デフォルトのDejaVuSansフォント(優先度10)よりも優先して、Notoフォントが使われるようになります。

# update-alternatives --install /usr/share/zabbix/assets/fonts/graphfont.ttf zabbix-frontend-font /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc 20

mysqlコマンドで、MySQLデータベースを対話的に操作します。以下を参考にクエリを実行し、データベースとユーザーの作成を行ってください。

# mysql -uroot
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'DBのzabbixユーザーのパスワード';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

以下のコマンドでクエリを実行し、データベースの初期設定を行います。

# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -pDBのzabbixユーザーのパスワード zabbix

再度mysqlコマンドを実行し、log_bin_trust_function_creatorsを無効にします。

# mysql -uroot
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

「/etc/zabbix/zabbix_server.conf」というファイルに、先ほど作成したZabbix用のMySQLユーザーのパスワードを記述します。以下のコマンドでファイルを書き換えてください。

# sed -i.bak -e 's/# DBPassword=/DBPassword=DBのzabbixユーザーのパスワード/' /etc/zabbix/zabbix_server.conf

ZabbixのWebインターフェイスが使える言語は、システムのロケールに依存します。以下のコマンドで日本語ロケールを生成してください。

# locale-gen ja_JP.UTF-8

ここまでできたら、ZabbixサーバーとApache HTTPDサーバーを再起動します。

# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2 

これでサーバーのインストールは完了です。Webブラウザーから「http://サーバーのIPアドレス/zabbix」にアクセスしてみましょう。Zabbixのセットアップ画面が表示されます。指示に従い、セットアップを完了させてください。

「監視データ」→「ホスト」を見てみましょう。Zabbixサーバー自身が、既に監視されています。グラフやダッシュボードなどを見て、雰囲気を掴んでみましょう。

Zabbixエージェントのインストール

続いて監視対象のサーバーに、Zabbixエージェントをインストールします。こちらもダウンロードページで、以下を選択することでインストール手順を表示できますが、設定ファイルを書き換える必要があるため、ここで詳しく紹介します。

ZABBIXバージョン Zabbix 7.0 LTS
OSディストリビューション Ubuntu
OSバージョン 22.04 LTS
ZABBIX COMPONENT Agent 2

まずZabbixサーバーと同様に、zabbix-releaseパッケージをインストールします。

# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu22.04_all.deb
# apt install ./zabbix-release_latest_7.0+ubuntu22.04_all.deb

Zabbixエージェントをインストールします。サーバーと異なり、インストールするパッケージは少なめです。

# apt update 
# apt install zabbix-agent2 zabbix-agent2-plugin-*

Zabbixエージェントの設定ファイルは「/etc/zabbix/zabbix_agent2.conf」です。デフォルトの状態のZabbixエージェントは、自分自身(localhost)からのアクセスしか許可していません。そこで設定ファイルを編集し、別のZabbixサーバーから接続できるようにします。以下のコマンドを実行して、設定ファイルを書き換えてください。

$ sed -i -e 's/^\(Server.*=\)127.0.0.1.*/\1ZabbixサーバーのプライベートIPアドレス/' /etc/zabbix/zabbix_agent2.conf
$ sed -i -e 's/^Hostname=.*/Hostname=このサーバーのホスト名/' /etc/zabbix/zabbix_agent2.conf

設定ファイルの書き換えが完了したら、Zabbixエージェントを再起動します。

# systemctl restart zabbix-agent2
# systemctl enable zabbix-agent2 

ホストの追加と監視アイテムの設定

Zabbixサーバーに監視対象を追加しましょう。「監視データ」→「ホスト」を開き、右上にある「ホストを作成」ボタンをクリックしてください。すると以下の画面が表示されます。

「ホスト名」には、任意のホスト名を入力します。ここでは「ubuntu」としました。

「表示名」には、ZabbixのWebインターフェイス上に表示される名前を、ホスト名とは別途指定できます。今回は指定していません。

「テンプレート」とは、どのような項目を監視するのかを定義した、エンティティのセットです。テンプレートをリンクすることで、複数のホストで手軽に同じ監視項目を設定できます。今回はデフォルトで用意されている「Linux by Zabbix agent」を選択しました。

「ホストグループ」とは、監視対象ホストのグループです。どのホストも、最低ひとつのグループに所属する必要があります。今回はデフォルトで用意されている「Linux servers」を指定しました。

「インターフェイス」は、ホストの情報を収集するためのインターフェイスです。今回はZabbixエージェントを利用するため「エージェント」を選択し、監視対象サーバーのプライベートIPを指定しました。

最後に「追加」をクリックすると、ホストが追加されます。情報が取得されるまで、しばらく待ちましょう。なおホストの追加については、公式のドキュメントも参考にしてください。

ホストダッシュボードを見た例。デフォルトのテンプレートをリンクしただけで、Linuxサーバーにおける一般的なデータの取得ができているのがわかる

まとめ

Zabbixは非常に高度で複雑なシステムであるため、ここですべての設定を説明することはできません。ですがシンプルな監視であれば、このようにインストールしてデフォルトのテンプレートを適用するだけでも、簡単にはじめることができます。監視システムを自前で用意する必要があるのであれば、公式ドキュメントの情報も参考にしながら、ぜひ実際に手を動かして、Zabbixを触ってみてください。

PageTop