私も最近知ったコマンドで、あまりメジャーではないようですが、Webサーバーの運用管理をしているのであればこのapachetopというコマンドは結構便利です。
apachetopは、リアルタイムにWebサーバー(Apache)にあったリクエストをtopコマンドのように画面に表示してくれるコマンドです。
- 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がインストールされていなくても動く・・・。
なんで動くんだろう・・・。
関連記事
Apacheの404用ページが全然ステータスコード404を返していなかった
mod_actionsを使ってドキュメントや画像、Flashファイルを保護する
Analogを使ってオリジナルのアクセスログ解析ツールを作る
Apache Bench、WAST、JMeterを使った負荷テストのポイント
サーバー管理で知っておきたいコマンドあれこれ。 - sysstat編 -