Настройка Syslog-ng на Unix системах
Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.
Создание коллектора KUMA
Для началасоздания необходимоколлектора провритьв установленавеб-интерфейсе нужная служба Syslog-ng, посмотрим статус службы:KUMA:
systemctlВ случаеполе отсутствияURL службыможно необходимоуказать установитьтолько следующиепорт пакеты:при инсталляции All-in-one.
apt-get install syslog-ng
Установка коллектора KUMA
Чтобы установить коллектор KUMA:
sudofirewall-cmd systemctl--add-port=<порт, startвыбранный syslog-ngдля sudoколлектора>/tcp|udp systemctl enable syslog-ng–permanent
firewall-cmd –reload
ufw allow <порт, выбранный для коллектора>/tcp|udp
ufw reload
Настройка источника событий
ВДля передачи событий c рабочей станции/сервера в коллектор KUMA будет использоваться сервис syslog-ng.
systemctl status rsyslog.service
apt install syslog-ng
systemctl enable syslog-ng.service
systemctl start syslog-ng.service
- Для отправки событий по протоколу TCP
# syslog-ng audit forwarding to KUMA (TCP)
# Version: 1
# Date: 26.01.2026
# Purpose: Forward auditd logs without parsing, loss-minimized
source s_audit {
file("/var/log/audit/audit.log"
flags(no-parse) # Читаем audit.log без парсинга (flags(no-parse)), чтобы "не ломать" формат auditd.
follow-freq(1)
tags("tag_audit_log")
persist-name("kuma_audit_source")); # Необходим для сохранения состояния источника между рестартами syslog-ng.
};
template t_audit_format {
template("<134>${ISODATE} ${HOST} auditd ${MSG}\n"); # <PRI> задан вручную, т.к. при flags(no-parse) ${PRI} не извлекается из события. Тег auditd задан руками, иначе будет дефолтное 0d.
template_escape(no);
};
destination d_kuma {
tcp("<IP-адрес/FQDN коллектора KUMA>" port(<Порт коллектора KUMA>)
template(t_audit_format)
disk-buffer(
mem-buf-size(10000) # Размер буфера в RAM, в количестве сообщений. Пока есть место — ничего не пишется на диск. Можно увеличить при большом потоке событий.
disk-buf-size(1G) # Максимальный размер буфера на диске. Когда RAM-буфер будет заполнен, запись продолжится на диск. Можно увеличить при большом потоке событий.
reliable(yes) # Для гарантированной доставки. События не теряются при рестаре syslog-ng, проблем с сетью, перезапуске коллектора.
)
);
};
filter f_audit_kuma {
tags("tag_audit_log");
};
log {
source(s_audit);
filter(f_audit_kuma);
destination(d_kuma);
};
-
- Для отправки событий по протоколу UDP
# syslog-ng audit forwarding to KUMA (UDP)
# Version: 1
# Date: 26.01.2026
# Purpose: Forward auditd logs without parsing, loss-minimized
source s_audit {
file("/var/log/audit/audit.log"
flags(no-parse) # Читаем audit.log без парсинга (flags(no-parse)), чтобы "не ломать" формат auditd.
follow-freq(1)
tags("tag_audit_log")
persist-name("kuma_audit_source")); # Необходим для сохранения состояния источника между рестартами syslog-ng.
};
template t_audit_format {
template("<134>${ISODATE} ${HOST} auditd ${MSG}\n"); # <PRI> задан вручную, т.к. при flags(no-parse) ${PRI} не извлекается из события. Тег auditd задан руками, иначе будет дефолтное 0d.
template_escape(no);
};
destination d_kuma {
udp("<IP-адрес/FQDN коллектора KUMA>" port(<Порт коллектора KUMA>)
template(t_audit_format)
disk-buffer(
mem-buf-length(10000) # Размер буфера в RAM, в количестве сообщений. Пока есть место — ничего не пишется на диск. Можно увеличить при большом потоке событий.
disk-buf-size(1G) # Максимальный размер буфера на диске. Когда RAM-буфер будет заполнен, запись продолжится на диск. Можно увеличить при большом потоке событий.
)
);
};
filter f_audit_kuma {
tags("tag_audit_log");
};
log {
source(s_audit);
filter(f_audit_kuma);
destination(d_kuma);
};
syslog-ng -s
systemctl restart syslog-ng
Рабочая станция/сервер Linux настроен. События передаются в коллектор KUMA.
Проверка отправкипоступления сообщениясобытий Linux в KUMA
logger
Это сообщение должно появиться в системном журнале, например /var/log/messages:
Дополнительная информация
Обычно в конфиграции /etc/syslog-ng/syslog-ng.conf в s_src содержится 2 типа журналов
source s_src {
system(); # системный журнал
internal(); # внутренние сообщения журнала syslog-ng
};Для задания шаблона сообщения можно использовать следующее:
template LogglyFormat { template("<${PRI}>1 ${ISODATE} ${HOST} ${PROGRAM} ${PID} ${MSGID} [TOKEN@41058 tag=\"TAG\" ] $MSG\n");
template_escape(no);
};destination d_loggly {
tcp("logs-01.loggly.com" port(514) template(LogglyFormat));
};














