rsyslog - добавление лог файла

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

Зада­ча - пере­ки­ды­вать систем­ные логи в цен­траль­ный сер­вер логи­ро­ва­ния, в нашем слу­чае это fluent но это не важ­но так как его тут затра­ги­вать не будем.

У нас име­ют­ся лог файлы:
/var/log/ceph/ceph-osd.0.log
/var/log/ceph/ceph-mds.node1.log
/var/log/ceph/ceph-mgr.node1.log
/var/log/ceph/ceph-mon.node1.log
содер­жи­мое кото­рых мы хотим отсле­жи­вать с помо­щью rsyslog и пере­да­вать его на уда­лён­ный сер­вер логирования.

Для это­го, созда­дим файлы
/etc/rsyslog.d/ceph-ceph-osd.conf
/etc/rsyslog.d/ceph-mds.conf
/etc/rsyslog.d/ceph-mgr.conf
/etc/rsyslog.d/ceph-mon.conf

с таким содержимым:

cat /etc/rsyslog.d/ceph-ceph-osd.conf

[spoiler]$ModLoad imfile
$InputFileName /var/log/ceph/ceph-osd.0.log
$InputFileTag ceph-mgr.node1:
$InputFileStateFile ceph-osd.node1log1
$InputFileFacility local3
$InputFileSeverity warning
$InputRunFileMonitor
$InputFilePollInterval 10
local3.* @logger[/spoiler]

cat /etc/rsyslog.d/ceph-mds.conf

[spoiler]
$ModLoad imfile
$InputFileName /var/log/ceph/ceph-mds.node1.log
$InputFileTag ceph-mds.node1:
$InputFileStateFile ceph-mds.node1log1
$InputFileFacility local3
$InputFileSeverity warning
$InputRunFileMonitor
$InputFilePollInterval 10
local3.* @logger
[/spoiler]

cat /etc/rsyslog.d/ceph-mgr.conf

[spoiler]
$ModLoad imfile
$InputFileName /var/log/ceph/ceph-mgr.node1.log
$InputFileTag ceph-mgr.node1:
$InputFileStateFile ceph-mgr.node1log1
$InputFileFacility local3
$InputFileSeverity warning
$InputRunFileMonitor
$InputFilePollInterval 10
local3.* @logger
[/spoiler]

 

cat /etc/rsyslog.d/ceph-mon.conf

[spoiler]

$ModLoad imfile
$InputFileName /var/log/ceph/ceph-mon.node1.log
$InputFileTag ceph-mon.node1:
$InputFileStateFile ceph-mon.node1log1
$InputFileFacility local3
$InputFileSeverity warning
$InputRunFileMonitor
$InputFilePollInterval 10
local3.* @logger
[/spoiler]

Тут:

InputFileName (обя­за­тель­ный пара­метр) — ука­за­ние фай­ла, кото­рый нуж­но наблюдать;
InputFileTag (обя­за­тель­ный пара­метр) — тег, кото­рый будет исполь­зо­вать­ся для запи­сей, полу­чен­ных из это­го файла;
InputFileStateFile — файл, с помо­щью кото­ро­го rsyslog будет опре­де­лять появ­ле­нии новых запи­сей (точ­нее — запи­сы­вать свою «пози­цию» в файле);
InputFileFacility — facility, кото­рый будет исполь­зо­вать­ся для дан­ных, полу­чен­ных из это­го файла;
InputFileSeverity — уро­вень важности;
InputRunFileMonitor — обя­за­тель­ный пара­метр, кото­рый «запус­ка­ет» наблю­де­ние — без него про­сто не будет рабо­тать (убе­ри­те, что бы вре­мен­но приостановить);
InputFilePollInterval — про­ме­жу­ток вре­ме­ни в секун­дах, через кото­рый будет «опра­ши­вать­ся» файл о появ­ле­нии новых данных;
InputFileReadMode — опре­де­ле­ние типа содер­жи­мо­го фай­ла — может быть 0, 1 или 2:

0 (по-умол­ча­нию) — line based, каж­дая новая линия — новая запись лога;

1 — paragraph, меж­ду сооб­ще­ни­я­ми содер­жать­ся пустые строки;

2 — indented — новые сооб­ще­ния начи­на­ют­ся с новой стро­ки, если стро­ка начи­на­ет­ся с про­бе­ла — она счи­та­ет­ся про­дол­же­ни­ем преды­ду­щей записи.

И в послед­ней стро­ке — ука­зы­ва­ем дей­ствие для это­го facility, в дан­ном слу­чае — отправ­ля­ем на хост logger по UDP.

Про­ве­ря­ем кон­фиг rsyslog:
rsyslogd -N1
И пере­за­пус­ка­ем его:
systemctl restart rsyslog