internal dummy connectionのログを(再び)とらなくする(が、ダメっぽい?)

随分前に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で様子見します。


boota

いろんなモノに、いろんな意味で、ヲタ。なのかも?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)