Пример проводится на:
# rsyslogd -v
rsyslogd 5.8.10, compiled with:
Система:
# cat /etc/redhat-release
CentOS release 6.4 (Final)
У нас имеется файл /var/log/mysql/mysql-error.log
, содержимое которого мы хотим отслеживать с помощью rsyslog
и передавать его на удалённый сервер логгирования.
Добавляем «под наблюдение» файл. Создадим файл /etc/rsyslog.d/mysql-watch.conf
с таким содержимым:
05 |
$InputFileName /var/log/mysql/mysql-error.log |
07 |
$InputFileStateFile mysqllog1 |
08 |
$InputFileFacility local3 |
10 |
$InputFileSeverity warning |
12 |
$InputFilePollInterval 1 |
Тут:
InputFileName
(обязательный параметр) — указание файла, который нужно наблюдать;
InputFileTag
(обязательный параметр) — тег, который будет использоваться для записей, полученных из этого файла;
InputFileStateFile
— файл, с помощью которого rsyslog
будет определять появлении новых записей (точнее — записывать свою «позицию» в файле);
InputFileFacility
— facility, который будет использоваться для данных, полученных из этого файла;
InputFileSeverity
— уровень важности;
InputRunFileMonitor
— обязательный параметр, который «запускает» наблюдение — без него просто не будет работать (уберите, что бы временно приостановить);
InputFilePollInterval
— промежуток времени в секундах, через который будет «опрашиваться» файл о появлении новых данных;
InputFileReadMode
— определение типа содержимого файла — может быть 0, 1
или 2
:
0 (по-умолчанию) — line based, каждая новая линия — новая запись лога;
1 — paragraph, между сообщениями содержаться пустые строки;
2 — indented — новые сообщения начинаются с новой строки, если строка начинается с пробела — она считается продолжением предыдущей записи.
И в последней строке — указываем действие для этого facility
, в данном случае — отправляем на хост logger по UDP
.
Можно сразу писать в базу MySQL, в таком случае:
1 |
local3.* :ommysql:localhost,Syslog,rsyslog,MegaPassword |
Проверяем конфиг rsyslog
:
2 |
rsyslogd: version 5.8.10, config validation run (level 1), master config /etc/rsyslog.conf |
3 |
rsyslogd: WARNING: rsyslogd is running in compatibility mode. Automatically generated config directives may interfer with your rsyslog.conf settings. We suggest upgrading your config and adding -c5 as the first rsyslogd option. |
4 |
rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad immark |
5 |
rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: MarkMessagePeriod 1200 |
6 |
rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad imuxsock |
7 |
rsyslogd: End of config validation run. Bye. |
И перезапускаем его:
2 |
Shutting down system logger: [ OK ] |
3 |
Starting system logger: |
Читайте другие интересные статьи