Автор: Logreport, Egon Willighagen
Об авторе:
Кроме участия в проекте LinuxFocus, Egon работает в Logreport Foundation и
принимает там участие в разработке приложения lire.
Содержание:
Резюме:
Эта заметка является первой в серии об использовании lire для анализа лог-файлов интернет-сервисов. Это приложение не только для Apache, но и для многих других, включая DNS, WWW и e-mail. В заметке рассказывается как установить это приложение и сконфигурировать для создания отчетов.
Все интернет-сервисы обладают возможностью вести лог-файлы своей работы. Например веб-сервер Apache добавляет в свой лог информацию о каждой запрашиваемой странице - в зависимости от настройки это может быть информация об имеи файла, его размере, браузере, сделавшем запрос и многое-многое другое. То же самое можно сказать и о e-mail сервере - там в лог складывается информация о том, кто послал сообщение, кому, какого оно размера и т.д. Короче говоря многие приложения ведут свои лог-файлы.
Подобные файлы содержат огромное количество информации, которую очень сложно обработать вручную. Для обработки их и последующего анализа необходим соответствующий инструмент. В случае www-сервисов - интересная информация это - браузеры, домены, платформы и количество хитов в единицу времени.
Существует много подобных приложений. Вот здесь мы и начнем говорить о lire. Данное приложение отличается от других тем, что с его помощью можно анализировать лог-файлы разных сервисов - не одного. Также плюсом является наличие готовых очетов, что не мешает созданию своих собственных.
Данное приложение можно использовать по-разному - или как самостоятельное приложение или в качестве задачи crontab и получать отчеты по электронной почте. Также можно выбрать формат отчета - это может быть просто текст, HTML, DocBook, PDF и LogML. Но в настоящее время для crontab варианта отчеты можно создавать только в текстовом виде.
На данный момент лог-файлы следующих сервисов могут быть обработаны:
Lire находится в стадии активной разработки, для работы над которым выделены три оплачиваемые позиции. Также в круг задач этих людей входит обеспечение поддержки и при наличии пожеланий (например добавления анализа какого-либо сервиса) или вопросы - оставляйте их на LogReport's SourceForge site.
./configure make make install
В программе настройки определены следующие опции:
опция | описание |
--prefix=/some/dir | Указывает корневой каталог для инсталляции. По умолчанию используется /usr/local. |
--with-perl5libdir=/some/dir | Указывает местоположение модулей Perl'а. По умолчанию используется $prefix/share/perl5. |
--with-sgmldir=/some/dir | Путь к каталогу с установленным SGML. По умолчанию используются $prefix/lib/sgml и $prefix/share/sgml. |
Если вы хотите создавать отчеты в формате отличном от обычного текста - вам еобходимо установить инструментарий XML - напрмер DocBook XML stylesheets, Jade, и XML processor например Xalan или Sablotron. Третья опция указывает местоположение файлов SGML.
Did you start this script as this user?
Собираетесь ли вы использовать этот скрипт с привилегиями текущего пользователя?
Программа должна запускаться пользователем, у которого есть возможность читать лог-файлы. По умолчанию эти файлы обычно доступны пользователю root и другим, входящим в группу adm. Проверьте может ли данный пользователь читать их. Пример:
~> cd /var/log /var/log> ls -al apache/access.combined.log -rw-r----- 1 root root 70902 Jul 27 13:23 apache/access.combined.log /var/log> whoami egonw /var/log> groups egonw adm dialout
В данном примере egonw не имеет возожности читать лог-файлы веб-сервера Apache, только пользователь root обладает остаточными привилегиями, но рассматриваемый нами пользователь, тем не менее, входит в состав группы adm - поэтому можем изменить принадлежность этого файла к другой группе:
/var/log# whoami root /var/log# chgrp adm apache/access.combined.log /var/log# ls -al apache/access.combined.log -rw-r--r-- 1 root adm 70902 Jul 27 13:23 apache/access.combined.log
Temporary files are by default not kept. Do you want to keep these?
По умолчанию временные файлы не сохраняются. Хотите ли вы их сохранять?
Для обычного использования можно ответить "no".
Are you planning to run an online responder?
Планируете ли вы использовать online responder?
Online responder - приложение, которому вы посылаете лог-файл, оно его обрабатывает и пересылает вам обратно уже отчет. Это подойдет администраторам больших сетей. Для обычного использования - можно ответить "no".
By default, temporary files are stored in ~/tmp. Do you want to change this?
По умолчанию временные файлы сохраняются в ~/tmp. Хотите ли вы изменить этот каталог?
По умолчанию временные файлы сохраняются в вашем домашнем каталоге. Можно изменить его, ответив "yes" и указав другой. Не забывайте, что это должен быть каталог, в котором пользователь, запускающий lire имеет привилегии записи.
Do you want to sent a disclaimer with the generated reports?
Если вы посылаете отчеты еще кому-либо вы можете добавить ... ответив "yes" на этот вопрос. Если отчеты только для внутреннего пользования - отвечайте "no".
By default, status and error messages are sent to stderr. Do you want to change this to syslog?
По умолчанию сообщения об ошибках и информационные перенаправляются в stderr. Хотите ли вы перенаправить их в syslog?
Ответив "yes" на этот вопрос вы перенаправляете сообщения об ошибках и информационные в logger(1) вместо STDERR. В этом случае необходимо установить дополнительно logger(1).
По умолчанию информационные и отладочные сообщения подавляются. Хотите ли вы запускать приложение в отладочном режиме?
Для обычного использования отвечайте "no".
Do you want to use some default settings for all services?
Хотите ли вы использовать некоторые настройки по умолчанию для всех сервисов?
Для каждого сервиса надо прописать отдельный e-mail. Для удобства можно указать один для всех. Ответьте "yes" для подобного.
Would you like to use a default to-address?
Хотите использовать адрес по умолчанию?
Ответив "yes" вы укажете этот адрес для пересылки отчетов. Он может быть переписан для специфичных сервисов.
Would you like to use a default subject stem for the generated email?
Хотите использовать тему по умолчанию для создаваемых писем?
Ответив "yes" необходимо указать шаблон, на основе которого будут создаваться поля темы. Использование по умолчанию выглядит следующим образом: "[LogReport] www / apache report" для отчетов Apache.
Which services are running?
Какие сервисы запущены?
Все последующие вопросы относятся к указанию сервисов, для которых необходимо создавать отчеты. Все они похожи и мы не будем их здесь рассматривать, укажем лишь их общий вид:
Are you collecting ***** logfiles on this host which you'd like to get processed?
Ведется ли ***** лог-файл, который вы хотите обрабатывать?
Программы, которые поддерживает lire, объединяются в так называемые "super services". Первый вопрос для каждого "super service" обычно следующий - ведется ли лог программы, для которой lire должно сгенерировать отчет. Если вы отвечаете "no" - все остальные вопросы пропускаются. Все "super service", поддерживаемые lire приведены во вступлении - кроме них еще можно указать apachemodgzip.
Далее для каждого сервиса будет задан вопрос по каждому приложению, входящему в состав - где находятся их логи - например для e-mail это - exim, postfix, qmail и sendmail. These might be compressed, because lire will ask you if you want to specify with which program it should read the logfiles: zcat or gunzip -c can thus be used.
Are any of your ***** logfiles rotated weekly?
Какой-нибудь из ***** лог-файлов изменяется еженедельно?
В случае ответа "yes" - расписание запуска lire по crontab будет заменено на еженедельное, в противном случае - на ежедневное.
После того, как все вопросы заданы и получены ответы на них - создаются конфигурационные файлы (*/defaults.local). Эти файлы используются для lire cronjob. К сожалению cronjob не активизируется автоматически - это надо сделать вручную следующим образом:
~> { echo '0 10 * * * /usr/local/logreport/bin/lr_cron daily'; echo '0 10 * * 0 /usr/local/logreport/bin/lr_cron weekly'; } | crontab -
Однажды активизировав этот сервис - вы будете получать отчеты ежежневно или еженедельно.
~> lr_run lr_log2report /tmp/err www apache combined < /var/log/apache/access.combined.log > apache.txt
Программе lr_log2report при запуске необходимо передать три аргумента - первый - имя файла для перенаправления ошибок (например /tmp/err), второй - название super service - один из www, dns или email и наконец третий - собственно сам сервис - напрмер apache. Как и для других программ проекта lire - дополнительная информация доступна командой man:
~> man lr_log2report
Для изменения формата вывода - используйте опцию "-o <format>" - в настоящее время доступны следующие - txt (по умолчанию), logml (LogML website), DocBook XML (DocBook Open Repository), HTML и PDF, для двух последних необходимо установить DocBook stylesheets и Jade. Все форматы, кроме обычного текста, требуют также наличия XSLT processor что-то вроде Gnome's xsltproc. Для создания отчета в формате PDF выполните следующую команду:
~> lr_run lr_log2report -o pdf /tmp/err www apache combined < /var/log/apache/access.combined.log > apache.pdf
В этой заметке вы познакомились с проектом lire - узнали как установить и сконфигурировать это приложение. Следующие заметки в этой серии продемонстрируют как его можно использовать. В настоящее время дополнительная информация доступна на нашем сайте: http://www.logreport.org/.
Если вы хотите связаться с нами - лучше всего использовать IRC. Разработчиков можно найти на #logreport channel на OpenProjects.org IRC network. Вопросы, комментарии, вопросы поддержки - рады всему.
Перевод: Kirill Poukhliakov