Сервер централизованного сбора логов на базе rsyslog

Posted by

В этой заметке я покажу как развернуть сервер для централизованного сбора и анализа логов под операционной системой который ляжет уже после в основу следующей заметки.

В Ubuntu 12.04 есть замечательный демон — – в задачи которого входит сбор логов локально так и по сети. Для того, что бы эти логи можно было удобно смотреть и анализировать будем хранить их в базе данных — .

 

И так основная система:

ekzorchik@webserver:~$ uname -a && lsb_release -a

Linux webserver 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 12.04 LTS

Release: 12.04

Codename: precise

 

Rsyslog — уже установлен в системе.

ekzorchik@webserver:~$ whereis rsyslog

rsyslog: /etc/rsyslog.d /etc/rsyslog.conf /usr/lib/rsyslog /usr/share/rsyslog

 

Устанавливаем MySQL:

ekzorchik@webserver:~$ sudo apt-get install mysql-server mysql-client

[sudo] password for ekzorchik:

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following extra packages will be installed:

libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libnet-daemon-perl libplrpc-perl

mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5

Suggested packages:

libipc-sharedcache-perl libterm-readkey-perl tinyca mailx

The following NEW packages will be installed:

libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libnet-daemon-perl libplrpc-perl

mysql-client mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server mysql-server-5.5

mysql-server-core-5.5

0 upgraded, 13 newly installed, 0 to remove and 99 not upgraded.

Need to get 27.1 MB of archives.

After this operation, 97.3 MB of additional disk space will be used.

Do you want to continue [Y/n]?

 

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

пароль от пользователя root для MySQL — 712mbddr@

Устанавливаем пароль на пользователя root для MySQL

 

Подтверждаем его введя снова.

Теперь научим rsyslog хранить свои данные (то есть все логи) в MySQL.

Для этого установим еще два пакета — -mysql и rsyslog-relp

ekzorchik@webserver:~$ sudo apt-get install rsyslog-mysql rsyslog-relp

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following extra packages will be installed:

dbconfig-common librelp0

The following NEW packages will be installed:

dbconfig-common librelp0 rsyslog-mysql rsyslog-relp

0 upgraded, 4 newly installed, 0 to remove and 106 not upgraded.

Need to get 497 kB of archives.

After this operation, 2,138 kB of additional disk space will be used.

Do you want to continue [Y/n]? y

 

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

Сконфигурируем базу rsyslog-mysql

 

Пароль указываю такой же — 712mbddr@

dbconfig-common: writing config to /etc/dbconfig-common/rsyslog-mysql.conf

Пароль указываю такой же — 712mbddr@

 

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

Далее мы научим наш сервер принимать логи по сети.

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

ekzorchik@webserver:~$ sudo cp /etc/rsyslog.conf /etc/rsyslog.conf.backup

ekzorchik@webserver:~$ sudo nano /etc/rsyslog.conf

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

# provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514

 

# provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

 

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

ekzorchik@webserver:~$ sudo service rsyslog restart

rsyslog stop/waiting

rsyslog start/running, process 3692

 

Научим сервер принимать сообщения через Reliable Event Logging Protocol.

Для этого создадим файл ekzorchik@webserver:~$ sudo nano /etc/rsyslog.d/relp.conf и внесем в него следующее:

$ModLoad imrelp

$InputRELPServerRun 20514

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

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

ekzorchik@webserver:~$ sudo mkdir -p /var/rsyslog/work

И добавим в ekzorchik@webserver:~$ sudo nano /etc/rsyslog.d/mysql.conf такие строки:

Было

$ModLoad ommysql

*.*:ommysql:localhost,Syslog,rsyslog,712mbddr@

 

Добавил

# 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

 

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

ekzorchik@webserver:~$ sudo service rsyslog restart

rsyslog stop/waiting

rsyslog start/running, process 3764

 

Вот на этом, собственно, настройка сервера сбора логов закончена.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

двадцать + 17 =