Zabbixで始めるサーバー監視入門|死活監視と通知設定

サーバーの死活監視とリアルタイム通知を自動化するなら、Zabbixが最適なソリューションです。ネットワーク機器や仮想サーバーを含むITインフラ全体を一元管理し、障害発生時に即座にメールやSlackで通知する仕組みを構築できます。本記事では、Zabbixの基本的な導入手順から死活監視の設定、通知ルールのカスタマイズまで、実務で即活用できる実践的な手法を解説します。初心者でも理解しやすいように、具体的な画面キャプチャ付きの手順を交えながら丁寧に説明しますので、ぜひ実践してみてください。


目次


Zabbixとは?サーバー監視の基礎知識

Zabbixは、オープンソースのITインフラ監視ツールで、サーバー、ネットワーク機器、クラウドサービスなど、幅広い対象をリアルタイムで監視できます。死活監視(Ping監視)だけでなく、CPU使用率、メモリ使用量、ディスクI/O、ネットワークトラフィックなど、システムの健全性を包括的に把握するための監視アイテムを提供します。

Zabbixの主な特徴は以下の通りです。

機能説明
死活監視ICMP(Ping)、TCPポート、HTTPステータスなどの監視が可能
パフォーマンス監視CPU、メモリ、ディスク、ネットワークなどのリソース使用率を監視
柔軟な通知メール、Slack、Teams、SMSなど、複数のチャンネルでアラートを送信
テンプレート機能監視設定をテンプレート化し、複数のホストに一括適用可能
Web監視Webサイトの可用性やレスポンスタイムを監視
分散監視複数のZabbixサーバーで監視を分散させ、大規模環境に対応

Zabbixは、監視対象のサーバーにZabbixエージェントをインストールすることで、詳細なリソース監視が可能になります。エージェントレスの監視もサポートしており、SNMPやIPMIを使用してネットワーク機器やサーバーハードウェアの監視も行えます。

Zabbixの公式サイトによると、世界中で1万社以上の企業がZabbixを導入しており、その信頼性と拡張性の高さが評価されています(出典: Zabbix公式サイト)。


Zabbixのインストール手順(Ubuntu/Debian/CentOS)

Zabbixを導入するには、専用のサーバー(Zabbixサーバー)を用意し、監視対象のサーバー(ホスト)にZabbixエージェントをインストールする必要があります。以下では、主要なLinuxディストリビューション(Ubuntu/Debian/CentOS)ごとのインストール手順を解説します。

前提条件

  • Zabbixサーバー(監視サーバー)1台
  • 監視対象のサーバー(ホスト)1台以上
  • root権限またはsudo権限を持つユーザー
  • インターネット接続(パッケージのダウンロード用)

1. Zabbixサーバー…

Ubuntu/Debianの場合

Zabbix公式リポジトリを追加し、サーバーをインストールします。

# Zabbix公式リポジトリを追加
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu$(lsb_release -rs)_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu$(lsb_release -rs)_all.deb
sudo apt update

Zabbixサーバー、フロントエンド、エージェントをインストール

sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

CentOS/RHELの場合

Zabbix公式リポジトリを追加し、サーバーをインストールします。

# Zabbix公式リポジトリを追加
sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/$(rpm -E %rhel)/x86_64/zabbix-release-6.0-4.el$(rpm -E %rhel).noarch.rpm
sudo dnf clean all

Zabbixサーバー、フロントエンド、エージェントをインストール

sudo dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

2. MySQL/Mari…

ZabbixはデータベースにMySQLまたはMariaDBを使用します。以下の手順でデータベースをセットアップします。

# MySQL/MariaDBをインストール(未インストールの場合)
sudo apt install -y mysql-server  # Ubuntu/Debian
sudo dnf install -y mariadb-server  # CentOS/RHEL

MySQL/MariaDBを起動し、自動起動を有効化

sudo systemctl start mysql sudo systemctl enable mysql

Zabbixデータベースとユーザーを作成

sudo mysql -u root -p

MySQLコンソール内で以下のコマンドを実行します。

CREATE DATABASE zabbix character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
exit

次に、Zabbixスキーマをデータベースにインポートします。

# Zabbixスキーマをインポート
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix

パスワードを入力すると、スキーマがインポートされます。

3. Zabbixサーバー…

Zabbixサーバーの設定ファイルを編集します。

sudo vi /etc/zabbix/zabbix_server.conf

