В качестве стандартного syslog-сервиса в Debian используется rsyslog. Дальше рассказывается, как отправлять копии журналов на сервер, сохранять их в SQL-базе и просматривать через удобный Веб-интерфейс.
Создаём файл /etc/rsyslog.d/send2server со строкой:
Например:
Чтобы не собирать отладочный мусор, можно заменить "*.*" на "*.notice" или "*.warning".
Перечитываем настройки: /etc/init.d/rsyslog restart
В /etc/rsyslog.conf должны быть раскомментированы строки:
Перечитываем настройки: /etc/init.d/rsyslog restart
SQL-таблицу Syslog.SystemEvents стандартного формата LogAnalyzer автоматически дополняет собственными столбцами, но для этого потребуется давать ему слишком большие привилегии. Чтобы разрешить ему только SELECT, создадим столбцы вручную:
После завершения установки:
Первый пользователь имеет права администратора.
Рекомендуется зайти в «Admin Center / Users» и зарегистрировать гостя с флагом «ReadOnly User».
Отправка с клиентских машин на центральный сервер
Создаём файл /etc/rsyslog.d/send2server со строкой:
*.* @hostname-или-fqdn-или-ip-адрес-сервера
Например:
*.* @netlog.lan
Чтобы не собирать отладочный мусор, можно заменить "*.*" на "*.notice" или "*.warning".
Перечитываем настройки: /etc/init.d/rsyslog restart
Протокол доставки
- по умолчанию используется udp/514
- если указать "@@" вместо "@", то вместо стандартного UDP станет использоваться TCP (нестандартное расширение!).
- если нужна 100% надёжность доставки, вместо udp/tcp следует использовать модули omrelp на клиенте и imrelp на сервере.
Приём на сервере
В /etc/rsyslog.conf должны быть раскомментированы строки:
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
Перечитываем настройки: /etc/init.d/rsyslog restart
Хранение в MySQL
- apt-get install rsyslog-mysql
- аккуратно отвечаем на все задаваемые вопросы,
- если не считать паролей, достаточно подтверждать предлагаемые значения,
- настройки сохраняются в /etc/rsyslog.d/mysql.conf
Просмотр в LogAnalyzer
- Страница скачивания: loganalyzer.adiscon.com/downloads (в пакетах Debian отсутствует)
- Установка зависимостей: apt-get install libapache2-mod-php5
- Из архива с исходными текстами внутрь /var/www требуется скопировать папку ./src и переименовать её в «loganalyzer».
- Рекомендуемое исправление для ./include/functions_common.php, чтобы убрать предупреждения из логов Apache:
--- loganalyzer/include/functions_common.php.orig 2011-11-14 14:32:32.000000000 +0200
+++ loganalyzer/include/functions_common.php 2011-11-16 02:05:58.982834986 +0200
@@ -1163 +1163,2 @@
- $content['EXTRA_METATAGS'] .= '/>';
+ if (array_key_exists($content['HeaderDefaultEncoding']))
+ $content['EXTRA_METATAGS'] .= '/>';
- Создание пустого файла конфигурации, будет заполнен инсталлятором:
touch config.php
chmod 666 config.php
Подготовка SQL-баз для LogAnalyzer
SQL-таблицу Syslog.SystemEvents стандартного формата LogAnalyzer автоматически дополняет собственными столбцами, но для этого потребуется давать ему слишком большие привилегии. Чтобы разрешить ему только SELECT, создадим столбцы вручную:
ALTER TABLE `SystemEvents` ADD `processid` varchar(60) NOT NULL DEFAULT '';
ALTER TABLE `SystemEvents` ADD `checksum` int(11) UNSIGNED NOT NULL DEFAULT '0';
Настройка LogAnalyzer
- Открываем netlog.lan/loganalyzer/install.php и проходим все шаги.
- Формат syslog-базы = MonitorWare.
- Имя базы Syslog и таблицы SystemEvents являются регистрозависимыми.
После завершения установки:
chmod 644 config.php
rm install.php
Первый пользователь имеет права администратора.
Рекомендуется зайти в «Admin Center / Users» и зарегистрировать гостя с флагом «ReadOnly User».