Назад | Перейти на главную страницу

syslog-ng работает как процесс переднего плана, но не как демон

Я работаю над внедрением операционной системы syslog-ng в своей среде. В конце концов, я хотел бы настроить центральный сервер регистрации, но, чтобы немного размочить, я начинаю с простой конфигурации. Я создал конфигурацию, содержащую один источник, одно место назначения и один журнал. Когда я выполняю syslog-ng -F (как процесс переднего плана через cli) Я получаю ожидаемые результаты (все системные сообщения регистрируются в / var / log / messages). Однако, если я запускаю его как демон (через systemctl), я не получаю все ожидаемые системные сообщения. Странно то, что я все еще получаю сообщения от ядра. Вот моя простая конфигурация:

@version:3.5
@include "scl.conf"
source s_sys { system(); internal(); };
destination d_mesg { file("/var/log/messages"); };
log { source(s_sys); destination(d_mesg); };

Как видите, у меня не установлено никаких фильтров. Я подтвердил, что служба работает через systemctl status syslog-ng и это. Я убедился, остановил и удалил всех остальных демонов ведения журнала.

syslog-ng.service - System Logger Daemon
   Loaded: loaded (/usr/lib/systemd/system/syslog-ng.service; enabled;     vendor preset: enabled)
   Active: active (running) since Sun 2016-02-28 17:15:07 EST; 21min ago
     Docs: man:syslog-ng(8)
 Main PID: 3416 (syslog-ng)
   CGroup: /system.slice/syslog-ng.service
           └─3416 /usr/sbin/syslog-ng -F -p /var/run/syslogd.pid

Моя ОС - CentOS 7.2. Любая помощь будет принята с благодарностью.

Другое возможное решение - обновить syslog-ng до более поздней версии. Начиная с syslog-ng 3.7, он может читать журнал systemd напрямую.

https://www.syslog-ng.com/community/b/blog/posts/installing-latest-syslog-ng-on-rhel-and-other-rpm-distributions

NevDull, спасибо за ваш вклад. Это помогло мне решить следующую проблему, похожую на эту:

syslog-ng не может перехватить сообщения, выданные командой logger при работе под управлением systemctl. Но он работает так, как ожидалось, когда вы проходите через терминал, следующим образом:

systemctl stop syslog-nd 
syslog-ng -Fevd
logger -p mail.info "I'm testing..." [need to open a new terminal session]
cat /var/log/maillog

В результате вы можете увидеть свое сообщение «Я тестирую ...» в файле / var / log / maillog.

Отредактировав файл "/etc/systemd/journald.conf", как вы рекомендовали, проблема была решена.

Спасибо, что поделился