
Я новичок в syslog-ng
, и я настраиваю syslog-ng
, где я получаю журналы syslog
, auth.log
и dpkg.log
. Хотя я смог получить журналы для syslog
и auth.log
, но я не могу записать dpkg
журналы в отдельный файл, и он записывается как в dpkg
файлы журналов, так и в syslog
файлы журналов. Файл конфигурации для сервера выглядит следующим образом:
options {
create_dirs(yes);
owner(root);
group(root);
perm(0640);
dir_owner(root);
dir_group(root);
dir_perm(0750);
};
source s_dl {
network (
transport("tcp")
port(3993)
);
};
filter f_dpkg{
tags("dpkg");
};
destination d_host-specific {
file("/var/log/servers/$HOST/$YEAR/$MONTH/$HOST-$YEAR-$MONTH-$DAY.log");
};
destination d_syslog {
file("/var/log/servers/$HOST/$YEAR/$MONTH/$HOST-$YEAR-$MONTH-$DAY-syslog.log");
};
destination d_dpkg {
file("/var/log/servers/$HOST/$YEAR/$MONTH/$HOST-$YEAR-$MONTH-$DAY-dpkg.log");
};
log {
source(s_dl);
filter(f_auth);
destination(d_host-specific);
};
log {
source(s_dl);
filter(f_syslog3);
destination(d_syslog);
};
log{
source(s_dl);
filter(f_dpkg);
destination(d_dpkg);
};
Файл конфигурации для клиента syslog-ng выглядит следующим образом:
source s_dpkg {
file('/var/log/dpkg.log'); tags('dpkg'));
};
destination d_net { tcp("192.168.48.15" port(3993)); };
filter f_tag { tags("dpkg"); };
log { source(s_src); filter(f_auth); destination(d_net);};
log { source(s_src); filter(f_syslog3); destination(d_net);};
log { source(s_dpkg); filter(f_test); destination(d_net);};
Может ли кто-нибудь указать мне, где моя ошибка или как правильно получить подробности. Примечание: мне нужно использовать один и тот же порт для приема всех журналов одного хоста, так как я не могу продолжать добавлять новые порты для приема разных журналов с одной и той же машины.
решение1
Проблема в том, что тег, который ваш клиент добавляет к сообщениям dpkg, не передается на сервер (поскольку он не является частью исходного сообщения).
Также мне кажется, что вся эта маркировка нужна, потому что оригинальные логи dpkg не заполняют поле PROGRAM сообщений syslog. Так что самый простой способ решить проблему IMHO:
- Используйте опцию program-override("dpkg") в исходном s_dpkg на клиенте (https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-source-file.html#idm45439656585216) для правильной установки поля PROGRAM в сообщениях dpkg
- На сервере используйте фильтр program("dpkg") вместо фильтра tags.
НТН