Rsyslog с MySQL

Thank you for reading this post, don't forget to subscribe!

Rsyslog — это мощ­ный сер­вер управ­ле­ния жур­на­ла­ми для Linux, кото­рый поз­во­ля­ет хра­нить, управ­лять и про­смат­ри­вать жур­на­лы из раз­лич­ных при­ло­же­ний. Это рас­ши­рен­ная вер­сия систе­мы syslog в Linux. В этой ста­тье мы рас­смот­рим, как настро­ить Rsyslog с MySQL сер­ве­ром баз данных.

Как настроить Rsyslog с MySQL по шагам:

1. Установите Apache, MySQL и PHP

Нам нуж­но уста­но­вить Rsyslog и MySQL, выпол­ним сле­ду­ю­щую коман­ду для CentOS / RHEL

# yum install mysql-server rsyslog rsyslog-mysql

И такую коман­ду, если Вы на Debian / Ubuntu и подоб­ных системах

# apt install mysql-server rsyslog rsyslog-mysql

Выпол­ни­те сле­ду­ю­щие коман­ды для запус­ка и авто­ма­ти­че­ско­го запус­ка при пере­за­груз­ке систе­мы (на вся­кий слу­чай отклю­чим стан­дарт­ный syslog, если он установлен)

Для CentOS / RHEL

# service mysql start
# service rsyslog start
# chkconfig rsyslog on
# chkconfig mysqld on
# service syslog stop
# chkconfig syslog off

И коман­ды для Debian / Ubuntu сов­ме­сти­мых систем

# service mysql start
# service rsyslog start
# update-rc.d rsyslog defaults
# update-rc.d mysql defaults
# service syslog stop
# update-rc.d syslog remove
Если вы уста­нав­ли­ва­е­те MySQL в пер­вый раз, вам необ­хо­ди­мо уста­но­вить пароль root для защи­ты уста­нов­ки MySQL.

# mysqladmin -u root password 'MYSQLPASSWORD'

2. Создайте пользователя базы данных Rsyslog

Rsyslog пона­до­бит­ся база дан­ных MySQL для хра­не­ния сво­их дан­ных. Он уже предо­став­ля­ет скрипт, кото­рый авто­ма­ти­че­ски созда­ет необ­хо­ди­мую базу дан­ных с таб­ли­ца­ми для Rsyslog. Вы може­те запу­стить его с помо­щью сле­ду­ю­щей команды.

# mysql -u root -p < /usr/share/doc/rsyslog-mysql-4.8.10/createDB.sql

При­ве­ден­ная выше коман­да создаст базу дан­ных с име­нем syslog. Пожа­луй­ста, напи­ши­те имя дирек­то­рии rsyslog в соот­вет­ствии с вашей систе­мой. Мы исполь­зо­ва­ли вер­сию 4.8.10.

Вы може­те лег­ко най­ти пол­ный путь к фай­лу скрип­та createDB.sql, исполь­зуя сле­ду­ю­щую команду

# find / -name createDB.sql

Далее создай­те поль­зо­ва­те­ля базы дан­ных со сле­ду­ю­щей коман­дой. Заме­ни­те ПАРОЛЬ паро­лем базы дан­ных по ваше­му выбору.

3. Настройка Rsyslog с MySQL

Далее мы редак­ти­ру­ем файл кон­фи­гу­ра­ции Rsyslog и вклю­ча­ем модуль MySQL в Rsyslog. Мы так­же долж­ны предо­ста­вить ему дан­ные поль­зо­ва­те­ля базы дан­ных MySQL для авто­ма­ти­че­ско­го вхо­да в систе­му. Открой­те файл Rsyslog в тек­сто­вом редакторе.

# vim /etc/rsyslog.conf

Добавь­те к нему сле­ду­ю­щие стро­ки (нажми­те i для вхо­да в режим прав­ки). Заме­ни­те ПАРОЛЬ паро­лем базы дан­ных, кото­рый уста­но­ви­ли выше.

$ModLoad ommysql
*.* :ommysql:127.0.0.1,Syslog,rsyslog,
PASSWORD

Сохра­ни­те и закрой­те файл. Пере­за­гру­зи­те Rsyslog с помо­щью MySQL.

# service rsyslog restart

Вот и все. Теперь все ваши жур­на­лы MySQL будут хра­нить­ся на сер­ве­ре syslog. В нашей сле­ду­ю­щей ста­тье мы рас­ска­жем, как уста­но­вить Loganalyzer с Rsyslog и MySQL, что­бы вы мог­ли лег­ко читать логи системы.