Централизованный мониторинг сервера RSYSLOG

В этом руководстве приведены пошаговые инструкции по установке сервера RSYSLOG на Debian  и отправке данных syslog с нескольких клиентских серверов.

Мы также покажем, как установить веб-сервер Apache и сервер базы данных MySQL для сбора данных syslog и как установить LogAnalyzer, чтобы легко просматривать собранные данные с помощью веб-браузера.

Я использую готовый шаблон виртуализации OpenVZ для этой настройки, но это также должно работать на большинстве операционных систем на базе Debian.

Я не гарантирую, что это сработает у вас!

 

Установка сервера RSYSLOG

В этой первой части описывается, как создать сервер RSYSLOG, который будет собирать данные syslog от своих клиентов.

В этом примере наш сервер называется rsyslog.domain.com и имеет фиксированный IP-адрес 192.168.0.15.

Сначала мы установим некоторые зависимости.

 apt-get update
 apt-get upgrade

 

 apt-get install rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

 

Создайте пароль сервера MySQL, когда установка попросит вас ввести его!

У моего шаблона OpenVZ все это готово было.

 apt-get install linux-kernel-headers

 

Убедитесь что службы подняты и запущены

/etc/init.d/rsyslog restart

/etc/init.d/mysql restart

/etc/init.d/apache2 restart

 

Убедитесь, что сервер прослушивает соответствующие IP-порты TCP. (80 и 3306).

RSYSLOG в настоящее время не слушает ни одного порта.

 rsyslog:~# netstat -tapn
Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      415/mysqld

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      581/apache2

 

Затем мы можем создать базу данных rsyslog:

 mysqladmin -u root -p create rsyslog

 

Затем мы запускаем командную оболочку MySQL и создаем пользователя rsyslog:

mysql -u root -p</p>

<p class="command">GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE';</p>

<p class="command">FLUSH PRIVILEGES;</p>

<p class="command">quit

 

Затем мы настраиваем сервер rsyslog для прослушивания на TCP-порту 514:

 vi /etc/rsyslog.conf

 

Добавьте эти строки … (не забудьте изменить свой пароль на тот, который вы ввели при создании пользователя rsyslog вашего сервера MySQL).

 

$ModLoad MySQL

*.* >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

 

… и удалите комментарии перед строками, связанными  TCP syslog.

# /etc/rsyslog.conf Configuration file for rsyslog v3.

#

# For more information see

# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html

$ModLoad MySQL

*.* >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

#################

#### MODULES ####

#################

$ModLoad imuxsock # provides support for local system logging

$ModLoad imklog # provides kernel logging support (previously done by rklogd)

#$ModLoad immark # provides --MARK-- message capability

# provides UDP syslog reception

#$ModLoad imudp

#$UDPServerRun 514

# provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

###########################

#### GLOBAL DIRECTIVES ####

###########################

 

И перезапустите службу rsyslog.

 /etc/init.d/rsyslog restart

 

Убедитесь, что сервер прослушивает соответствующие IP-порты TCP. (80, 514 и 3306.)

 rsyslog:~# netstat -tapn
Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 618/rsyslogd

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 415/mysqld

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 581/apache2

 

Затем мы загружаем LogAnalyzer и настраиваем веб-сервер Apache для отображения журналов.

cd /tmp



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



tar xvzf loganalyzer-3.4.1.tar.gz



mv loganalyzer-3.4.1/ /var/www/



cd /var/www

 

Затем мы настраиваем права доступа к веб-папкам для веб-сервера Apache.

 chown www-data: www-data *. -Rf

 

И затем мы делаем некоторые «приятные» работы в папках LogAnalyzer.

mv loganalyzer-3.4.1/ loganalyzer



cd contrib/



cp * ./../src/



cd ./../src/



sh ./configure.sh

 

И мы готовы погрузиться в окончательную настройку LogAnalyzer с помощью нашего веб-браузера.

Направьте свой веб-браузер на фиксированный IP-адрес нашего сервера rsyslog, который в этом демо: http://192.168.0.15/loganalyzer/src/install.php

Пройдите через простой сценарий настройки (это довольно много … далее -> далее).

Теперь вам нужно запустить рабочий сервер rsyslog с LogAnalyzer.

Затем мы настраиваем клиенты RSYSLOG для отправки своих данных syslog на сервер rsyslog:

 

Настройка клиентов RSYSLOG

Обычно все, что нам нужно сделать, это настроить файл rsyslog.conf и перезапустить службу.

(Почти все дебианы поставляются с предварительно установленным rsyslog.)

 vi /etc/rsyslog.conf

 

Добавьте строки каталога которые используются в случае потери сетевого подключения и изменения IP-адреса сервера rsyslog IP до 192.168.0.15. (Вы также можете создать каталог / rsyslog / work spool с помощью команды mkdir.)

# provides TCP syslog reception

#$ModLoad imtcp

#$InputTCPServerRun 514

$WorkDirectory /rsyslog/work # default location for work (spool) files

$ActionQueueType LinkedList # use asynchronous processing

$ActionQueueFileName srvrfwd # set file name, also enables disk mode

$ActionResumeRetryCount -1 # infinite retries on insert failure

$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down

*.* @@YOUR-RSYSLOG-SERVER-ADDRESS-HERE

###########################

#### GLOBAL DIRECTIVES ####

###########################

 

И перезапустите службу rsyslog.

 /etc/init.d/rsyslog restart

 

Убедитесь, что сервер подключен к соответствующему TCP-порту TCP (514).

 root@ic1:~# netstat -tapn
Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 192.168.0.100:49188 192.168.0.15:514 ESTABLISHED 13289/rsyslogd

 

Вот как выглядит успешная установка.