How do I view logs from multiple virtual hosts with logwatch on Ubuntu 14.04?

June 18, 2015 2.3k views
Linux Basics Logging

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?

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

Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!