Muninプラグインを作る
今日はエイプリルフールでしたが、仕様変更の話は嘘ではなくて修正作業をしていたyukiinu2ndです。
今回はMuninのプラグインを作ってみたので簡単に紹介したいと思います。
まず、Muninとは何かですが、CPU使用率・メモリ使用量などなど、マシンの状態を簡単にグラフ化してくれるソフトです。
プラグインで拡張することができるため、やろうと思えば何でもグラフ化することができます。
なお、今回Muninのインストール、プラグインの追加と削除等については省略します。
また、まだ動く物が完成していないため、ソース等は完成した段階で公開します。ごめんなさい。
プラグイン
プラグインは思った以上にシンプルで、引数に応じて標準出力へテキストで値を返す、これだけです。
そのため、標準出力へ出力ができ、実行できさえすればBashでもPerlでもOKです。
引数は
- autoconf
- config
- なし
の3種類となっています。
autoconf
プラグインがデータを作成するために必要なモジュールが揃っているかを確認し、「yes」か「no」のみを返し、終了します。
config
グラフ描画に必要な設定情報(ラベルやグラフの形)を出力します。
色々設定があるのですが、ここでは必要最低限だけ紹介します。
以下はグラフ全体の設定です。以下の項目名に続いてスペース一つ入れた後に値を記述します。
- graph_title
- グラフのタイトルを設定します
- graph_args
- グラフのパラメータを追加します。rrdtoolのgraphコマンドと同じ引数が使えるようです。
- graph_vlabel
- 縦軸のラベルを設定します
- graph_category
- 結果出力HTMLにてどのカテゴリに所属させるかを指定します
- graph_info
- グラフの説明を指定します
以下はグラフ項目(1つの折れ線や棒)毎の設定です。
項目名.設定名 値
のように標準出力を行ってください。下記リストは設定名のみ書いてあります。
- label
- 項目名を設定します
- draw
- グラフ種別を選択します(種別は後述)
- info
- 項目の説明を設定します
- warning/critical
- 項目の値が設定した値を越えた場合ワーニング/クリティカルメッセージを出力します
グラフ種別については以下の通りです。
- LINEn
- 指定したデータを線で描画します。nには1〜3の数字が入り、数値が大きいほど線が太くなります
- AREA
- 指定したデータを面で描画(値と0の間を塗りつぶす)します。
- STACK
- 直前のデータの上に積み重ねる形で描画します。グラフの種別は直前のグラフと同じ種別になります。