1.3 基本概念と用語

Zabbixを理解するために必要な基本概念と専門用語

核となる5つの基本概念

Zabbixの理解には、以下の5つの基本概念を押さえることが重要です:

  1. Host(ホスト) - 監視対象の定義
  2. Item(アイテム) - 収集するデータの定義
  3. Trigger(トリガー) - 問題の検知条件
  4. Action(アクション) - 問題発生時の自動対応
  5. Template(テンプレート) - 設定の標準化

Host(ホスト)の概念

定義と役割

ホストは、Zabbixで監視したいネットワーク機器やシステムを表します。

ホストの特徴

  • 監視対象の抽象化: 物理・仮想を問わず統一的に扱う
  • 設定のコンテナ: アイテム、トリガー、その他の監視要素を含む
  • 一意性: IPアドレスまたはDNS名で識別
  • グループ化: 管理しやすいように分類可能

ホストの種類

ホストタイプ説明
サーバー物理・仮想サーバーWebサーバー、DBサーバー
ネットワーク機器ネットワークインフラルーター、スイッチ、ファイアウォール
アプライアンス専用機器ストレージ、プリンター、UPS
アプリケーションソフトウェアサービスWebアプリ、データベース
クラウドリソースクラウドサービスEC2インスタンス、Azure VM

ホストの設定要素

基本情報

ホスト名: web-server-01
表示名: Webサーバー01(本番環境)
ホストグループ: Webサーバー, 本番環境
説明: メインWebアプリケーションサーバー

インターフェース設定

  • エージェントインターフェース: 10.0.1.10:10050
  • SNMPインターフェース: 10.0.1.10:161
  • IPMIインターフェース: 10.0.1.11:623

Item(アイテム)とは

定義と機能

アイテムは、ホストから収集する個別のメトリクスやデータポイントを定義します。

アイテムの構成要素

  • アイテムキー: 収集するデータの識別子
  • データタイプ: 数値、文字列、ログ、バイナリ
  • 更新間隔: データ収集の頻度
  • 値の前処理: 収集後のデータ変換

データタイプの詳細

数値データ

- 浮動小数点: CPU使用率 (45.67%)
- 整数: プロセス数 (127個)
- 符号なし整数: ディスク使用量 (1TB = 1099511627776バイト)

文字列・ログデータ

- 文字列: システムバージョン ("CentOS 7.9")
- ログ: アクセスログエントリー
- テキスト: 設定ファイルの内容

バイナリデータ

- イメージ: スクリーンショット
- ファイル: 設定ファイルのバックアップ
- バイナリログ: システムイベントログ

アイテムキーの例

システムリソース

system.cpu.util[,user]          # ユーザーCPU使用率
vm.memory.util[available]       # 利用可能メモリ率
vfs.fs.size[/,used]            # ルートパーティション使用量
system.uptime                   # システム稼働時間

ネットワーク

net.if.in[eth0]                # インターフェースの受信バイト数
net.if.out[eth0]               # インターフェースの送信バイト数
net.tcp.listen[80]             # ポート80のリスニング状態

アプリケーション

web.page.get[www.example.com]   # Webページの取得
db.odbc.select[query]          # データベースクエリ実行
log[/var/log/messages]         # ログファイル監視

前処理ステップ

データ収集後の変換処理:

  1. 値の変換

    • 単位変換: バイト → GB
    • 文字列 → 数値
    • 正規表現による抽出
  2. データの正規化

    • 差分計算: カウンターからレートへ
    • 移動平均の計算
    • 閾値による制限

Trigger(トリガー)の役割

定義と目的

トリガーは、収集したデータに基づいて問題状況を判定する論理式です。

トリガーの状態

  • OK: 正常状態
  • Problem: 問題状態
  • Unknown: 判定不能状態

トリガー式の構文

基本構文

{ホスト:アイテムキー.関数(パラメータ)} 演算子 閾値

実用的な例

CPU使用率の監視
{web-server-01:system.cpu.util[,user].avg(5m)} > 80

解釈: web-server-01のユーザーCPU使用率の5分平均が80%を超えた場合

メモリ不足の検知
{db-server-01:vm.memory.util[available].last()} < 10

解釈: db-server-01の利用可能メモリ率が10%を下回った場合

サービス停止の検知
{web-server-01:net.tcp.listen[80].last()} = 0

解釈: web-server-01のポート80がリスニングしていない場合

深刻度レベル

問題の重要度を6段階で分類:

レベル名称用途
0未分類デフォルト一般的な通知
1情報情報提供設定変更の通知
2警告注意が必要ディスク使用率70%
3軽度軽微な問題一時的な負荷上昇
4重度深刻な問題サービス応答遅延
5災害致命的問題システム完全停止

複雑なトリガー条件

複数条件の組み合わせ

{web-server-01:system.cpu.util[,user].avg(5m)} > 80 and
{web-server-01:vm.memory.util[available].last()} < 20

CPU高負荷かつメモリ不足の同時発生

時間条件の指定

{web-server-01:system.cpu.util[,user].avg(10m)} > 90 and
{web-server-01:system.cpu.util[,user].avg(30m)} > 80

