Передача многострочных файлов при помощи rsyslog
Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.
В примере был использован лог Firebird, его изначальный вид:
Пример лога
2025-05-09T01:00:10.7510 (20580:0x7f5c02298210) EXECUTE_STATEMENT_START
/opt/firebird_test/mydatabase.fdb (ATT_85882, SYSDBA:NONE, NONE, <internal>)
(TRA_424990, READ_COMMITTED | NO_REC_VERSION | WAIT | READ_WRITE)
-------------------------------------------------------------------------------
CREATE TABLE test (id INT, name VARCHAR(30))
Для получения многострочных файлов понадобится файл конфигурации, его необходимо создать в папке /etc/rsyslog.d/conf_firebird.conf
module(load="imfile")
template(name="raw_frbd" type="string" string="%hostname% %msg%")
# File firebird
input(type="imfile"
File="/var/log/app1.log"
tag="frbd_log"
startmsg.regex="^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{4}"
ruleset="forward_to_remote")
# Rules send to KUMA collector
ruleset(name="forward_to_remote") {
action(type="omfwd"
Target="10.10.10.10"
Port="5001"
Protocol="tcp"
Template="raw_frbd"
queue.type="linkedlist"
queue.size="10000")
}
В зависимости от содержимого файла необходимо будет корректно подобрать регулярное выражение в параметре:
startmsg.regex="your_regex"
No Comments