Currently I have logwatch running, and via cron job it will send an email to me each evening. In the email it will list the http requests, however, it is not possible to see which virtual host they come from. For example I a report will say:

Requests with error response codes
403 Forbidden
/wp-content/uploads/: 2 Time(s)

It would be better if it said:

Requests with error response codes
403 Forbidden
www.mydomain.com/wp-content/uploads/: 2 Time(s)

Any ideas?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
2 answers

It seems I have answered my own question. I changed this line in apache2.conf:

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

into this:

LogFormat "%h %l %u %t \"%m %{Host}i%U%q %H\" %>s %b" combined

Thanks for this, very useful. At least, the \"%m %{Host}i%U%q %H\" part is, but while changing the combined log format, you’ve also converted it to the common format, while still calling it combined.

If you want to use it as you have it here, it should really be called common, since that is what it’s based on, just adding the host. As in, you lost the %O \"%{Referer}i\" \"%{User-Agent}i\" part from the end of combined and replaced it with %b from common.

Here it is for each, and more in line with the standard Apache setup, except for adding the host in the same way:

LogFormat "%h %l %u %t \"%m %{Host}i%U%q %H\" %>s %b" common

LogFormat "%h %l %u %t \"%m %{Host}i%U%q %H\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

Submit an Answer