Zabbix監視 テンプレートとは/用語説明

Zabbixで監視を行うにはテンプレートと呼ばれる機能を使用しますが、ある程度全体像を理解しておかないと設定時に??となりがちです。ただでさえ機能が豊富なZabbixで最低限の監視を行うために、必要だと思う用語や概要をこのページに纏めます。

1.テンプレートとは

テンプレートは監視に関わる情報を入れ込むための箱です。監視項目、値の取得方法や、障害と判断させるためのしきい値情報、グラフを生成するための情報など様々な情報が格納されています。またテンプレートの部品を、別のテンプレートの一部として利用することも可能です。概念が最初少しとっつきにくいので、例としてPostfixのプロセス監視をするテンプレートを作成する場合に最低限必要な各設定項目の関係性を纏めてみました。斜体は命名した設定項目の名前です。

zabbix概念

2.テンプレートの設定項目

設定項目
概要
アプリケーション
複数のアイテムから構成されます。(1つでももちろん可)。アプリケーションとありますが、これが何のアプリケーションのための監視なのか程度の情報を書いておけば良い項目です。
あぷけーしょん
アイテム
かなり重要。1つ1つの監視項目を指す。アイテムを包括しているアプリケーションは右欄からわかる。アイテムの中にさらに細かい設定があるので詳しくは後述。キーで具体的にどんな値を取得するか決め、取得する手段をタイプで決める。
aitemu
トリガー
アイテムで取得した結果に対して異常と判断させるための情報を定義する。
グラフ
アイテムで取得した結果をグラフとして表示できる。例えば、デフォルトテンプレートOS Linuxのロードアベレージのグラフは、3つのロードアベレージを取得するアイテムを組み合わせてグラフを生成している。
gurahu
スクリーン
zabbixのグラフをグラフページから参照する時は、一度に1つのグラフしか参照できない。(え?)複数のグラフを一度に参照できるようにするときに利用する。というかそんな重要な機能こんなわかりにくい名前にすんなと思ったのは私だけじゃないはず。
ディスカバリルール
テンプレート管理を楽にする機能。条件を設定して、条件にマッチした場合に特定の監視項目を自動的に追加できる。
webシナリオ
WEB監視をする際に、このページURLを見て~このHTTPレスポンスコードが返ってきていることをチェックする、といったシナリオ設定をする場合に利用する。ポート監視やプロセス監視よりもサービスレイヤに近い形式でのチェックができる。

2-1.アイテムの設定項目

■名前
アイテムの名前を入力。

■タイプ

設定項目
チェック方法
Zabbixエージェント
クライアントにzabbixエージェントが必要。
データ収集は「サーバ」 → 「クライアント」
Zabbixエージェント(アクティブ)
クライアントにzabbixエージェントが必要。
データ収集は「クライアント」 → 「サーバ」
シンプルチェック
クライアントにzabbixエージェントは不要。(ICMP,TCP,UDPを利用)
サーバ → クライアント
チェック対象ホストにエージェントのインストールは不要。
SNMPv xx チェック
SNMPプロトコルを利用する。
外部チェック
外部スクリプトを利用してチェックできる。

■キー

重要な設定項目。監視をするには何かしら値をとって、その値がどうなった時に、どのような状態を定義するわけですが、このキーは「何かしら値をとって」についてなんの値を取るのかを明確に指定する設定フィールドです。キーは上記のアイテム:タイプで選択した方法によって使えるものが違います。よく使いそうなものを選ぶとすると下記のとおり。

▽zabbixエージェント

net.dns 監視対象にてリゾルバが正常に名前解決ができる状態か
net.tcp.port 監視対象から指定したホスト:ポートにTCP接続できるか
net.udp.listen 監視対象がTCP xxポートをリッスンしているか
net.tcp.listen 監視対象がTCP xxポートをリッスンしているか
system.cpu.load 監視対象のロードアベレージはいくつか
proc.num 監視対象上で指定したプロセスがいくつ存在するか

▽シンプルチェック

icmpping Pingの応答があるかをチェックする。
icmppingloss Pingのパケットロスをチェックする。
net.tcp.service TCP xx Portに接続が可能かをチェックする。

▽SNMPチェック

SNMPの仕組みを利用した値の取得方法なので、SNMPにOIDさえ準備されていれば、豊富な種類のデータを収集できます。SNMPを用いた監視はZabbix独自のものではないので割愛します。

■値のマッピング

ちょっと理解があやしいかも。視覚性を高めるために利用します。キーで指定した値を定期的に取得するが、どの数値がどのような状態になるのかを指定できる。例えば、下記のCheck PingはICMPチェックで応答ありなら1、なしなら0と値を取得するのだが、マッピングを使って、0=Down、1=UPと定義している。0だけだとOKなのかNGなのか判断しずらいが、マッピングしておくことで追加的な情報を表示できる。
mapping

2-2.トリガー登録用語

トリガーでは、Zabbixが取得する値がこうなったら障害!と条件式を利用して定義をすることが可能です。

条件式の書式: {<server>:<key>.<function>(<parameter>)}<operator><constant>
 条件式は、グダグダ書いてあるが、以下のようなイメージでだいたい問題ないはず。
{テンプレート名:アイテムのキー.取得値xx回(または平均、合計)が}どうなった時か、を示す条件式
ping監視を例にすると以下のとおり
icmpping.last(0)=0
ping実行し一回でもラーの場合、 障害と判断
icmpping.max(#3)=0
3回分のping実行がエラーの場合、障害と判断
icmppingsec.max(60)=0
一定期間(60秒)でpingがタイムアウトしたとき、障害と判断
▽Tips サポートされている関数一例
-avg
     期間の平均値。数値を指定し現在からxx秒以内と指定するか、#xxでチェック何回分と指定します。
-last
     最新データ〜過去xx回目の結果を返します。last(#3) – 3番目に新しい値(3つの新しい値ではありません)
-max
     期間内の最大(最高)値。最初のパラメータで期間を秒単位で設定するか、収集した値の数(ハッシュマーク#を先頭に付けます)で設定します。max(#3)}=0  過去三回分が失敗したとき。

 

ここらへんまでをおさえておけば設定は特に?とならずに進めることができるのではないでしょうか!以上です。

Bookmark this on Google Bookmarks
LINEで送る
Pocket