随分前にapacheのaccess_logに大量に発生するinternal dummy connectionのログをとらなくするようにしましたが、その後サーバの入れ替えやOSの載せ替えなどがあって、httpd.confは事実上初期状態に戻されました。
それからしばらくしてログを眺めていたら、再び大量のinternal dummy connectionのログが・・・。
なので再びこのログをログファイルに記録しないように設定します。
と言っても、やり方は前回のそれとおんなじでよさそう。
まずはhttpd.confを開き、<IfModule log_config_module>を見つけます。
<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
LogFormat “%h %l %u %t \”%r\” %>s %b” common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %I %O” combined
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
#CustomLog “logs/access_log” common
#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
CustomLog “logs/access_log” combined
</IfModule>
この最終行、CustomLog〜以下(ボールド部分)を、次のように書き換えます。
# CustomLog “logs/access_log” combined
# SetEnvIf
SetEnvIf User-Agent “internal dummy connection” no_log
# CustomLog
CustomLog logs/access_log combined env=!no_log
その意味内容は前回と一緒なので割愛です。
書き換えたら最後にhttpdをリスタートします。
# systemctl restart httpd
エラーが出なければ、設定完了。数日このままにして、ログを確認して完了ですね。うまくいったら、その他の不必要なLOGも全てno_logにまとめてしまいましょう!
と思っていたのに、なぜかinternal dummy connectionのログが取られてしまっている…??
CustomLogを/var/log/httpd/access_log(絶対パス)から、logs/access_log(相対パス)に変更してみました。
logs/は/etc/httpd/でシンボリックリンクとして作成されており、httpd.conf内でServerRootとして/etc/httpdが指定されているため、logs/access_logはつまり/etc/httpd/logs/access_logであり、それはさらにつまるところ/var/log/httpd/access_logとなるからです(参考)。
そういえば
# ls -l logs
lrwxrwxrwx 1 root root 19 3月 27 2022 logs -> ../../var/log/httpd
ですが、
# cd /var/log/
# ls -l
drwx——. 2 root root 4096 10月 23 03:45 httpd
なんですよね。もしかしてパーミッションが影響していたのか?
ひとまずlogs/access_logで様子見します。