Опрос

Что вы думаете по поводу веб-кастов, выложеных на сайте?
 

Последнии комментарии

Сервер централизованного сбора логов с серверов Windows и Linux на базе rsyslog и LogAnalizer PDF Печать E-mail
Рейтинг пользователей: / 306
ХудшийЛучший 
Автор: yakim   
12.12.2011 21:44

Во многих фирмах, особенно большого размера, возникает задача централизованного сбора и анализа логов. Для этого существует много разных продуктов — Quest, Splunk и т. д. Возможности у них, конечно, достаточно большие. Но, за то, и цена не маленькая. Та и продаются они не маленькими пакетами. Например Quest — от 200 лицензий. А что делать, если такое количество не нужно? Покупать лишнее не хочется ведь. Вот и приходят на помощь возможности OpenSource.

В Linux есть замечательный демон — rsyslog. Он может собирать данные не только локально, но и по сети. Было бы кому отдавать эти данные. Но, в связи с тем, что сегодня отдавать логи на rsyslog умеют многие (и Windows в том числе), именно на нем мы и рассмотрим установку и настройку сервера сбора логов.

На нашем Linux-сервере установим в качестве операционки Ubuntu Linux 10.04. Rsyslog на нем уже есть. Осталось это все настроить.

Для того, что бы эти логи можно было удобно смотреть и анализировать будем хранить их в базе данных — MySQL. Соответственно установим базу данных:

$sudo aptitude install mysql-server mysql-client.

 

При настройке введем пароль root для MySQL и постараемся его не забыть — он нам еще пригодится.

Теперь научим rsyslog хранить свои данные (то есть все логи) в MySQL. Тля этого установим еще два пакета — syslog-mysql и rsyslog-relp

$sudo aptitude install rsyslog-mysql rsyslog-relp

В процессе настройки в MySQL будет создана база Syslog и потребуется ввести пароль для пользователя rsyslog.

Этот пароль тоже не забываем.

Далее мы научим наш сервер принимать логи по сети. Для этого редактируем файл /etc/rsyslog.conf.

Раскомментируем в нем следующие строки:

# provides UDP syslog reception 
$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

И, естественно, перезапустим сервис rsyslog

$sudo service rsyslog restart

Для того, что бы наш сервер умел принимать сообщения по RELP — Reliable Event Logging Protocol нужно дополнительное конфигурирование. Создадим файл /etc/rsyslog.d/relp.conf и внесем в него следующее:

$ModLoad imrelp 
$InputRELPServerRun 20514

В случае, если поток логов будет чересчур большим, некоторые события могут потеряться, так как просто не успеют обработаться. Что бы такого не произошло настроим буферизацию сообщений.

Создадим каталог, в котором rsyslog будет хранить очередь сообщений

$ sudo mkdir -p /var/rsyslog/work

И добавим в /etc/rsyslog.d/mysql.conf такие строки:

# Buffering stuff: 
$WorkDirectory /var/rsyslog/work # default location for work (spool) files
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName dbq # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure

И снова перезапустим наш демон:

$sudo service rsyslog restart

 

Вот на этом, собственно, настройка сервера сбора логов закончена. Если бы не одно «НО». Хотелось бы как-то визуализировать отчетность. Не все хотят и могут читать логи в консоли. Вот тут нам на помощь приходит LogAnalizer — веб-интерфейс для работы с логами.

 


Настройка LogAnalizer

  

Для работы LogAnalizer нам понадобится веб-сервер, php и MySQL. Так как MySQL мі уже установили — доустановим недостающие компоненты:

$sudo aptitude install apache2 php5 php5-mysql php5-gd

  

Скачаем последнюю версию LogAnalizer:

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

Распакуем его:

$tar -xzf loganalyzer-3.4.0.tar.gz И перейдем в его папку

$cd loganalyzer-3.4.0


Теперь установим его в каталог на нашем веб-сервере:

$sudo mkdir /var/www/logs

