在 AWS ELB Django 应用程序中禁用运行状况检查日志记录

Disable health-check logging in AWS ELB Django Application

我在 aws-elastic-beanstalk 上有一个 Django 应用程序 运行。我尝试禁用由我的健康检查引起的日志。健康检查已经路由到一个单独的页面。

Elastic-beanstalk 使用 Apache + mod_wsgi.

以下代码是 适用于 nginx 服务器的代码。我尝试为 apache 创建类似的东西。

我发现 conditional Logs 可能是使用 Apache 服务器的合适方法。

我的目录结构如下所示

/etc/httpd/
  - conf 
      - httpd.conf # main conf
  - conf.d 
      - wsgi.conf # virtual hosts
      - additional config files

我的尝试:

files:
  "/etc/httpd/conf.d/disable_health_logs.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
        SetEnvIf Request_URI "^/health/$" dontlog
        CustomLog logs/access_log common env=!dontlog

文件已创建,但没有效果。我既没有看到错误日志,也没有看到访问日志的变化。

httpd.conf中已经有以下设置:

 CustomLog "logs/access_log" combined

我需要覆盖它吗?

所以我又做了一次。

问题确实出在 httpd.conf 中的设置。如果我注释掉这条线:

#CustomLog "logs/access_log" combined

通过 ssh 手动使用我的设置,健康检查从日志中消失。

请注意,这并不是真正的永久解决方案,因为 beantalk 可能会启动一个新实例并再次覆盖 httpd.conf。

在你的 /etc/httpd/conf/httpd.conf

SetEnvIf Request_URI "^/health/$" dontlog=1
CustomLog logs/access_log combined env=!dontlog
LogFormat "%h (%{X-Forwarded-For}i) %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined