サーバ監視 phptopを動かしてみた

以下で紹介されていたサーバ監視ツールphptopを試してみた。


サーバ上で動いてるどのphpが重いか?を調べられる「phptop」:phpspot開発日誌


本家はこちら PhpTop – Bearstech Forge


ただすんなり動かなかったのでメモ。環境は、CentOS 5.2, PHP 5.2

phptopのサイトからダウンロードして解凍

$ wget http://forge.bearstech.com/trac/raw-attachment/wiki/PhpTop/phptop-0.5.2.tar.gz
$ tar -zxvf phptop-0.5.2.tar.gz
$ cd phptop-0.5.2/

$ ./phptop -t 15 -s mem

実行するとエラーが

Can't locate Term/Size.pm in @INC (@INC contains: 

Term-Sizeがないらしい

※2010.12.21 追記)CPANモジュールを入れるのがいいみたい

$ perl -MCPAN -e shell
cpan> install Term::Size

こちらは自分で試したもの

$ yum --enablerepo=rpmforge install perl-Term-Size


インストールして実行するとまたエラーが

Bareword "POSIX::LC_NUMERIC" not allowed while "strict subs" in use at ./phptop line 118.
BEGIN not safe after errors--compilation aborted at ./phptop line 357.

よくわからないので118行目をみてみる

$ vi phptop

setlocale(POSIX::LC_NUMERIC, 'C'); # Use . as decimal separator


locale?よくわからん。。
とりあえずこの行をコメントにして保存して実行!

Error: no log files found/processed. Tried: /var/log/apache2/error*log, /var/log/apache2/*/error*log

apache2 ?
ソースを見ると確かに356行目、

push(@log, '/var/log/apache2/error*log', '/var/log/apache2/*/error*log'        ) if !@log;


自分の環境は、/var/log/httpd なのでパスを変更して、今度こそ・・

URL                       Hit     Time     User      Sys >Mem/hit  Mem_max
http://xxxx/test1           2      0.8      0.7      0.1      8.2      8.2
http://xxxx/test2           1      0.3      0.2      0.0      8.2      8.2
http://xxxx/test3           2      0.5      0.4      0.0      8.2      8.2
http://xxxx/test4           1      0.3      0.2      0.0      8.0      8.0
http://xxxx/test5           1      0.2      0.2      0.0      8.0      8.0
http://xxxx/test6           9      2.4      1.6      0.1      7.2      7.2
Total (from last 15 min)   16      4.5      3.3      0.3


でたー!

コマンドの15は最後の15分間分を出力ということなので、適宜変更すればOK。
htmlに出力するときは、-o html オプションをつける。

$ ./phptop -t 15 -s mem -o html