CentOS 5.4 に munin(サーバー監視ツール) をインストール MRTG/cacti

▼munin 本家サイト
http://munin-monitoring.org/

munin って何?

munin(ムーニン)は、オープンソースで公開されているサーバー監視、グラフ化ツールです。
MTRG/cacti などと同様のツールです。

主な特徴

  • 比較的導入が簡単
  • プラグインによる取得データの拡張が出来る
  • グラフ化部(マスター)とデータ取得部(ノード)が違うプログラムになっている

マスター(munin)とノード(munin-node)の役割

マスター: データ収集 + グラフ化
ノード: マスターへのデータ提供

▼munin のインストール
基本的に munin を yum でインストールします。
しかし、CentOS-Base.repo では munin のパッケージが見つからないので
dag.repo を使用して munin のインストールをします。

▼そこで、yum レポジトリの追加(dag.repo)
参考:http://mt.mizba.net/archives/001205.php

$ sudo vi /etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for redhat
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
enabled=0   # enabled は0にして必要な時だけ有効にします
gpgcheck=1

続いて PGP key をインポートします。

$ sudo rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

これで dag.repo の設定は完了です。

▼次に munin を使用するに当たって必要になるアプリケーションのインストール
今回は「情報を集積するサーバ(マスター)」と「監視対象になるサーバ(ノード)」を
同一のサーバにするため munin と munin-node の両方をインストールします。

自分の場合は以下のようになりました。
※各自の環境によって違うと思います。

$ sudo yum --enablerepo=dag install munin munin-node

================================================================================
 Package                           Arch        Version              Repository  
================================================================================
Installing:
 munin                             noarch      1.2.5-2.el5.rf       dag         
 munin-node                        noarch      1.2.5-2.el5.rf       dag         
Installing for dependencies:
 perl-Compress-Zlib                i386        1.42-1.fc6           base        
 perl-Crypt-DES                    i386        2.05-3.2.el5.rf      rpmforge    
 perl-DateManip                    noarch      5.44-1.2.1           base        
 perl-Digest-HMAC                  noarch      1.01-15              base        
 perl-HTML-Parser                  i386        3.64-1.el5.rf        rpmforge    
 perl-HTML-Tagset                  noarch      3.20-1.el5.rf        rpmforge    
 perl-HTML-Template                noarch      2.9-1.el5.rf         rpmforge    
 perl-Net-SNMP                     noarch      5.2.0-1.2.el5.rf     rpmforge    
 perl-Net-Server                   noarch      0.97-1.el5.rf        rpmforge    
 perl-Socket6                      i386        0.23-1.el5.rf        rpmforge    
 perl-URI                          noarch      1.35-3               base        
 perl-libwww-perl                  noarch      5.805-1.1.1          base        

Transaction Summary
================================================================================
Install     14 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

▼続いて munin の設定です。
といっても特に必要ないと思います。

作られたファイルは以下の設定ファイルを見ると分かります。
※各自の環境によって違うと思いますが。
設定ファイルは /etc/munin/munin.conf です。

自分の環境では、以下のようになっていました。

  ・htmldir /var/www/munin
  
  ・/etc/httpd/conf.d/munin.conf
    ScriptAlias /munin/cgi/ /var/www/munin/cgi/
    Alias /munin/ /var/www/munin/

▼設定ファイルの確認が終わったら munin の起動と apache の再起動をします。
・munin の起動及び自動起動設定

    $ sudo /etc/init.d/munin-node start
    Starting Munin Node:       [  OK  ]

    $ sudo /sbin/chkconfig --list munin-node
    munin-node      0:off   1:off   2:off   3:off   4:off   5:off   6:off
    
    off になっていたら、以下コマンドを実行
    $ sudo /sbin/chkconfig munin-node on
    $ sudo /sbin/chkconfig --list munin-node
    munin-node      0:off   1:off   2:on    3:on    4:on    5:on    6:off

上記のようになったら自動起動 OK!

