Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Решение административных задач в Linux

Следим за системными логами с помощью phpLogCon

Оригинал: Keep an eye on your system logs with phpLogCon
Автор: Ben Martin
Дата: 3 сентября 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 2 августа 2008

phpLogCon - это пользовательский веб-интерфейс к системным логам. Программа может работать как в Linux так и в Windows-системах, для администратора это удобно - потребуется лишь один вход в phpLogCon, чтобы увидеть все события, происходящие на всех машинах сети.

phpLogCon нет в репозиториях Ubuntu, openSUSE 11 и Fedora 9. Однако есть в Fedora 10, а именно в репозитории для разработчиков development. Я скачал исходники и собрал phpLogCon версии 2.3.9 на машине i386 с установленной Fedora 9.

Скрипт install.php поможет вам в конфигурировании phpLogCon. Вас проведут по нескольким шагам, спрашивая те или иные настройки, и параллельно записывая их в файл config.php. Следующие команды установят файл install.php, а также все остальные PHP-файлы, необходимые для работы phpLogCon. После того, как все заработает, можно будет удалить файл install.php. Чтобы иметь возможность просматривать syslog-информацию о веб-сервере, необходимо дать пользователю веб-сервера право читать syslog-файлы.

cd /usr/local
tar xzf /tmp/phplogcon-2.3.9.tar.gz
cd ./phplogcon*
cp -av src /var/www/html/phplogcon
cd /var/www/html/phplogcon

touch config.php
chown root.apache config.php
chmod g+w,o-rwx config.php
ls -l config.php
-rw-rw---- 1 root apache 0 2008-08-12 12:28 config.php

cd /var/log
chgrp apache messages
chmod g+r messages

При первом запуске http://localhost/phplogcon у вас откроется страница с критической ошибкой - основной файл конфигурации отсутствует. Ссылка на этой странице (ведущей к install.php) позволит вам настроить phpLogCon как надо. В вышеприведенных командах мы создали пустой файл config.php, дали веб-серверу право (временно) писать в него. При нажатии на ссылке install.php во-первых проверит, что может писать в файл config.php, а затем, как было сказано, проведет вас по шагам конфигурации (всего их 8). В этом состоят первый и второй шаги процесса установки.

Шаг 3 позволит указать некоторые общие опции, например, сколько сообщений нужно показывать на странице, количество символов, которое следует отображать из каждого сообщения на основной странице. Также можно отключить всплывающее окно с подробностями сообщения, а также разрешение IP-адресов.

Если оставить основные настройки как есть, по умолчанию, тогда произойдет переход сразу на шаг 7. phpLogCon поддерживает чтение системных логов не только из локальных файлов, но и из реляционных баз данных. Имеется поддержка MySQL, а также других СУБД благодаря PHP Data Objects. В этой статье я рассмотрю работу лишь с локальными syslog-файлами. Если у вас настроен rsyslog, записывающий системные логи в реляционную базу данных, тогда нужно лишь указать имя БД, схему (monitorware или syslogng), имя пользователя и пароль для соединения с БД. В этой статье я просто позволяю пользователю apache читать системные логи. Возможно, вы захотите запускать phpLogCon через suphp, от имени специального пользователя, имеющего право читать системные логи, однако не дающего это сделать другим PHP-скриптам.

На шаге 8 вас поздравляют с тем, что установка закончена и можно начинать пользоваться phpLogCon. Прямо на этой страничке есть ссылка, нажав на которой, можно перейти к просмотру логов. Поступив таким образом, вы попадете на экран как на следующей картинке:

Если на этом этапе вы уже можете просматривать логи, тогда следует зафиксировать конфигурацию, оставив на файле config.php лишь право чтения и совсем удалив скрипт install.php с веб-сервера. Больше изменять файл config.php не потребуется, как и запускать install.php - все уже настроено. Если все-таки потребуется перенастройка, скопируйте PHP-файлы из /usr/local (куда мы распаковали пакет в самом начале).

