Мне нужно веб-приложение, которое будет анализировать файлы журналов apache и записывать, сколько полосы пропускания использовал пользователь. У нас есть несколько виртуальных хостов с настраиваемыми файлами журнала, и ввод-вывод записывается в конце файла журнала. Однако я не могу найти приложение, которое будет анализировать несколько файлов журнала и отображать сводку для каждого сайта.
Я верю, что awstats может это сделать, но я хочу видеть всех своих клиентов в одном списке. Если есть что-то, что интегрируется в кактусы, то это было бы идеально.
Лично я не мог понять, как заставить Awstats это сделать. Я думаю, что ответ Xerxes на связанный вопрос о сбое сервера - самый простой способ сделать это:
cat /var/log/apache/access.log | awk '{SUM+=$10}END{print SUM/1024/1024}'
Это предполагает вывод байтов% b в позиции 10 в вашем файле журнала - поэтому убедитесь, что ваш параметр CustomLog включает% b, и при необходимости измените $ 10.
Приятно то, что вы можете запускать его для отдельных файлов журнала или с помощью команды grep для определенных строк в одном файле журнала. Например, вы могли бы сделать
cat <log_file> | grep <virtual_domain> | awk . . .
чтобы увидеть пропускную способность для одного виртуального домена в объединенном журнале.
Я бы посоветовал выгрузить всю информацию в один журнал, используя там парсер, а затем разбить журналы в файлы журналов уважаемых виртуальных доменов после того, как вы соберете из них нужные данные.
У вас также будет лучшая масштабируемость высокого уровня, используя один файл журнала более 2 (общие и ошибки) на виртуальный.
Если продукты находятся на разных IP-адресах, это довольно просто с помощью чего-то вроде MRTG.