PiにMuninをぶち込んで4鯖を監視させてる@HimaJyunです。Muninは(比較的簡単に)自分でプラグインを作成して利用する事が可能です、実際、僕の持つサーバ達にもお手製のプラグインをいくつか仕込んであります。今回はこの「Muninプラグインの作り方」を軽く解説してみようと思います。簡単!!Muninプラグインの仕組みMuninの良い所、それはプラグインが言語を問わずに簡単に作成出来る事です。簡単がどう簡単って?、所定のフォーマットに沿って標準出力に値を出力してやるだけで後はMuninが上手い具合に加工してくれる事です。プラグインの引数Muninは用意したプラグインを実行する際に引数を含む事があります。引数なしで実行autoconfはそれ用のコメントを記載した時だけのようですので、最低限必須なのはconfig引数で実行された時と、引数がなかった時です。実際に作ってみる僕たちの様なタイプの人間は言葉で説明されるよりコードで説明された方が分かりやすいので、実際にサンプルを作成しながら説明してみようと思います。今回は例示として「特定のファイルかディレクトリの容量を集計」するプラグインを作成してみようと思います。使用する言語は各種コマンドとの相性が良いシェルスクリプト(Bash:/bin/bash)を利用するとしましょう。基本形コードの書き方は人それぞれですが、僕の場合は以下の様にやっています。「/etc/munin/plugin-conf.d/munin-node」に設定した「env.hoge」などは環境変数として渡されるみたいです。「env.hoge」として設定した場合は、環境変数「hoge」に値が入っています。今回は対象のファイルを設定するために「env.target」でパスを指定出来る様にしてみようと思います。Bashは環境変数がそのまま変数に入っていて使えるので今回は(説明の簡略化のために)何も確認しません。${target:="/var/www"}autoconfautoconfは使わないプラグインも全部設定しやがるありがた迷惑仕様なので個人的には使いませんが、一応対応させておこうと思います。autoconfに対応させる場合にはスクリプト内に以下のコメントを埋め込みます。capabilities=autoconfそして、第一引数に「autoconf」が指定されている場合に、作成するプラグインが利用出来るかを確認する処理を記載します。利用できる場合は「yes」を、利用できない場合には「no」を出力します。0ficonfig第一引数にconfigが指定されている場合は、そのプラグインがどのように出力するかを指定します。その他にも様々な設定値があります、ググってみてね。0fi引数なし(実際の処理)最後に引数がない場合(すなわち、値を取得する際)の処理を記載します。今回はduコマンドで測定した値をtailとawkで余計な出力を除去して、表示してやろうと思います。その他にも様々な設定値があります、ググってみてね。$1}')"実際に使ってみる他のプラグイン同様に「/usr/share/munin/plugins/」に移動させてシンボリックリンクを貼るとしましょう。今回作成したプラグインのファイル名は「filesize」だと仮定した場合、以下の様な手順になります。restartテストプラグインの動作テストには「munin-run」コマンドが役立つでしょう。--shell=/usr/bin/munin-cron簡単!!これが今回作成したプラグインで出力されるグラフです、ちょっとサンプル取得の時間が短すぎてカクカクグラフですが、容量が出力されています。この様な感じで、Muninのグラフはとても簡単に作成でき、極論、数値で表せるものであれば何でもグラフ化出来てしまうのです。圧縮、素早く送信、mod_deflateの設定方法このブログでは、帯域の削減とページ表示を高速化する目的でgzip圧縮して転送して......続きを読む→[Minecraft]1.11対応のSpigot(Bukkit)を用意するどうも、@HimaJyunです、やってまいりましたね、定期的に発生するプラグイン......続きを読む→[Bash]screenが終了するまで待機する僕の運営するマイクラ鯖はscreenで動かしています。1日1回、再起動......続きを読む→UbuntuにOPcacheとAPCuを入れる本日、驚異の16時間睡眠を記録したHimaJyunです。今日はこのブログを動か......続きを読む→PREVgit-lfsの仕様(サーバ側)を個人的に解説してみるNEXTvsftpdのセキュリティ対策ナカのヒト:HimaJyun​散って美しいのは桜だけです、情報はまとまっていた方が美しいのです。