2014年9月16日火曜日

30秒でわかったつもりのmunin

出稼ぎでmuninの設定をした(しかし使わなかった)のですが、シンプルって評判で、たしかにシンプルではありましたが、意外とハマったので、他所様のブログ等で言及してないことを重点的にメモります。※大概localhostで試して「わーい動いた動いた」で終了って記事だったり、step-by-step式で、「解説として」は冗長だったり。

時間が10分ぐらいおありの場合はこちらをどうぞ http://www.slideshare.net/zembutsu/practical-resource-monitoring-with-munin

  1. 中身の大部分がperl
    1. CPANがドッサリ付いてきます
    2. そのアンチテーゼとして軽量互換も存在します https://github.com/munin-monitoring/contrib/tree/master/tools/pmmn/
  2. 集約サーバ(マスタ?)とノードの2構成になってる
    1. 大概のディストリビューションでは別パッケージになってる。
    2. 片方だけでも動く※筈
      1. もちろんノードだけではグラフは見られない。慌てるな。
      2. ノードのポート4949を叩いてプロトコルを喋ればデータは取れます
  3. munin自身の最終的な出力はhtmlと画像ファイルだけなので
    1. 厳密にはapacheじゃなくても良い
    2. ※apacheのインストールとセットで紹介してる場合が非常に多いが
    3. munin-cgiとかは、一部のグラフ画像のリアルタイム生成に使うっぽい
  4. マスタからノードに接続して、データを引っ張るタイプ
    1. 故にサーバ側にノード一覧記述がある
      1. 小生は /etc/munin.conf に書いたが
        1. [グループ名;サーバ名] 
        2.  address 接続先定義
          1. sshトンネルとかも行けるらしい
        3.  use_node_name yes
          1. 中級の運用ではたまにnoとか書くらしい
      2. /etc/munin.conf.dに
        1. ノード毎にファイルを置くのが想定運用らしい
      • amazon ec2はインスタンス立ち上げでプライベートIPごと変わるが何かよい方法は無いものか?
        • MongoDBのreplciasetsにも通じる議題
        • 大概は、「elastic IP使うとイイよ」に落ち着くらしい
        • それもどうかと
    2. 故にノード側に、マスタからのアクセス制限記述がある
      1. デフォルトの記述ではamazon ec2のクラスBプライベートに対応してない
      2. 基本ホワイトリストで、「許す」方を記述する
        1. 正規表現表記があるが、
        2. cidr表記と、
        3. ディストリビューションパッケージで入れるとcidrで認識する場合が多いので
        4. cidr_allowを書く
    3. マスタからノードにtelnet 接続先 4949で動作確認
      1. 成功すれば、1行目にノードバージョンっぽい文字列が出ます
      2. 前述の通り内蔵アクセス制限があるので、まずはlocalhostでも telnet 接続IP 4949でテスト優先
  5. ホスト側はcronで、スクリプトがブン回るだけ
    1. 急ぎだったら手動起動しても可
      1. /var/cache/munin/www とかにhtmlを出来る※ubuntu系
      2. /var/lib/munin にノードデータ履歴を保存する※ubuntu系
      3. データの引き継ぎは履歴ファイル名ありきなので、IPが変わっても履歴継続することは可能らしい。round robbin datafile とか言うらしい rrd
  6. プラグインはノードに設置するらしい
以上の内容を読み返してみると、まあ30秒ぐらい?