サーバー管理で知っておきたいコマンドあれこれ。 - apachetop編 - | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

私も最近知ったコマンドで、あまりメジャーではないようですが、Webサーバーの運用管理をしているのであればこのapachetopというコマンドは結構便利です。


apachetopは、リアルタイムにWebサーバー(Apache)にあったリクエストをtopコマンドのように画面に表示してくれるコマンドです。


- apachetop出力例

apachetop


そのときの、アクセス状況や負荷、HTTPステータスコードの出現割合などが見れます。

Webサーバーが重いなというときに、このコマンドを通して、どのプログラムにアクセスが集中しているかも確認できるので、運用管理者にとっては便利なコマンドとなるのではないでしょうか。



apachetopのインストール方法


1. ソースのダウンロード


今回は、ソースからインストールしています。

RPMのようなパッケージも、ディストリビューションによっては提供しているものがあるようなので、そちらを利用すればインストールはもっと楽でしょう。


今回は、下記のプロジェクト公式ページから、2008年1月時点で最新の0.12.6を使用してます。


http://www.webta.org/projects/apachetop/wiki/Download


ダウンロード後は、使用したいWebサーバーへファイルを転送します。


2. apachetopのインストール


インストール方法は極めて単純です。Linuxによくあるおまじないで済みます。


$ ./configure

$ make

$ su 

$ make install


apachetopの使い方


apachetopの使用方法も単純です。


$ apachetop -f /usr/local/apache2/logs/access_log

「-f」オプション以降には、Apacheのログファイルを指定します。

このコマンドからも分かるように、apachetopはApacheのログファイルの変更点を集約して負荷の状況などを表示しています。


※ このことから分かるように、Apacheのログファイルに出ない内容は、apachetopでも表示されません。

  例えば、Apacheの設定で、画像のログを出力しない設定にしていた場合、apachetopでも負荷の状況には

  表示されません。



□ 番外編 - エラーの対処 -


CentOS3.9でapachetopを使用しようとしたところ、コマンド実行時にエラーがでました。


cannot connect to fam: Success

どうやら、apachetopはfam(File Alteration Monitor: ファイルやフォルダの変更状況を通知するS/W)を介してログファイルから情報を集約している模様。

CentOS3.9には、標準でfamがインストールされていますが、デーモンが起動していないので起動ファイルを変更して起動させてあげます。


famの起動は、xinetd経由で行われるので、以下のフォルダにある起動スクリプトを変更


# vi /etc/xinetd.d/sgi_fam

上記ファイル内にある


disable = yes


という記述を


disable = no


と変更し、xinetdデーモンを再起動します。


これで使えるようになりました。


ところが、RedHatES4で試してみたところ、特にfamがインストールされていなくても動く・・・。

なんで動くんだろう・・・。