3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ALB使用時、ApacheのアクセスログにクライアントIPを記録する

Posted at

ALB使用時、ApacheのアクセスログにクライアントIPを記録する

EC2(Apache)の前段に、ALBを配置する構成はよくあると思いますが、
デフォルトの状態だと、ApacheのAccessログに、ALBのローカルIPが記述されてしまいます。
本来のアクセス元の情報を、Accessログに記録する場合のApache設定方法を記載します。

設定方法(Apache)

httpd.conf のログ出力設定を変更します。
ログフォーマット設定に「"%{X-Forwarded-For}i」を追記することで、
本来のアクセス元のIP(ClientIP)を記録させることが出来ます。

httpd.conf (Befor)
<IfModule log_config_module>

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

httpd.conf (After)
<IfModule log_config_module>

    LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b" common

※common については、必要であれば追記願います。

設定変更後

httpdをリスタートし、設定情報を反映しましょう

# systemctl restart httpd

おまけ

ALBからのヘルスチェックは、30秒おきにログに登録され
ログ解析の際に邪魔になるのでAccessログに記載しないようにしましょう。

httpd.confの<IfModule log_config_module>へ下記を追記

SetEnvIf User-Agent "ELB-HealthChecker.*" nolog
CustomLog "/var/log/httpd/access.log" combined env=!nolog

参考

Amazon公式

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?