При нажатии на кнопке Show Events в верхней панели на странице phpLogCon покажется список последних событий демона syslog. Чтобы отфильтровать из всех сообщений те, которые связаны с конкретной машиной или службой, нажмите на соответствующей ячейке. Нажатие на ячейке в столбце Message покажет это сообщение более подробно. Всплывающее окно Message Detail содержит элемент Pager, с помощью которого можно переходить к предыдущему или следующему сообщению, а также к первому и последнему.

Я обнаружил, что при просмотре самых последних сообщений запрос "новых" сообщений приводит к ошибке, состоящей в том, что таких syslog-записей не найдено (код ошибки 6). В этом есть смысл, ведь вы уже просматриваете самые новые сообщения - и вам ничего не должно показываться. К сожалению, в этом случае не отображаются кнопки "вперед" и "назад" элемента Pager, поэтому чтобы вернуть управление в свои руки, приходится воспользоваться кнопкой "назад" в браузере.

Если хотите постоянно следить за состоянием служб, тогда можно указать, чтобы phpLogCon автоматически перезагружал страницу раз в 5, 10, 15, 30 или 60 секунд, либо 5, 10, 15 или 30 минут. Можно оставить веб-браузер с открытой страницей phpLogCon и следить за новыми сообщениями в реальном времени, если указать интервал обновления 5 или 10 секунд. Однако при каждой перезагрузке страницы вас возвращает к верхней части страницы. Если бы phpLogCon работал на AJAX, тогда было бы намного удобнее.

Кнопка Search в панели инструментов в верхней части экрана позволяет производить поиск среди сообщений, по следующим критериям: время события, facility и severity, источник сообщения и Syslogtag. Последний вариант полезен, когда вы хотите видеть историю сообщений событий определенного типа, например, сообщения от DHCP-клиента. Самый простой способ поиска по Syslogtag - это открыть обычную страницу Show Events и нажать на одной из ячеек в столбце Syslogtag, затем выбрать в Filter нужное значение. Если вы вручную набираете Syslogtag в поле Search, убедитесь, что не ввели в самом начале пробел, иначе получите намного меньше сообщений, чем ожидали. Такая ошибка может возникнуть, когда вы копируете Syslogtag из окошка с подробностями сообщения.

Больше возможностей

В верхней правой части страницы phpLogCon есть еще некоторые настройки. Здесь можно выбрать, какие системные логи следует просматривать, язык пользовательского интерфейса и графическую тему. В комплекте phpLogCon идет две темы: одна показана на скриншотах, а другая - более темная. Среди языков есть английский, немецкий и португальский.

Чтобы добавить новый источник системных логов, нужно отредактировать файл config.php - через веб-интерфейс этого сделать нельзя. В самом конце файла config.php вы увидите что-то похожее на следующие строки. Добавление строк, выделенных жирным шрифтом в данном примере, позволит вам видеть системный лог secure, лишь бы на чтение этого файла /var/log/secure у веб-сервера было достаточно прав.

$CFG['Sources']['Source1']['ID'] = 'Source1';
$CFG['Sources']['Source1']['Name'] = 'Web server system log';
$CFG['Sources']['Source1']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source1']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source1']['LogLineType'] = 'syslog';
$CFG['Sources']['Source1']['DiskFile'] = '/var/log/messages';

$CFG['Sources']['Source2']['ID'] = 'Source2';
$CFG['Sources']['Source2']['Name'] = 'secure';
$CFG['Sources']['Source2']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source2']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source2']['LogLineType'] = 'syslog';
$CFG['Sources']['Source2']['DiskFile'] = '/var/log/secure';

phpLogCon - хорошее средство просмотра системных логов через веб-браузер. Применение технологии AJAX сделало бы работу с ним более удобным, однако все равно, если вы ищете веб-интерфейс для просмотра системных логов, тогда phpLogCon стоит вашего внимания.