LoginSignup
14
9

More than 3 years have passed since last update.

ELBの生死監視(ヘルスチェック)ログを停止

Last updated at Posted at 2017-02-23

前書き

毎度、ELBを設定するとヘルスチェックのログがaccessログに出力され大事なログが埋もれちゃいます。
構築時に動作確認できたら、止めてしまいましょう。

ELBだけではなく、SetEnvIf 次第で他のLBにも流用できますね。(多分)

設定情報

■ LogFormat
送信元IPアドレスがELBのものしか来ないのは困るので、ちゃんとX-Forwarded-For で送信元アドレスが分かるようにしましょう。

(変更前)
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    ↓
(変更後)
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 

■ CustomLog
ELB-HealthChecker だったら、nolog にセットしてログ出力を抑止しましょう。

(変更前)
CustomLog "/var/log/httpd/access.log" combined
    ↓
(変更後)
SetEnvIf User-Agent "ELB-HealthChecker.*" nolog
CustomLog "/var/log/httpd/access.log" combined env=!nolog

設定が終わったら・・・

忘れずに行いましょう。

■ 設定情報の反映

# systemctl restart httpd 

■ ログ

(変更前)
- - - [23/Feb/2017:13:06:16 +0900] "GET /health.html HTTP/1.1" 200 7 "-" "ELB-HealthChecker/1.0"
- - - [23/Feb/2017:13:06:16 +0900] "GET /health.html HTTP/1.1" 200 7 "-" "ELB-HealthChecker/1.0"
    ↓
(変更後)
なにも出力されない・・・
アクセスがあると、
<送信元IPアドレス> - - [23/Feb/2017:13:17:52 +0900] "GET /testdir/ HTTP/1.1" 200 6 "-" "*********"

注意してください

本設定を入れることでELBのヘルスチェックログが抑止されますが、設定ミスや偽装によるアクセスに対してログが一切残らないことになります。ご利用の環境によってはログが残らないリスクを十分理解した上で設定を行ってください。

参考情報

ベーシックエンジニアブログ
access_logのフォーマット

14
9
2

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
14
9