短期・中期両方で高負荷が継続

Action(アクション)の仕組み

定義と機能

アクションは、トリガーの状態変化に対する自動的な対応を定義します。

アクションの種類

  1. 通知アクション

    • メール送信
    • SMS送信
    • Slackメッセージ
    • Webhookコール
  2. リモートコマンド

    • サービス再起動
    • ログファイル収集
    • 一時的な設定変更
    • 緊急シャットダウン

通知エスカレーション

問題の継続時間に応じた段階的な通知:

エスカレーション例

ステップ1 (0分): 担当者にメール送信
ステップ2 (15分): 担当者にSMS + 上司にメール
ステップ3 (30分): 担当者 + 上司にSMS + チーム全体に通知
ステップ4 (60分): 管理職層への緊急連絡

条件フィルタリング

アクション実行の詳細条件:

条件の例

  • ホストグループ: 本番環境のサーバーのみ
  • 深刻度: 重度以上の問題のみ
  • 時間帯: 営業時間内のみ
  • タグ: 特定のサービスタグ付きのみ

Template(テンプレート)の活用

定義と目的

テンプレートは、監視設定の標準化と再利用を可能にする設定の雛形です。

テンプレートの利点

  1. 設定の標準化

    • 同種システムの統一的な監視
    • ベストプラクティスの共有
    • 設定ミスの削減
  2. 効率的な管理

    • 一括設定変更
    • 迅速なデプロイ
    • メンテナンス性の向上
  3. 知識の蓄積

    • 監視ノウハウの体系化
    • チーム間での知識共有
    • 新人教育の効率化

テンプレートの階層構造

継承の概念

基底テンプレート「OS Linux」
├── 「Linux Server」
│   ├── 「Web Server」
│   └── 「Database Server」
└── 「Linux Network Device」

継承の利点

  • 共通設定の集約: OS共通の監視項目
  • 専門設定の追加: 各サービス固有の監視
  • 保守性の向上: 基底変更の自動反映

OOTBテンプレート

Zabbixが提供する標準テンプレート:

OS別テンプレート

  • Template OS Linux
  • Template OS Windows
  • Template OS macOS

アプリケーション別テンプレート

  • Template App Apache
  • Template App MySQL
  • Template App PostgreSQL
  • Template App Docker

ネットワーク機器別テンプレート

  • Template Net Cisco IOS
  • Template Net HP Comware HH3C
  • Template Net Juniper

その他の重要な概念

Event(イベント)

トリガーの状態変化やディスカバリ結果などの「出来事」:

  • トリガーイベント: 問題の発生・解決
  • ディスカバリイベント: 新デバイスの発見
  • 自動登録イベント: エージェントの自動登録
  • 内部イベント: システム内部の状態変化

Problem(問題)

現在進行中の問題状況:

  • 問題の定義: トリガーがProblem状態にある状況
  • 問題の解決: トリガーがOK状態に復帰
  • 問題の確認: 担当者による問題認知の記録
  • 問題のクローズ: 手動での問題終了

Dashboard(ダッシュボード)

監視状況の視覚的な表示画面:

ダッシュボードの構成要素

  • ウィジェット: 個別の表示パーツ
  • レイアウト: ウィジェットの配置
  • フィルター: 表示データの絞り込み
  • 自動更新: 一定間隔での画面更新

Discovery(ディスカバリ)

監視対象の自動発見機能:

ディスカバリの種類

  1. ネットワークディスカバリ: IPレンジスキャンによるデバイス発見
  2. 自動登録: エージェントからの自発的登録
  3. 低レベルディスカバリ: ファイルシステムやネットワークインターフェースの自動発見

基本概念の関係図

Host(ホスト)
├── Item(アイテム)─── 値 ───→ Trigger(トリガー)
│                              ↓
├── Template(テンプレート)     Event(イベント)
│                              ↓
└── Macro(マクロ)           Action(アクション)

                         Notification(通知)

学習のポイント

段階的理解

  1. 第1段階: Host、Item、Triggerの基本関係の理解
  2. 第2段階: Actionによる自動化の活用
  3. 第3段階: Templateによる効率化の実現
  4. 第4段階: 高度な機能(Discovery等)の活用

実践的なアプローチ

  1. 小規模から開始: 1-2台のサーバーで基本操作を習得
  2. 段階的拡張: 監視対象とメトリクスを徐々に増加
  3. 自動化の導入: 手動作業のアクション化
  4. 標準化の推進: テンプレートによる統一的な監視

まとめ

Zabbixの基本概念を理解することで、以下が可能になります:

  1. 効果的な監視設計: 適切なHost、Item、Triggerの設定
  2. 自動化の実現: Actionによる運用作業の削減
  3. 標準化の推進: Templateによる一貫した監視品質
  4. スケーラブルな運用: 大規模環境への対応

これらの基本概念は、Zabbixの全ての機能の基盤となります。第2部以降では、これらの概念を基に、より詳細な設定方法と実践的な活用方法を学習していきます。


参考リンク

← 前へ: 1.2 Zabbixの主要メリット | 目次に戻る →