Memo/Linux/Munin

http://dexlab.net/pukiwiki/index.php?Memo/Linux/Munin
 

'Memo/Linux/Munin/' には、下位層のページがありません。

サーバ監視 Munin


タイムアウトする場合

  • perl Net::SSLeayがインストール済みだと、勝手にSSLで通信され環境によってはタイムアウトする場合もあるようだ
    1. vi /etc/munin/munin.conf
    2. ----
    3. tls disabled
    4. ----

smartプラグインでHDD異常監視

  1. ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_hda
  2. ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sda
  3.  
  4. vi /etc/munin/plugin-conf.d/munin-node
  5. ----
  6. [smart_*]
  7. user root
  8.  
  9. [smart_sda]
  10. env.smartargs -d ata
  11. ----
  12.  
  13. service munin-node restart

異なるアーキテクチャ間ではRRDデータの互換性はない

  • 異なるアーキテクチャ間ではRRDデータの移行はできない。例 x86 > x86_64へ移行した場合エラーとなる
  • /var/log/munin/munin-update.log
    1. 2011/03/15 20:05:17 [ERROR] In RRD: Error updating /var/lib/munin/localhost/localhost-cpu-system-d.rrd: This RRD was created on another architecture

1.4.7 rpm作成

  • 1.4.5はrpmがSourceForge?にあるため簡単にインストールできる
  • 1.4.7はrpmが無いので自分でepelリポジトリにあるSRPMからビルドしてみる
    1. cd /usr/src/redhat/
    2. wget "http://dl.fedoraproject.org/pub/epel/testing/6/SRPMS/munin-1.4.7-1.el6.src.rpm"
    3. rpm -ivh --nomd5 munin-1.4.7-1.el6.src.rpm
    4. rpmbuild -ba SPECS/munin.spec
    5. rpm -Uvh RPMS/noarch/munin-*.noarch.rpm

コマンド

  • プラグインを実行
    1. munin-run cpu
  • プラグインの設定を表示
    1. munin-run config
  • munin-nodeでプラグインの追加、削除、設定変更をした際
    1. service munin-node reload
    2.  
    3. または
    4.  
    5. service munin-node restart
  • 現在のプラグインすべて表示
    1. munin-node-configure
  • 値が取れているものを全て有効化
    1. munin-node-configure --suggest --shell | sh
  • 値が取れていないものを全て無効化
    1. munin-node-configure --remove-also --shell | sh
  • snmp機器の場合
    1. munin-node-configure-snmp localhost

httpレスポンスタイムを表示「http_loadtime」プラグイン

  • munin-node 1.4.5はデフォルトで付属している
  1. cat > "/etc/munin/plugin-conf.d/http_loadtime" << 'EOS'
  2. [http_loadtime]
  3. env.target http://localhost/
  4. EOS
  5. ln -s /usr/share/munin/plugins/http_loadtime /etc/munin/plugins/
  6. service munin-node restart

httpレスポンスタイムを表示「http_response_times」プラグイン

  • munin-node 1.4.5は「http_loadtime」がデフォルトであるのでこちらを使った方が良いだろう
  • インストール
    1. wget -O http_response_times http://exchange.munin-monitoring.org/plugins/http-response-times/version/2/download
    2. yes | cp -f munin/plugins/http_response_times /usr/share/munin/plugins/
    3. chmod 755 /usr/share/munin/plugins/http_response_times
  • 設定
    • env.domain 取得対象のドメイン部分を指定。basic認証がある場合は「http://user:pass@localhost」と指定。
    • env.url1 取得対象のパス部分。2つめのURLなら「env.url2 /path」
  • http_response_index:「wget -q」で指定したファイルだけをダウンロードする時間
    1. ln -s /usr/share/munin/plugins/http_response_times /etc/munin/plugins/http_response_index
    2.  
    3. cat >> /etc/munin/plugin-conf.d/munin-node << 'EOS'
    4. [http_response_index]
    5. env.domain http://localhost
    6. env.url1 /index.html
    7. env.url2 /index.php
    8. EOS
  • http_response_full:「wget -pq」でHTML を表示するのに必要な全ての画像等も取得する時間
    1. ln -s /usr/share/munin/plugins/http_response_times /etc/munin/plugins/http_response_full
    2.  
    3. cat >> /etc/munin/plugin-conf.d/munin-node << 'EOS'
    4. [http_response_full]
    5. env.domain http://localhost
    6. env.url1 /index.html
    7. env.url2 /index.php
    8. EOS
  • munin-nodeを再読み込み
    1. service munin-node reload

