Pull to refresh

Централизованный сбор, хранение и просмотр Syslog в Debian Linux

Reading time2 min
Views60K
В качестве стандартного syslog-сервиса в Debian используется rsyslog. Дальше рассказывается, как отправлять копии журналов на сервер, сохранять их в SQL-базе и просматривать через удобный Веб-интерфейс.


Отправка с клиентских машин на центральный сервер


Создаём файл /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».
Tags:
Hubs:
Total votes 26: ↑25 and ↓1+24
Comments12

Articles