Rsyslog & MySQL & CentOS7

Рецепт приготовления Rsyslog с MySQL под соусом CentOS 7

Привет!

 

Берем консоль, мелкими буквами вводим

1
2
3
4
yum clean all
yum upgrade -y
yum install epel-release -y
yum upgrade -y

Далее на главном сервере ставим Rsyslog-сервер и плагин для работы с MySQL:

1
yum install rsyslog-mysql

Далее сохраняем стандартный конфиг, а вместо него создаем мой:

1
2
mv /etc/rsyslog.conf /etc/rsyslog.original
touch /etc/rsyslog.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see //www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark  # provides --MARK-- message capability
$ModLoad ommysql
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#$ActionFileEnableSync on
$IncludeConfig /etc/rsyslog.d/*.conf

$OmitLocalLogging on
$IMJournalStateFile imjournal.state


#### RULES ####
#kern.*                                                 /dev/console
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
*.* :ommysql:127.0.0.1,Syslog,Syslog,3a6907cb829ada54f2202165cabd2017
$AllowedSender UDP, 127.0.0.1, 10.10.10.0/24
$AllowedSender TCP, 127.0.0.1, 10.10.10.0/24

(не забываем указать свои подсети вместо 10.10.10.0/24)

Заводим спец учетку юзера в MySQL (мы крутые пацаны это делаем только из консоли(:):

1
mysql
1
2
3
GRANT ALL ON Syslog.* TO Syslog@localhost IDENTIFIED BY '3a6907cb829ada54f2202165cabd2017';
FLUSH privileges;
exit;

Не забываем указать свой пароль вместо 3a6907cb829ada54f2202165cabd2017 (это md5-сумма, в оригинале спрятан купон на 50 WMZ).

Создаем базу Syslog и импортируем структуру таблиц:

1
mysql -u root -p < /usr/share/doc/rsyslog-mysql-*/createDB.sql

Заменяем syslog на rsyslog:

1
2
3
4
systemctl disable syslog
systemctl enable rsyslog
systemctl stop syslog
systemctl restart rsyslog

Разрешаем подключение по 514 порту (TCP+UDP). На моем сервере подсеть 10.10.10.0/24 введена в группу trusted, по этому я делаю так:

1
2
firewall-cmd --zone=trusted --add-port=514/tcp
firewall-cmd --zone=trusted --add-port=514/udp

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

Настраиваем клиент rsyslog

1
yum install rsyslog -y

И добавлем в самый низ файла /etc/rsyslog.conf строку:

1
*.*     @@10.10.10.2

Где 10.10.10.2 – IP нашего syslog-сервера

Заменяем syslog на rsyslog:

1
2
3
4
systemctl disable syslog
systemctl enable rsyslog
systemctl stop syslog
systemctl restart rsyslog