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 http://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 |