ApacheのログにプロセスIDを追加する

投稿者: | 2017年4月23日

先日、保守を担当しているお客さんのWebサーバーが過負荷状態に陥ることがありました。
リブートしたら復旧したのですが、原因を調査するため/var/log/messageを確認してみたところ下記のようなログが残っていました。

Out of memory: Kill process 20115 (httpd)

 

 プロセスID「20115」で高い負荷がかかっていたということで、apacheのログを確認したところ、プロセスIDが記載されていませんでした。

というわけで、apacheのコンフィグファイルを開けてLogFormatの一番後ろにプロセスIDを示す「%P」を追加しました。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %P" combined

 

これでログの最後にプロセスIDが表示されるようになりました。下記の例ですと最後の「6850」がプロセスIDです。

xxx.xxx.xxx.xxx - - [23/Apr/2017:23:47:23 +0900] "GET / HTTP/1.1" 200 49511 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" 6850

 

プロセスID以外でもapacheのログはいろいろ情報を残すことができますので、詳しくは本家をご覧ください。