Google Computing Engineのロードバランサのアクセスログを取らない

AWSのELBみたいに、GCEのLBのサーバー死活監視アクセスをApacheaccess.logに残したくないときどうするか。

HTTPロードバランサの死活監視アクセスはどこから来るかというと、https://cloud.google.com/compute/docs/load-balancing/health-checks#update_firewall_rulesによれば、HTTPロードバランサは130.211.0.0/22から、ネットワークロードバランサは169.254.169.254から来るそうです。というわけで、ここのアドレスブロックからのアクセスをログに残さないようにすればよさそう。

Apache 2.4以降の記述だとこうなる。

# <If "-R '130.211.0.0/22'">は、 <If "%{REMOTE_ADDR} -ipmatch '130.211.0.0/22'"> の省略形です。

# HTTPロードバランサ
<If "-R '130.211.0.0/22'">
        SetEnv nolog
</If>
# ネットワークロードバランサ
<If "-R '169.254.169.254'">
        SetEnv nolog
</If>

CustomLog ${APACHE_LOG_DIR}/access.log combined env=!nolog