I have a Django application running on aws-elastic-beanstalk. I try to disable the logs caused by my health-checks. The health-checks are already routed to a seperate page.
Elastic-beanstalk uses Apache + mod_wsgi.
The following code is a solution that works with nginx servers. I try to create something similar for apache.
I found out that conditional Logs are probably the appropriate way to do it with an Apache Server.
My directory struture looks like the following
/etc/httpd/
- conf
- httpd.conf # main conf
- conf.d
- wsgi.conf # virtual hosts
- additional config files
my attempt:
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
The file is created but it has no effect. Neither do I see error logs nor a change in the access logs.
In the httpd.conf
there is already the following setting:
CustomLog "logs/access_log" combined
Do I need to override it?
In your /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
So I had another go on this.
The problem really is the setting in the httpd.conf
. If I outcomment the line:
#CustomLog "logs/access_log" combined
manually via ssh my settings are used and the health-checks disappear from the logs.
Note that this is not really a permanent solution as beanstalk might spin up a new instance and override the httpd.conf again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With