rsyslog: добавление наблюдения за файлом в конфигурацию

Опубликовано:

Пример проводится на:

# 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 с таким содержимым:

01 # /etc/rsyslog.d/mysql-watch.conf
02
03 $ModLoad imfile
04
05 $InputFileName /var/log/mysql/mysql-error.log
06 $InputFileTag mysql:
07 $InputFileStateFile mysqllog1
08 $InputFileFacility local3
09
10 $InputFileSeverity warning
11 $InputRunFileMonitor
12 $InputFilePollInterval 1
13
14 local3.* @logger

Тут:

InputFileName (обязательный параметр) — указание файла, который нужно наблюдать;
InputFileTag (обязательный параметр) — тег, который будет использоваться для записей, полученных из этого файла;
InputFileStateFile — файл, с помощью которого rsyslog будет определять появлении новых записей (точнее — записывать свою «позицию» в файле);
InputFileFacilityfacility, который будет использоваться для данных, полученных из этого файла;
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:

1 # rsyslogd -N1
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.

И перезапускаем его:

1 # service rsyslog restart
2 Shutting down system logger:                               [  OK  ]
3 Starting system logger: 

Понравилась статья, расскажи о ней друзьям, нажми кнопку!