muninのグラフを画面表示時に動的に生成

  • 以下のログが出ている場合は、SELinuxが邪魔をしているので無効にする
    • httpd再起動時 /var/log/httpd/error_log
      1. [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
    • /var/log/httpd/error_log
      1. Creating semaphore: Permission denied at /var/www/html/munin/cgi/munin-fastcgi-graph line 141.
      2. [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
      3. [error] [client 192.168.1.xx] Premature end of script headers: munin-fastcgi-graph
      4. [error] [client 192.168.1.xx] File does not exist: /var/www/html/favicon.ico, referer: http://192.168.1.xx/cgi-bin/munin-fastcgi-graph
      5. [notice] mod_fcgid: process /var/www/html/munin/cgi/munin-fastcgi-graph(13485) exit(communication error), terminated by calling exit(), return code: 13
  • SELinux無効化
    1. perl -p -i -e 's#SELINUX=enforcing#SELINUX=disabled#' "/etc/sysconfig/selinux"
    2. perl -p -i -e 's#SELINUX=enforcing#SELINUX=disabled#' "/etc/selinux/config"
    3. reboot
  • SELinux状態の確認。disableになっていれば良い
    1. /usr/sbin/sestatus
    2. SELinux status:                 disabled
  • munin_statsプラグインがgraphのワーニングを出してくるので抑制
    1. vi /etc/munin/munin.conf
    2. ----
    3. [localhost]
    4.   munin_stats.contacts no
    5. ----
  • グラフが出ない場合
    • munin-cgi-graphで動作するか?
    • 簡単なfcgidのサンプルが動作するか?
      • `perldoc CGI::Fast`のサンプルを、test.fcgi とでも保存しておく。chmod 755 test.fcgiとして、ブラウザから実行
        1. #!/usr/bin/perl
        2.  
        3. use CGI::Fast qw(:standard);
        4. use strict;
        5.  
        6. my $COUNTER = 0;
        7.  
        8. while ( new CGI::Fast ) {
        9.   print header;
        10.   print start_html("Fast CGI Rocks");
        11.   print
        12.     h1("Fast CGI Rocks"),
        13.       "Invocation number ",b($COUNTER++),
        14.         " PID ",b($$),".",
        15.           hr;
        16.  
        17.   print end_html
        18. }
        19. 0;
    • Apacheがセマフォを使い切っていないか?
      • munin-cgi-graphは動作して、munin-fastcgi-graphは動作しない場合、セマフォを使い切っている可能性がある
      • apacheを止めて、使用しているセマフォも終了したか確認。
        1. service httpd stop
        2. sudo ipcs -s | grep apache
      • セマフォが終了してなければ強制終了
        1. service httpd stop
        2. sudo ipcs -s | grep apache | awk '{print "sudo ipcrm -s ",$2}' | sh
        3. service httpd start
        4. sudo ipcs -s | grep apache
  • munin-cgi-graphが実行してるコマンド
    1. su - munin --shell=/bin/bash
    2. /usr/share/munin/munin-graph --noweek --nomonth --noyear --nosumweek --nosumyear --skip-locking --skip-stats --nolazy --list-images --host localhost --service apache_accesses

munin-nodeエラー Pango-WARNING

  • root宛に以下のメールが飛んでくる。該当文字を削除して対応
  • (process:1812): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()
    • /etc/munin/plugins/hddtemp_smartctl
      1. -    print "graph_vlabel temp in °C\n";
      2. +    print "graph_vlabel temp in degC\n";

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-03-08 (金) 22:12:01 (1992d)