サンプル/グラフ引数のサンプル

提供: Munin.jp wiki
移動: 案内検索


この例では統合したグラフの作成を取り扱います。設定は2つの UPS (2つのホストと、それぞれにプラグイン設定があります)からデータを読み込んだ上、仮想ホスト上で2つの仮想プラグインを用い、1つの電源グラフを生成するものです。


目次

プラグインの関連

例では UPS の状態を SNMP 経由で監視するので、UPS 毎に、それぞれに異なったシンボリックリンクを作成します。2つの UPS セットを、それぞれ "ups-5a" と "ups-5b" と呼称し、それぞれの "current" と "power" を監視します。すなわち、対象となるプラグインは、以下の通りです:

snmp_ups_ups-5a_current
snmp_ups_ups-5b_current
snmp_ups_ups-5a_power
snmp_ups_ups-5b_power

オリジナルのプラグイン名称は "snmp_ups__" です。補足しておきますと、"二つ"のアンダースコアは末尾を意味します。プラグインはそれぞれのホスト名tと(例:ups-5a)ので、何を監視したいか(例:power)にあわせてリンクを作成します。それでは、ある設定例を見てみましょう。

snmp_ups_ups-5a_power
-------- ------ -----
    |       |     |
    |       |     `--- 監視したい機能(function)名
    |       `--------- UPS のノード名
    `----------------- プラグイン名称

munin.conf からの展開

以下に展開するのは /etc/munin/munin.conf の詳細を、設定毎に細かく見ていきます。

 1 [UPS;ups-5a]
 2        address 127.0.0.1 # localhost fetches data
 3
 4 [UPS;ups-5b]
 5        address 127.0.0.1 # localhost fetches data
 6
 7 [UPS;Aggregated]
 8         update no
 9         contacts no
10
11         snmp_ups_current.update no
12         snmp_ups_current.graph_args --base 1000 -l 0
13         snmp_ups_current.graph_category UPS
14         snmp_ups_current.graph_title Aggregated input/output current
15         snmp_ups_current.graph_vlabel Ampere
16         snmp_ups_current.inputtotal.label Input current
17         snmp_ups_current.outputtotal.label Output current
18         snmp_ups_current.graph_order inputtotal outputtotal
19         snmp_ups_current.inputtotal.sum \
20                         ups-5a:snmp_ups_ups-5a_current.inputcurrent \
21                         ups-5b:snmp_ups_ups-5b_current.inputcurrent
22         snmp_ups_current.outputtotal.sum \
23                         ups-5a:snmp_ups_ups-5a_current.outputcurrent \
24                         ups-5b:snmp_ups_ups-5b_current.outputcurrent
25
26         snmp_ups_power.update no
27         snmp_ups_power.graph_args --base 1000 -l 0
28         snmp_ups_power.graph_category UPS
29         snmp_ups_power.graph_title Aggregated output power
30         snmp_ups_power.graph_vlabel Watts
31         snmp_ups_power.output.label Output power
32         snmp_ups_power.graph_order output
33         snmp_ups_power.output.sum \
34                         ups-5a:snmp_ups_ups-5a_power.outputpower \
35                         ups-5b:snmp_ups_ups-5b_power.outputpower

行単位の説明

  • 1 ~ 2 行目:SNMP をベースとした "ups-5a" という名前のプラグインを定義します。グループ名は "UPS" で、ノード名は "ups-5a" です。プラグインはローカルホスト上で実行します。
  • 4 ~ 5 行目:SNMP をベースとした "ups-5b" という名前のプラグインを定義します。グループ名は "UPS" で、ノード名は "ups-5b" です。プラグインはローカルホスト上で実行します。
  • 7 行目:統合グラフ用に "virtual node name" グループを定義します。グループ名は "UPS" で、仮想ノード名は "Aggregated" です。
  • 8 行目:Munin (実際には "munin-update")が対象ノードからデータを収集しないようにします。
  • 9 行目:"munin-limits" に閾値を超えても通知しないようにします。

上記の 1 ~ 9 行は、3つの異なるグラフの定義です。1つは2つの UPS によるグラフですし、残りの1つは統合グラフ向けです。

  • 11 ~ 15 行目:合算値を求めるため、仮想プラグインに関する情報を定義します。"snmp_ups_current" というのは、仮想プラグイン名です。
  • 16 ~ 17 行目:仮想的な"2つ"の値向けのラベルを定義します。仮想プラグインの "inputtotal" と "outputtotal" です。
  • 18 行目:その他の値です。
  • 19 ~ 21 行目:それぞれの UPS から"inputcurrent" 値を読み込み、"inputtotal" 値を計算します。

構成要素の詳細を見てみましょう

snmp_ups_current.inputtotal.sum \
---------------- ---------- ---
        |             |      |
        |             |      `-- 合計(sum)を処理
        |             `--------- 仮想プラグインの値
        `----------------------- 仮想プラグイン名
ups-5a:snmp_ups_ups-5a_current.inputcurrent \
ups-5b:snmp_ups_ups-5b_current.inputcurrent
------ ----------------------- ------------
   |               |                 |
   |               |                 `------ 実在するプラグインの "inputcurrent" 値
   |               `------------------------ 実在するプラグイン名 (シンボリック・リンク)
   `---------------------------------------- 情報を参照すべきホスト名
  • 22 ~ 24 行目:"outputtotal" 向けの同様の処理。
  • 26 ~ 35 行目:これまでと同様の処理ですが、current の代わりに power で計算しています。なお、仮想プラグインが描画できるのは1つの値のみであり、その1つには"合計値"です。

グラフの結果

以下のグラフが UPS 毎のデータと統合値によるものです。グラフは結果が分かりやすいよう週単位のグラフです。

グラフのソースとなっているのは、それぞれの UPS の実測値です。 (グラフ)

まとめ

この例では、2つの UPS "ups-5a" と "ups-5b" の実測値を用い(1~5行目)、新たに仮想ホスト "Agreegated" を生成し(7行目)、2つの仮想プラグイン "snmp_ups-current"(11~24行目)と、"snmp_ups_power"(26~35行目)を定義しました。

仮想プラグイン "snmp_ups_current" は2つのフィールド名 "inputototal"(16行目、19~21行目)と "outputtotal"(17行目、22~24行目)を持ち、それぞれが "snmp_ups_power" 仮想プラグインのために "output" というフィールド名で利用します(31~35行目)。

関連文書

  • [wiki:Using_SNMP_plugins Using SNMP plugins]
  • [wiki:munin.conf munin.conf] ディレクティブに関する説明