【问题标题】:Disable health-check logging in AWS ELB Django Application在 AWS ELB Django 应用程序中禁用运行状况检查日志记录
【发布时间】:2019-08-07 07:30:39
【问题描述】:

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

Elastic-beanstalk 使用 Apache + mod_wsgi。

下面的代码是一个solution,适用于 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

我需要覆盖它吗?

【问题讨论】:

  • 你可以使用 .htaccess 吗?
  • 我不这么认为。至少我还没有看到任何关于它的文档。

标签: django apache amazon-web-services mod-wsgi amazon-elastic-beanstalk


【解决方案1】:

所以我又做了一次。

问题出在httpd.conf 中的设置。如果我评论这条线:

#CustomLog "logs/access_log" combined

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

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

【讨论】:

    【解决方案2】:

    在你的 /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
    

    【讨论】:

      猜你喜欢
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 2016-10-31
      相关资源
      最近更新 更多