以下の項目を編集します。

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_password

設定が完了したら、Zabbixサーバーを起動します。

sudo systemctl restart zabbix-server zabbix-agent apache2 httpd
sudo systemctl enable zabbix-server zabbix-agent apache2 httpd

4. Zabbix Web…

WebブラウザでZabbix Webフロントエンドにアクセスします。

http:///zabbix

セットアップウィザードが表示されるので、指示に従って設定を行います。

  • 言語の選択
  • 事前チェック(前提条件の確認)
  • データベース接続情報の入力(DBName: zabbix, DBUser: zabbix, DBPassword: zabbix_password)
  • Zabbixサーバーの詳細設定
  • インストールの完了

インストールが完了すると、ログイン画面が表示されます。デフォルトのユーザー名は「Admin」、パスワードは「zabbix」です。


Zabbixの初期設定と基本操作

Zabbix Webフロントエンドにログインすると、ダッシュボードが表示されます。ここから監視対象のホストを追加し、監視アイテムやトリガーを設定していきます。

ホストの追加と監視対象の設定

Zabbixでホストを追加する手順は以下の通りです。

  1. 左側のメニューから「設定」→「ホスト」を選択します。
  2. 「ホストの作成」ボタンをクリックします。
  3. ホストの基本情報を入力します。
  • ホスト名
  • 項目説明監視対象の名前(例:web-server-01)
    表示名ダッシュボードに表示される名前(例:Web Server 01)
    グループホストをグループ化(例:Linux servers、Databases)
    インターフェース監視対象のIPアドレスまたはホスト名を入力
    ポートZabbixエージェントがリッスンするポート(デフォルト:10050)

    入力が完了したら、「追加」ボタンをクリックします。ホストが追加され、監視が開始されます。

    監視アイテム(Item)の設定

    監視アイテムは、ホストから収集するデータを定義します。例えば、CPU使用率、メモリ使用量、ディスク使用量などを監視できます。

    監視アイテムを設定する手順は以下の通りです。

    1. 左側のメニューから「設定」→「ホスト」を選択します。
    2. 監視したいホストをクリックします。
    3. 「アイテム」タブを選択します。
    4. 「アイテムの作成」ボタンをクリックします。

    アイテムの設定画面で、以下の項目を入力します。

    項目説明
    名前監視アイテムの名前(例:CPU使用率)
    キーZabbixエージェントが収集するデータのキー(例:system.cpu.util[,user])
    更新間隔データ収集の間隔(秒単位、例:30)
    種類監視の種類(Zabbixエージェント、SNMP、HTTPエージェントなど)
    データ型収集するデータの型(数値(整数)、数値(浮動小数点)、文字列など)
    保存期間データを保存する期間(日数)

    設定が完了したら、「追加」ボタンをクリックします。監視アイテムが追加され、データの収集が開始されます。

    トリガー(Trigger)と死活監視の設定

    トリガーは、監視アイテムのデータに基づいてアラートを発生させるルールです。例えば、CPU使用率が90%以上になった場合にアラートを発生させることができます。

    トリガーを設定する手順は以下の通りです。

    1. 左側のメニューから「設定」→「ホスト」を選択します。
    2. 監視したいホストをクリックします。
    3. 「トリガー」タブを選択します。
    4. 「トリガーの作成」ボタンをクリックします。

    トリガーの設定画面で、以下の項目を入力します。

    項目説明
    名前トリガーの名前(例:高CPU使用率)
    条件アラートを発生させる条件(例:{web-server-01:system.cpu.util[,user].last()}>90)
    重大度アラートの重大度(情報、警告、平均、高、災害)
    メッセージアラート発生時に送信されるメッセージ

    設定が完了したら、「追加」ボタンをクリックします。トリガーが追加され、条件に一致した場合にアラートが発生します。

    死活監視(Ping監視)を設定するには、以下の手順で監視アイテムを作成します。

    1. ホストの「アイテム」タブを開き、「アイテムの作成」をクリックします。
    2. 名前:死活監視(Ping)
    3. キー:icmpping
    4. 種類:Zabbixエージェント
    5. 更新間隔:60(秒)
    6. データ型:数値(整数)
    7. 保存期間:30(日)

    次に、トリガーを作成します。

    1. ホストの「トリガー」タブを開き、「トリガーの作成」をクリックします。
    2. 名前:サーバーダウン
    3. 条件:{web-server-01:icmpping.last()}=0
    4. 重大度:災害
    5. メッセージ:サーバーが応答しません。

    これで、サーバーがダウンした際に災害レベルのアラートが発生します。


    通知設定の完全ガイド(メール・Slack・Teams)

    Zabbixでは、トリガーが発生した際にメール、Slack、Microsoft Teamsなど、複数のチャンネルで通知を送信できます。通知設定は、メディアタイプとアクションを組み合わせて行います。

    1. メディアタイプの設定

    メディアタイプは、通知を送信する方法を定義します。Zabbixにはデフォルトでメールが設定されていますが、SlackやTeamsなどのメディアタイプを追加することもできます。

    メールの設定

    メールの設定は、Zabbix Webフロントエンドの「管理」→「メディアタイプ」から行います。

    1. 左側のメニューから「管理」→「メディアタイプ」を選択します。
    2. 「メール」をクリックします。
    3. SMTPサーバーの設定を行います。
    項目説明
    SMTPサーバーSMTPサーバーのホスト名またはIPアドレス(例:smtp.gmail.com)
    ポートSMTPサーバーのポート(例:587)
    セキュリティ暗号化方式(STARTTLS、SSL/TLS)
    認証SMTPサーバーの認証情報(ユーザー名、パスワード)

    設定が完了したら、「更新」ボタンをクリックします。

    Slackの設定

    Slackで通知を受け取るには、Slackアプリを作成し、Webhook URLを取得する必要があります。

    1. Slackのワークスペースにログインし、Slack APIにアクセスします。
    2. 「新しいアプリを作成」をクリックし、アプリ名とワークスペースを選択します。
    3. 「Incoming Webhooks」を有効化し、新しいWebhookを追加します。
    4. Webhook URLをコピーします。

    次に、ZabbixでSlackのメディアタイプを設定します。

    1. Zabbix Webフロントエンドの「管理」→「メディアタイプ」を選択します。
    2. 「メディアタイプの作成」をクリックします。
    3. 名前:Slack
    4. タイプ:Webhook
    5. HTTPを選択
    6. URL:先ほどコピーしたWebhook URLを入力
    7. リクエスト方法:POST
    8. ヘッダーの追加:
      • Content-Type: application/json
    9. ボディ:
      {
        "text": "{TRIGGER.STATUS}: {TRIGGER.NAME}\n{HOST.NAME}: {ITEM.NAME} ({ITEM.KEY})\n{TRIGGER.URL}"
      }

    設定が完了したら、「追加」ボタンをクリックします。

    Microsoft Teamsの設定

    Microsoft Teamsで通知を受け取るには、Teamsのコネクタを設定します。

    1. Teamsでチャネルを選択し、「…」→「コネクタ」をクリックします。
    2. 「Incoming Webhook」を検索し、追加します。
    3. Webhook URLをコピーします。

    次に、ZabbixでTeamsのメディアタイプを設定します。

    1. Zabbix Webフロントエンドの「管理」→「メディアタイプ」を選択します。
    2. 「メディアタイプの作成」をクリックします。
    3. 名前:Teams
    4. タイプ:Webhook
    5. HTTPを選択
    6. URL:先ほどコピーしたWebhook URLを入力
    7. リクエスト方法:POST
    8. ヘッダーの追加:
      • Content-Type: application/json
    9. ボディ:
      {
        "@type": "MessageCard",
        "@context": "http://schema.org/extensions",
        "themeColor": "0076D7",
        "summary": "{TRIGGER.STATUS}: {TRIGGER.NAME}",
        "sections": [{
          "activityTitle": "{TRIGGER.STATUS}: {TRIGGER.NAME}",
          "activitySubtitle": "{HOST.NAME}",
          "facts": [{
            "name": "項目",
            "value": "{ITEM.NAME}"
          }, {
            "name": "値",
            "value": "{ITEM.VALUE}"
          }],
          "markdown": true
        }]
      }

    設定が完了したら、「追加」ボタンをクリックします。

    2. アクションの設定

    アクションは、トリガーが発生した際にメディアタイプを使用して通知を送信するルールです。アクションを設定する手順は以下の通りです。

    1. 左側のメニューから「設定」→「アクション」を選択します。
    2. 「アクションの作成」をクリックします。
    3. アクションの基本情報を入力します。
    項目説明
    名前アクションの名前(例:高CPU使用率時の通知)
    条件アクションを実行する条件(例:トリガーの重大度が「警告」以上)
    実行内容実行する操作(メディアタイプを使用した通知)

    次に、実行内容を設定します。

    1. 「実行内容」タブを選択します。
    2. 「新しい操作の追加」をクリックします。
    3. 操作:送信
    4. メディアタイプ:Slack(またはメール、Teams)
    5. ユーザーまたはグループ:通知を受け取るユーザーを選択

    設定が完了したら、「追加」ボタンをクリックします。これで、トリガーが発生した際に指定したメディアタイプで通知が送信されます。


    応用編:高度な監視設定

    Zabbixの基本的な監視設定が完了したら、次は応用的な監視設定を行いましょう。テンプレートの活用やグラフ・ダッシュボードのカスタマイズにより、監視の効率と可視性を向上させることができます。

    テンプレートのインポートとカスタマイズ

    テンプレートは、監視設定を再利用可能な形で保存する機能です。例えば、Linuxサーバーの監視設定をテンプレート化して、複数のサーバーに一括適用できます。

    Zabbixには、公式に提供されているテンプレートが多数用意されています。以下の手順でテンプレートをインポートします。

    1. 左側のメニューから「設定」→「テンプレート」を選択します。
    2. 「テンプレートのインポート」をクリックします。
    3. テンプレートファイル(XML形式)をアップロードします。

    公式テンプレートは、Zabbixドキュメントからダウンロードできます。例えば、Linuxサーバー用のテンプレート(Template OS Linux)をインポートします。

    テンプレートをホストにリンクする手順は以下の通りです。

    1. 左側のメニューから「設定」→「ホスト」を選択します。
    2. 監視したいホストをクリックします。
    3. 「テンプレート」タブを選択します。
    4. 「テンプレートのリンク」をクリックします。
    5. リンクしたいテンプレートを選択し、「追加」をクリックします。

    テンプレートをリンクすると、テンプレートに含まれる監視アイテム、トリガー、グラフがホストに自動的に適用されます。

    テンプレートをカスタマイズするには、以下の手順で行います。

    1. 左側のメニューから「設定」→「テンプレート」を選択します。
    2. カスタマイズしたいテンプレートをクリックします。
    3. 「アイテム」、「トリガー」、「グラフ」などのタブを選択し、設定を編集します。

    例えば、特定のサーバーにのみ適用したい監視アイテムを追加する場合は、テンプレートを複製してカスタマイズします。

    グラフとダッシュボードの作成

    グラフは、監視データを視覚的に表示する機能です。Zabbixでは、単一の監視アイテムのデータをグラフ化するだけでなく、複数のアイテムを組み合わせたカスタムグラフを作成できます。

    グラフを作成する手順は以下の通りです。

    1. 左側のメニューから「監視データ」→「最新のデータ」を選択します。
    2. グラフ化したい監視アイテムを選択します。
    3. 「グラフの表示」をクリックします。

    カスタムグラフを作成するには、以下の手順で行います。

    1. 左側のメニューから「監視データ」→「グラフ」を選択します。
    2. 「グラフの作成」をクリックします。
    3. グラフの基本情報を入力します。
    項目説明
    名前グラフの名前(例:CPU使用率とメモリ使用率)
    グラフの幅(ピクセル)
    高さグラフの高さ(ピクセル)

    次に、グラフに表示する監視アイテムを追加します。

    1. 「項目の追加」をクリックします。
    2. グラフに表示する監視アイテムを選択します。
    3. 色や線のスタイルをカスタマイズします。

    設定が完了したら、「保存」ボタンをクリックします。グラフが作成され、ダッシュボードに表示されます。

    ダッシュボードは、複数のグラフや監視データを1つの画面にまとめる機能です。ダッシュボードを作成する手順は以下の通りです。

    1. 左側のメニューから「監視データ」→「ダッシュボード」を選択します。
    2. 「ダッシュボードの作成」をクリックします。
    3. ダッシュボードの名前を入力します。

    次に、ダッシュボードにウィジェットを追加します。

    1. 「ウィジェットの追加」をクリックします。
    2. 追加するウィジェットの種類を選択します(グラフ、監視データ、地図、etc.)。
    3. 表示するデータやグラフを選択します。

    設定が完了したら、「保存」ボタンをクリックします。ダッシュボードが作成され、監視データを一目で確認できるようになります。


    【編集・制作ポリシー】
    本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。