Сбор и просмотр логов с помощью LogAnalyzer
Nov 23, 2015 20:37 · 406 words · 2 minute read
Порой возникает необходимость создать сервер для централизованного сбора, анализа и просмотра логов.
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 и следуем инструкциям мастера установки.