I need a way to extract bandwidth usage logs for Apache virtual hosts. I see that a lot of people are recommending AWStats (and similar programs), but I don't need a graphical interface. All I need is usage data formatted in way that can be accessed by our billing program.
Something like this would be glorious:
<usage host="foo.com">
<usage year="2009" month="2" bytes_in="12345" bytes_out="1235678" />
...
</usage>
It doesn't have to be xml, as long as it's fairly easy to parse and extract the vital information.
Best Answer
If you are using apache 2+ you can use modlogio's and %I or %O in LogFormat directive
config will be something like this:
LogFormat "%v %t %I %O" billing customLog /var/log/billing.log billing
then you can use awk or perl or whatever to aggregate the data in billing log and generate the reports