Сбор и просмотр логов с помощью LogAnalyzer

Nov 23, 2015 20:37 · 406 words · 2 minute read logs monitoring

Порой возникает необходимость создать сервер для централизованного сбора, анализа и просмотра логов.

LogAnalyzer от Adiscon предоставляет удобный веб-интерфейс для просмотра логов, полученных с нескольких серверов — давайте разберемся с его установкой и настройкой!

Устанавливать LogAnalyzer будем на:

lsb_release -a
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.9 (wheezy)
Release:	7.9
Codename:	wheezy

В файле /etc/rsyslog.conf должны быть раскоментированы следующие строки:

...
$ModLoad imudp
$UDPServerAddress 192.168.0.13
$UDPServerRun 514
$AllowedSender UDP, 192.168.0.0/24
...

Примечание. В данном примере директива $UDPServerAddress определяет адрес сервера сбора логов, а директива $AllowedSender UDP список хостов, с которых разрешено принимать логи.

Перезапускаем rsyslog командой:

/etc/init.d/rsyslog restart

После этого наш сервер может принимать логи с удаленных хостов по протоколу UDP.

Устанавливаем необходимые пакеты:

aptitude install mysql-server php5-mysql libapache2-mod-php5 rsyslog-mysql

Примечание. Во время установки нужно будет ввести пароль пользователя root сервера MySQL, а также установить пароль для rsyslog-mysql.

Настройки rsyslog-mysql хранятся в файле /etc/rsyslog.d/mysql.conf и могут быть изменены с помощью текстового редактора.

По умолчанию настройки в /etc/rsyslog.d/mysql.conf выглядят так:

### Configuration file for rsyslog-mysql
### Changes are preserved
 
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,password

Примечание. Syslog — имя базы, в которую будут записываться логи, rsyslog — имя пользователя этой базы, password — введенный пароль при установке rsyslog-mysql.

На серверах, с которых будем принимать логи, также редактируем файл /etc/rsyslog.conf добавляя несколько строк в секцию RULES:

###############
#### RULES ####
###############
 
#
# First some standard log files.  Log by facility.
#
auth,authpriv.*     /var/log/auth.log
*.*;auth,authpriv.none    -/var/log/syslog
cron.*        /var/log/cron.log
daemon.*      -/var/log/daemon.log
kern.*        -/var/log/kern.log
lpr.*       -/var/log/lpr.log
mail.*        -/var/log/mail.log
auth,authpriv.*                 @192.168.0.13
user.*                          @192.168.0.13
kern.*                          @192.168.0.13
 
...

Примечание. Логи, поступающие в каналы auth,authpriv.*, user.* и kern.* будут передаваться по UDP на сервер 192.168.0.13. Это лишь пример возможной настройки, в каждом конкретном случае нужно самостоятельно решить какие логи вы хотите просматривать.

Не забываем перезапустить rsyslog:

/etc/init.d/rsyslog restart

Для пользователя rsyslog нужные права на базу Syslog должны быть установлены автоматически, если это не так, то подключаемся к MySQL-серверу:

mysql -u debian-sys-maint -p<пароль_суперпользователя>

и выставляем права доступа:

grant all on Syslog.* to rsyslog@localhost identified by password;
Query OK, 0 rows affected (0.00 sec)

Правим конфигурационный файл /etc/apache2/sites-enabled/default, добавляя в него:

...
    Alias /loga "/var/www/loga"
...

С сайта разработчиков качаем последнюю стабильную версию LogAnalyzer:

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.6.tar.gz

Распаковываем скачанный архив:

tar xpf loganalyzer-3.6.6.tar.gz

Рекурсивно копируем содержимое директории src в директорию /var/www/loga:

cp -R loganalyzer-3.6.6/src/* /var/www/loga

Далее переходим в каталог /var/www/loga и создаем пустой файл конфигурации (его заполнит мастер установки):

cd /var/www/loga
touch config.php
chmod 666 config.php

Далее настраиваем LogAnalyzer — открываем в браузере страницу 192.168.0.13/loga/install.php и следуем инструкциям мастера установки.

tweet Share