1.3 基本概念と用語
Zabbixを理解するために必要な基本概念と専門用語
核となる5つの基本概念
Zabbixの理解には、以下の5つの基本概念を押さえることが重要です:
- Host(ホスト) - 監視対象の定義
- Item(アイテム) - 収集するデータの定義
- Trigger(トリガー) - 問題の検知条件
- Action(アクション) - 問題発生時の自動対応
- 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] # ログファイル監視
前処理ステップ
データ収集後の変換処理:
値の変換
- 単位変換: バイト → GB
- 文字列 → 数値
- 正規表現による抽出
データの正規化
- 差分計算: カウンターからレートへ
- 移動平均の計算
- 閾値による制限
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(アクション)の仕組み
定義と機能
アクションは、トリガーの状態変化に対する自動的な対応を定義します。
アクションの種類
通知アクション
- メール送信
- SMS送信
- Slackメッセージ
- Webhookコール
リモートコマンド
- サービス再起動
- ログファイル収集
- 一時的な設定変更
- 緊急シャットダウン
通知エスカレーション
問題の継続時間に応じた段階的な通知:
エスカレーション例
ステップ1 (0分): 担当者にメール送信
ステップ2 (15分): 担当者にSMS + 上司にメール
ステップ3 (30分): 担当者 + 上司にSMS + チーム全体に通知
ステップ4 (60分): 管理職層への緊急連絡
条件フィルタリング
アクション実行の詳細条件:
条件の例
- ホストグループ: 本番環境のサーバーのみ
- 深刻度: 重度以上の問題のみ
- 時間帯: 営業時間内のみ
- タグ: 特定のサービスタグ付きのみ
Template(テンプレート)の活用
定義と目的
テンプレートは、監視設定の標準化と再利用を可能にする設定の雛形です。
テンプレートの利点
設定の標準化
- 同種システムの統一的な監視
- ベストプラクティスの共有
- 設定ミスの削減
効率的な管理
- 一括設定変更
- 迅速なデプロイ
- メンテナンス性の向上
知識の蓄積
- 監視ノウハウの体系化
- チーム間での知識共有
- 新人教育の効率化
テンプレートの階層構造
継承の概念
基底テンプレート「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(ディスカバリ)
監視対象の自動発見機能:
ディスカバリの種類
- ネットワークディスカバリ: IPレンジスキャンによるデバイス発見
- 自動登録: エージェントからの自発的登録
- 低レベルディスカバリ: ファイルシステムやネットワークインターフェースの自動発見
基本概念の関係図
Host(ホスト)
├── Item(アイテム)─── 値 ───→ Trigger(トリガー)
│ ↓
├── Template(テンプレート) Event(イベント)
│ ↓
└── Macro(マクロ) Action(アクション)
↓
Notification(通知)
学習のポイント
段階的理解
- 第1段階: Host、Item、Triggerの基本関係の理解
- 第2段階: Actionによる自動化の活用
- 第3段階: Templateによる効率化の実現
- 第4段階: 高度な機能(Discovery等)の活用
実践的なアプローチ
- 小規模から開始: 1-2台のサーバーで基本操作を習得
- 段階的拡張: 監視対象とメトリクスを徐々に増加
- 自動化の導入: 手動作業のアクション化
- 標準化の推進: テンプレートによる統一的な監視
まとめ
Zabbixの基本概念を理解することで、以下が可能になります:
- 効果的な監視設計: 適切なHost、Item、Triggerの設定
- 自動化の実現: Actionによる運用作業の削減
- 標準化の推進: Templateによる一貫した監視品質
- スケーラブルな運用: 大規模環境への対応
これらの基本概念は、Zabbixの全ての機能の基盤となります。第2部以降では、これらの概念を基に、より詳細な設定方法と実践的な活用方法を学習していきます。
参考リンク