Apache2のログからBOTなどの不要分を削除
- 2025/11/26 13:48
- カテゴリー:本サーバ関連
最近アクセスが多いのでログを観てみると,そのほとんどがBOTであることが判る
ログの書き込み量でパフォーマンスも落ちるし,SSDは書き込み量で劣化するので少しでも少なくしようかと以下を参考にログの調整を行った
参考:Apacheで特定のリクエストをログから除外しメモリ負荷を軽減する方法
ログの実態確認
リクエスト頻度が高いパスやリソースの確認
awk '{print $7}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20
以下が上位
/freo/js/
/freo/images/
/freo/css/
/robots.txt
特定のIPからのリクエスト確認
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20
現状は特に問題なし
BOTをログから抽出
grep "bot" /var/log/apache2/access.log
appleBot,GoogleBot,amazonbot,bingbotなどが抽出
100アクセス/時間という感じ
除外設定
000-default.conf,default-ssl.confのCustomLogの記述を以下に変更
# ボットアクセスの除外
SetEnvIfNoCase User-Agent "bot" dontlog
# 静的リソースへのアクセス除外
SetEnvIf Request_URI "^/freo/js/" dontlog
SetEnvIf Request_URI "^/freo/images/" dontlog
SetEnvIf Request_URI "^/freo/css/" dontlog
CustomLog /var/log/apache2/access.log combined env=!dontlog
[/」はそのまま記述できるようだ
実証確認
ログローテートも月単位更新から週へ変更
強制的にログローテート
logrotate -f /etc/logrotate.d/apache2
しばらく置いて,ログに無いことを確認

