自治体情報システム担当者のためのZabbixによるサーバー監視入門:Ubuntu Serverへのインストールと基本設定
はじめに
自治体の情報システム部門では、多岐にわたるサーバーやネットワーク機器の安定稼働が求められます。システムの停止やパフォーマンス低下は、住民サービスに直接影響を及ぼすため、継続的な監視体制の確立は不可欠です。しかし、既存の商用監視システムは高額な導入・運用コストがかかる場合があり、リソースが限られる自治体において課題となることがあります。
オープンソースソフトウェア(OSS)の監視ツールであるZabbixは、こうした課題に対する強力な解決策の一つです。Zabbixは、サーバー、ネットワーク機器、アプリケーションなど、幅広いITインフラストストラクチャのパフォーマンスと可用性を監視できる包括的な機能を備えています。商用ライセンス費用が不要であるためコストを抑えつつ、柔軟なカスタマイズ性により自治体固有の要件にも対応可能です。
本記事では、自治体情報システム部門の担当者向けに、Zabbixの基本的な概念から、Ubuntu Serverへのインストール手順、そして監視対象の追加と基本的な監視設定までを具体的に解説します。Windows Serverの運用経験がある担当者の方でもスムーズに導入できるよう、実践的な視点で進めてまいります。
Zabbixとは
Zabbixは、サーバー、仮想マシン、ネットワーク機器、アプリケーション、データベースなど、ITインフラストラクチャ全体を監視するために設計されたオープンソースの監視ソリューションです。データの収集、可視化、トレンド分析、アラート通知といった機能を統合的に提供します。
Zabbixの主なコンポーネントは以下の通りです。
- Zabbix Server: 監視データを収集し、データベースに保存し、アラート条件を評価する中心的なプロセスです。
- Zabbix Agent: 監視対象のサーバーやデバイスにインストールされ、CPU使用率、ディスク容量、メモリ使用量などのローカルデータをZabbix Serverに送信します。
- Zabbix Proxy: 分散監視環境において、多数の監視対象からのデータを一時的に収集し、Zabbix Serverの負荷を軽減します。
- Zabbix Webインターフェース: 監視データやグラフの表示、設定変更などを行うためのWebベースのユーザーインターフェースです。
- Zabbix Database: 収集されたすべての監視データを保存します。PostgreSQL、MySQL、Oracle、SQLiteなどが利用可能です。
これらのコンポーネントが連携することで、システムの健全性をリアルタイムで把握し、問題発生時には迅速に検知し対応することが可能となります。
導入前の準備
Zabbix Serverを導入する前に、いくつかの準備が必要です。
1. 必要なリソースの確認
Zabbix Serverの性能は、監視対象の数、収集するデータの頻度と量、保持期間によって大きく変動します。自治体の環境や将来の拡張計画に基づき、以下のリソースを検討してください。
- CPU: 2コア以上を推奨します。監視対象が増えるにつれて必要となります。
- メモリ: 4GB以上を推奨します。特にZabbix Serverとデータベースが同居する場合、さらに必要となることがあります。
- ストレージ: 監視データの増加に備え、十分なディスク容量を確保してください。HDDよりも高速なSSDの使用を推奨します。
- ネットワーク: 安定したネットワーク接続が必要です。
2. オペレーティングシステム(OS)の選定
本記事では、長期サポート(LTS)版であるUbuntu Server 22.04 LTSを推奨します。Ubuntu Serverは、堅牢性、安定性、豊富なコミュニティサポート、そして最新のソフトウェアパッケージへのアクセスしやすさから、Zabbixの実行環境として広く利用されています。
3. ネットワーク設定と時刻同期
- Zabbix Serverと監視対象間で通信ができるように、適切なIPアドレス設定とファイアウォール設定を行ってください。Zabbix Serverは通常、ポート10051でAgentからの接続を受け付けます。
- サーバー間の時刻が正確に同期していることは、監視データの一貫性を保ち、正確なアラートを生成するために非常に重要です。NTP(Network Time Protocol)クライアントを設定し、時刻同期を行ってください。
Ubuntu ServerへのZabbix Serverインストール手順
ここでは、Ubuntu Server 22.04 LTSにZabbix Server 6.4(LTS版の6.0も同様の手順で利用可能です)を、PostgreSQLデータベースとApache Webサーバーを組み合わせてインストールする手順を解説します。
1. 前提パッケージのインストール
まず、システムのパッケージリストを更新し、必要な前提パッケージをインストールします。
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 php libapache2-mod-php php-xml php-bcmath php-mbstring php-gd php-ldap php-pgsql php-json php-cli -y
2. PostgreSQLのインストールと設定
Zabbixが使用するデータベースをインストールし、Zabbix用のデータベースとユーザーを作成します。
sudo apt install postgresql postgresql-contrib -y
# Zabbix用のデータベースユーザーを作成 (パスワードは任意で設定してください)
sudo -u postgres createuser --pwprompt zabbix
# Zabbix用のデータベースを作成し、所有者をzabbixユーザーに設定
sudo -u postgres createdb -O zabbix zabbix
3. Zabbixリポジトリの追加
Zabbixの公式リポジトリを追加し、Zabbixパッケージをインストールできるようにします。
# Zabbix 6.4リポジトリをダウンロード
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
# リポジトリパッケージをインストール
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
# パッケージリストを更新
sudo apt update
4. Zabbix ServerおよびAgentのインストール
Zabbix Server本体、Webインターフェース、Zabbix Agent、Apache用の設定ファイルをインストールします。
sudo apt install zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf zabbix-agent -y
5. データベーススキーマのインポート
Zabbix Serverが使用するデータベースのスキーマと初期データをインポートします。これは一度だけ実行します。
sudo zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix
6. Zabbix Serverの設定
Zabbix Serverの設定ファイル /etc/zabbix/zabbix_server.conf
を編集し、データベースのパスワードを設定します。
sudo nano /etc/zabbix/zabbix_server.conf
以下の行を見つけ、データベースユーザー zabbix
のパスワードを追記してください。
DBPassword=あなたの設定したzabbixユーザーのパスワード
設定ファイルを保存してエディタを終了します。
7. Apacheの設定
Zabbix Webインターフェースのタイムゾーン設定をApacheの設定ファイル /etc/apache2/conf-enabled/zabbix.conf
で行います。
sudo nano /etc/apache2/conf-enabled/zabbix.conf
以下の行を見つけ、適切なタイムゾーンに設定してください。日本国内であれば Asia/Tokyo
を設定します。
php_value date.timezone Asia/Tokyo
変更を適用するためにApacheサービスを再起動します。
sudo systemctl restart apache2
8. Zabbixサービスの起動と自動起動設定
Zabbix ServerとZabbix Agentのサービスを起動し、システムの起動時に自動的に起動するように設定します。
sudo systemctl enable zabbix-server zabbix-agent
sudo systemctl start zabbix-server zabbix-agent
sudo systemctl status zabbix-server zabbix-agent
status
コマンドで、両サービスが active (running)
と表示されていれば、正常に起動しています。
Zabbix Webインターフェースへのアクセスと初期設定
インストールが完了したら、WebブラウザからZabbix Webインターフェースにアクセスし、初期設定を行います。
- Webブラウザを開き、Zabbix ServerのIPアドレスまたはホスト名に
/zabbix
を加えてアクセスします。例:http://192.168.1.100/zabbix
- Zabbixのセットアップウィザードが表示されます。「Next step」をクリックして進みます。
- 前提条件のチェック画面が表示されます。すべて「OK」であることを確認し、「Next step」をクリックします。
- データベース接続情報の設定画面が表示されます。
- Database type: PostgreSQLを選択します。
- Host:
localhost
または127.0.0.1
- Port:
5432
- Database name:
zabbix
- User:
zabbix
- Password: Zabbixデータベースユーザーに設定したパスワードを入力します。
- 「Next step」をクリックします。
- Zabbix Serverの情報を設定します。
- Name: 任意のZabbix Server名を指定します。これはZabbixのWebインターフェースで表示されます。
- 「Next step」をクリックします。
- 最終確認画面が表示されます。「Next step」をクリックしてインストールを完了します。
- ログイン画面が表示されます。デフォルトのユーザー名
Admin
、パスワードzabbix
でログインしてください。 - ログイン後、セキュリティのため、速やかにデフォルトパスワードを変更することを強く推奨します。
監視対象(Windows Server)の追加
Zabbix Serverが起動し、Webインターフェースにアクセスできるようになったら、既存のWindows Serverを監視対象として追加します。
1. Zabbix Agent for Windowsのインストール
監視対象のWindows ServerにZabbix Agentをインストールします。
- Zabbixの公式サイト(
https://www.zabbix.com/download_agents
)から、監視対象のWindows Serverのアーキテクチャ(32-bitまたは64-bit)とZabbix Serverのバージョンに合ったZabbix AgentのMSIインストーラをダウンロードします。 - ダウンロードしたMSIファイルをWindows Server上で実行し、インストールウィザードに従います。
- インストール中に、以下の情報を入力します。
- Zabbix Agent Name: 監視対象のWindows Serverのホスト名または任意の識別名。
- Zabbix Server IP address: Zabbix ServerのIPアドレス。
- Zabbix Server port:
10050
(デフォルト)。 - Hostname: Zabbix Agent Nameと同じ値を入力することを推奨します。
2. Zabbix Agentの設定ファイル編集(必要に応じて)
インストーラで設定できない場合や、追加設定が必要な場合は、C:\Program Files\Zabbix Agent\zabbix_agentd.conf
をテキストエディタで編集します。
Server=Zabbix_ServerのIPアドレス
Hostname=このWindows_Serverのホスト名
3. Zabbix Agentサービスの起動
設定後、Windowsのサービス管理ツールから「Zabbix Agent」サービスを開始します。自動起動が設定されていることを確認してください。
4. Zabbix Webインターフェースでのホスト追加
Zabbix WebインターフェースからWindows Serverをホストとして追加します。
- Zabbix Webインターフェースにログインします。
- 左側のメニューから「設定」>「ホスト」を選択し、「ホストの作成」ボタンをクリックします。
- 以下の情報を入力します。
- ホスト名: Windows Serverのホスト名を入力します。これはZabbix Agentの設定ファイルで
Hostname
に設定した値と一致させる必要があります。 - 表示名: Zabbixインターフェース上で表示される任意の名前です。
- グループ: 既存のグループを選択するか、「新しいグループを作成」で「Windows Servers」などのグループを作成し追加します。
- インターフェース: 「エージェント」タブで「追加」をクリックし、Windows ServerのIPアドレスを入力します。ポートはデフォルトの
10050
です。 - 「テンプレート」タブに移動し、「選択」をクリックして「Template OS Windows by Zabbix agent」などの適切なテンプレートを選択し、「追加」をクリックします。
- 右下の「追加」ボタンをクリックしてホストを保存します。
- ホスト名: Windows Serverのホスト名を入力します。これはZabbix Agentの設定ファイルで
しばらくすると、追加したホストの「ステータス」列が「有効」になり、「エージェントの可用性」のアイコンが緑色に変わります。これでZabbix ServerとAgent間の通信が確立され、監視が開始されます。
基本的な監視項目の設定
Zabbixでは、ホストを追加し適切なテンプレートを適用することで、CPU使用率、ディスク容量、ネットワークトラフィック、メモリ使用量など、一般的な監視項目が自動的に設定されます。
ZabbixのWebインターフェースで「監視」>「ホスト」に進み、追加したWindows Serverの名前をクリックすると、収集されたデータやグラフを確認できます。「最新データ」タブでは個々のアイテムの値が、「グラフ」タブでは時系列データがグラフで表示されます。
アラート通知設定の概要
Zabbixの強みの一つは、監視データに基づいてアラートを生成し、管理者へ通知する機能です。
- メディアタイプの設定: メール、Slack、LINEなどの通知方法を設定します。「管理」>「メディアタイプ」から設定できます。自治体環境では、既存のメールシステムとの連携が一般的です。
- ユーザーへのメディア設定: 通知を受け取りたいZabbixユーザーに、設定したメディアタイプと通知先(メールアドレスなど)を紐付けます。「管理」>「ユーザー」からユーザーを選択し、「メディア」タブで設定します。
- アクションの作成: 特定のトリガー(例: CPU使用率が長時間90%を超える)が発生した場合に、誰にどのメディアで通知するかを定義します。「設定」>「アクション」>「トリガーアクション」から設定します。
これらの設定により、システムに異常が発生した際に自動的に担当者へ通知が届くようになり、迅速な対応が可能となります。
自治体システムにおけるZabbix活用の考慮事項
Zabbixを自治体システムに導入・運用する際には、特有の環境要因を考慮することが重要です。
1. セキュリティ
- 通信の暗号化: Zabbix ServerとAgent間の通信や、Webインターフェースへのアクセスは、TLS/SSLを使用して暗号化することを強く推奨します。これにより、監視データの盗聴や改ざんのリスクを低減します。
- ファイアウォール設定: 必要なポート(Zabbix Server: 10051、Zabbix Agent: 10050、Webインターフェース: 80/443)のみを許可するよう、厳格なファイアウォールルールを設定してください。
- OSの最小化とパッチ適用: Zabbix Serverが稼働するOSは、必要最小限のサービスのみを稼働させ、定期的にセキュリティパッチを適用してください。
- アクセス制御と認証強化: Zabbix Webインターフェースへのアクセスは、担当者に限定し、複雑なパスワードポリシーや二要素認証(LDAP/SAML連携など)の導入を検討してください。
2. 既存システムとの連携
- Windows Server監視: 既存のWindows Server群もZabbix Agentを導入することで一元的に監視できます。イベントログ監視やWMI(Windows Management Instrumentation)を利用した詳細な情報収集も可能です。
- ログ監視: 特定のログファイルにエラーメッセージが出力された際にアラートを生成するなど、ログ監視機能を活用し、既存システムの異常検知能力を高めることができます。
- SNMPトラップ: ネットワーク機器など、Zabbix Agentをインストールできないデバイスは、SNMP(Simple Network Management Protocol)を利用して監視が可能です。
3. 長期運用とメンテナンス
- LTS版の利用: Ubuntu ServerもZabbixも長期サポート(LTS)版が存在します。安定した運用と長期的なサポートを考慮し、LTS版の利用を基本としてください。
- バージョンアップ計画: Zabbixは定期的に新バージョンがリリースされます。計画的なバージョンアップにより、新機能の利用やセキュリティ脆弱性の解消を図ることが重要です。事前に検証環境でのテストを徹底してください。
- バックアップ戦略: Zabbixデータベースと設定ファイル(
zabbix_server.conf
など)の定期的なバックアップは必須です。障害発生時の迅速な復旧に備えてください。 - ドキュメント化とナレッジ共有: Zabbixの設定、監視項目、アラート基準、トラブルシューティング手順などを詳細にドキュメント化し、情報システム部門内で共有することで、担当者の異動などがあった場合でもスムーズな運用が可能です。
4. コストとリソース管理
- ハードウェアリソース: ZabbixはOSSでありライセンスコストはかかりませんが、Zabbix Serverが稼働するハードウェアや仮想マシンのリソースは必要です。監視規模に応じた適切なリソース計画を行い、無駄な投資を避ける必要があります。
- 運用にかかる人件費: 導入後の運用、監視設定の調整、アラートの分析、バージョンアップ作業など、Zabbixを効果的に活用するためには、担当者のスキルアップと継続的な作業時間が必要です。これらをコストとして考慮し、効率的な運用体制を検討してください。
まとめ
本記事では、自治体情報システム部門の担当者向けに、オープンソースの監視ツールZabbixの導入から基本的な設定までを具体的に解説しました。Zabbixは、その多機能性、柔軟性、そしてライセンス費用が不要という点で、限られた予算内でシステム監視の質を高めたい自治体にとって非常に有効な選択肢となります。
Zabbixを導入することで、システムの安定稼働を可視化し、問題発生時の迅速な検知と対応が可能になります。これにより、住民サービスの安定提供に貢献できるだけでなく、情報システム部門の業務効率化にも繋がるでしょう。
今回解説した内容はZabbixの基本的な機能に留まりますが、Zabbixにはさらに高度な機能(分散監視、カスタムスクリプト、API連携など)が多数存在します。本記事を足がかりに、貴自治体のシステム環境に合わせた最適な監視体制を構築し、さらなる情報システムの安定運用を目指していただければ幸いです。