$sudo cp -R src/* /var/www/logs/

$sudo cp contrib/* /var/www/logs/

$cd /var/www/logs/

$sudo chmod +x configure.sh secure.sh

$sudo ./configure.sh

 


Теперь создадим базу данных для работы LogAnalizer:

$sudo mysql -p

mysql> create database LogAnalyzerUsers;

mysql> show databases;

И создадим пользователя la с паролем la для доступа к этой базе:

mysql> grant all on LogAnalyzerUsers.* to la@'localhost' identified by 'la';

mysql> quit

 


Для продолжения настройки откроем веб-интерфейс LogAnalizer'а

http://ourserver/logs

И начинаем установку

la1

la2

Далее проверяется наличие и права доступа к файлу config.php

la3

Для того, что бы была возможность создавать пользователей внутри LogAnalizer'а и раздавать им права доступа, выбираем Enable User Database — yes

Заполняем логин, пароль и имя базы, как мы их создали. То есть в моем случае имя базы LogAnalizerUsers

логин — la

пароль — la

Будьте внимательны с регистром символов! Он имеет значение!

la4

На следующих двух шагах проверяется соединение с базой данных и в ней создаются соответствующие таблицы.

la5

la6

Далее создается административная учетная запись (я ее назвал admin)

la7

Теперь мы описываем параметры соединения с базой rsyslog.

Вводим все параметры именно так, как показано на рисунке. Снова не забываем о том, что регистр символов имеет большое значение.

la8

И, наконец, все. Настройка завершена.

la9

Жмем Finish и смотрим логи в веб-интерфейсе.

  

main-win

Если что-то настроили не правильно, ничего страшного. Всегда можно провести настройку заново.

Для этого в каталоге /var/www/logs удаляем файл confih.php и потом в нем же запускаем скрипт configure.sh

После этого открываем заново в браузере http://ourserver/logs и конфигурируем все заново.

  

rsyslog и Windows

  

Есть возможность передавать в rsyslog журналы Windows-серверов и рабочих станций.

Для этого качаем eventlog-to-syslog, и копируем evtsys.exe и evtsys.dll в \%WinDir%\system32

После чего запускаем

C:\Windows\system32>evtsys.exe -i -h ip.address.of.myserv

После перезагрузки (или ручного запуска сервиса evtsys) все журналы Windows будут передаваться в rsyslog нашего сервера и, соответственно, будут доступны в веб-интерфейсе LogAnalizer.


Языки перевода

  

Интерфейс этого продукта пока есть только английский и немецкий.

Я тут на днях сделал свой перевод — украинский. Где его взять и как установить — читать здесь.

А кого интересует правильная установка Linux Mint 11 на компьютер так и об этом можно в интернете найти!

  

 




Обновлено 16.12.2012 20:55
 

Комментарии 

 
+2 #1 casperonius 11.05.2012 11:07
Скажите, а как у Вас обстоят дела с русским языком в логах на MySQL?

У меня файл-логи пишет нормально, а в базу кодировку ломает. =(
 
 
+1 #2 Sergey Yakimchuck 11.05.2012 11:21
После того, как в настройках интерфейса указал кодировку UTF-8 вместо iso-чего-то там, стало все нормально. По крайней мере на 2008r2
 
 
+1 #3 mont 03.03.2013 20:04
у меня rsyslog мониторит только журнал "Система" винды, а можно ли сделать так, чтобы он мониторил и "Приложения"?
 
 
+2 #4 master 08.08.2013 03:02
а у меня ошибка сразу же после 8 шага:
"Could not find the configured table, maybe misspelled or the tablenames are case sensitive"
 
 
+1 #5 yakim 08.08.2013 05:41
Где-то в процессе конфигурировани я Вы ошиблись.
То ли логины-пароли перепутали, то ли еще что-то.
 
 
+1 #6 sol 16.08.2013 13:43
А почему не указано что нужно создавать таблицы?
-------------------------------------------------
#4 master 08.08.2013 03:02
а у меня ошибка сразу же после 8 шага:
"Could not find the configured table, maybe misspelled or the tablenames are case sensitive"
--------------------------------------------
Эта ошибка бывает когда база данные есть, указанная на 7 шаге Syslog которая, а вот таблица SystemEvents пустая, на это и ругаеться...
Вот решение: kb.monitorware.com/.../
 

Добавить комментарий

Защитный код
Обновить

 
3.png

Дружественные сайты

Linux для всех

 

Видеоуроки

 

 

Ubuntu в Сумах

 

Мои Счетчики