・apache を再起動します。
munin を起動してからは5分おきにグラフが更新されるようになります。

    $ sudo /etc/init.d/httpd restart

apache の再起動が完了したら http://localhost/munin/ にアクセスし
munin の状況を見てみましょう。

munin-graph

このように、MRTG/cacti とよく似た感じのグラフィカルなグラフで
負荷状況やサーバー状態などを確認出来ます。

MRTG/cacti よりもインストール設定などが簡単なので是非とも
導入してみては如何でしょうか。

2008年5月のアクセス数の多かった人気記事TOP5

先月(2008年5月)のアクセス数が多く人気のあった記事のトップ5です。

  1. CSRの生成方法 Apache2 OpenSSL
  2. sendmailでSMTP認証の設定メモ(SMTP-Auth)
  3. PHPライブラリの効率の良い探し方
  4. PostgreSQLパフォーマンスチューニング(重いSQLを見つける方法)
  5. 無くなって初めて気づく定期的自動バックアップの大切さ

定期的なバックアップは大事ですよね。

PHPコード最適化高速化TIPSまとめ

PHP最適化 ベストプラクティス!

参考url:
http://d.hatena.ne.jp/koto2/20080518/1211070116

  • 01. static にできるメソッドは static として宣言しよう。(4倍速い)
  • 02. echo の方が print より速い。
  • 03. echo ‘文’,’字’; (カンマ区切り)の方が、’文’.’字’ (ドット連結)より速い。
  • 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。
  • 05. 大きい配列のような変数unset() してメモリを解放しよう。
  • 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。
  • 07. require_once はハイコストなのです。
  • 08. includerequire でファイルはフルパスで指定しよう。
  • 09. スクリプト開始時間は time() でなく $_SERVER[‘REQUEST_TIME’] で取得。
  • 10. 可能であれば、正規表現より strncasecmpstrpbrkstripos を使おう。
  • 11. strtr(str_replace の4倍速い) > str_replacepreg_replace の順に速い。
  • 12. 引数配列文字列両方を受け入れるような関数は避け、個別に関数化しよう。
  • 13. if をたくさん使ってるなら switch を活用しよう。(訳注:ってことでいい?)
  • 14. @によるエラー制御はすんごく遅い。
  • 15. Apachemod_deflate(Apache2系) を ON にしておこう。(No.42 参照)
  • 16. 処理が終わったらデータベースの接続は切っておこう。
  • 17. $row[‘id’] は $row[id] より7倍速い。
  • 18. エラーメッセージはハイコスト。
  • 19. for 文の条件式には count($array) のような関数をいれない。(変数に格納)
  • 20. メソッド内ではローカル変数をインクリメントするのが一番速い。
  • 31. キャッシュを利用しよう。通常、コンパイル回数 x 25~100% 分速くなる。
  • 32. これもキャッシュについて。memcached とか使おうよ。
  • 33. if (strlen($foo) < 5) を調べたいなら if (!isset($foo{5})) と書くと速い。
  • 34. $i++ より ++$i の方が速い。(そういう opcode optimizer が走ってる場合)
  • 35. 全部が全部 OOP でなくても良い。(コストやメモリの浪費になってるかも)
  • 36. すべてのデータをクラスにしようとしないこと。配列も十分便利です。
  • 37. メソッドを分割しすぎない。(どれを再利用するのかよく考えよう)
  • 38. メソッドを分割したくなったら後でいくらでもできる。
  • 39. もとから用意されてる 関数たち を活用しよう。
  • 40. 非常に時間のかかる関数C言語による拡張モジュール化も検討しよう。
  • 61. SELECT * (ワイルドカード)を使うのはやめよう。
  • 62. PHP より賢い DB ロジック(queries, joins, views, procedures)を活用しよう。
  • 63. SQL の省略表記を活用しよう。
    (例:INSERT INTO MYTABLE (FIELD1,FIELD2) VALUES ((“x”,”y”),(“p”,”q”));)

以上。