방금 시스템을 다시 시작할 때 이 경고가 표시되었습니다.
:: Starting Syslog-NG [BUSY]
WARNING: Configuration file format is too old, please update it to use the 3.2 format as some constructs might operate inefficiently;
WARNING: the expected message format is being changed for unix-domain transports to improve syslogd compatibity with syslog-ng 3.2. If you are using custom applications which bypass the syslog() API, you might need the 'expect-hostname' flag to get the old behaviour back;
형식 변환에 대한 좋은 자료를 아는 사람이 있나요? 내 syslog-ng.conf
주요 출처는 다음과 같습니다.젠투 보안 매뉴얼따라서 해당 파일을 사용하는 것만으로는 .pacnew
작동하지 않습니다.
이것은 내 현재 conf 파일입니다
@version: 3.0
#
# /etc/syslog-ng.conf
#
options {
stats_freq (0);
flush_lines (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames(off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
perm(0640);
group("log");
};
source src {
unix-stream("/dev/log");
internal();
file("/proc/kmsg");
};
destination d_authlog { file("/var/log/auth.log"); };
destination d_syslog { file("/var/log/syslog.log"); };
destination d_cron { file("/var/log/crond.log"); };
destination d_daemon { file("/var/log/daemon.log"); };
destination d_kernel { file("/var/log/kernel.log"); };
destination d_lpr { file("/var/log/lpr.log"); };
destination d_user { file("/var/log/user.log"); };
destination d_uucp { file("/var/log/uucp.log"); };
destination d_mail { file("/var/log/mail.log"); };
destination d_news { file("/var/log/news.log"); };
destination d_ppp { file("/var/log/ppp.log"); };
destination d_debug { file("/var/log/debug.log"); };
destination d_messages { file("/var/log/messages.log"); };
destination d_errors { file("/var/log/errors.log"); };
destination d_everything { file("/var/log/everything.log"); };
destination d_iptables { file("/var/log/iptables.log"); };
destination d_acpid { file("/var/log/acpid.log"); };
destination d_console { usertty("root"); };
# Log everything to tty12
destination console_all { file("/dev/tty12"); };
#destination knotifier { program('/usr/local/bin/knotifier'); };
filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { program(syslog-ng); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kernel { facility(kern) and not filter(f_iptables); };
filter f_lpr { facility(lpr); };
filter f_mail { facility(mail); };
filter f_news { facility(news); };
filter f_user { facility(user); };
filter f_uucp { facility(cron); };
filter f_news { facility(news); };
filter f_ppp { facility(local2); };
filter f_debug { not facility(auth, authpriv, news, mail); };
filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news, cron) and not program(syslog-ng) and not filter(f_iptables); };
filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };
filter f_emergency { level(emerg); };
filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_crit { level(crit); };
filter f_err { level(err); };
filter f_iptables { match("IN=" value("MESSAGE")) and match("OUT=" value("MESSAGE")); };
filter f_acpid { program("acpid"); };
log { source(src); filter(f_acpid); destination(d_acpid); };
log { source(src); filter(f_authpriv); destination(d_authlog); };
log { source(src); filter(f_syslog); destination(d_syslog); };
log { source(src); filter(f_cron); destination(d_cron); };
log { source(src); filter(f_daemon); destination(d_daemon); };
log { source(src); filter(f_kernel); destination(d_kernel); };
log { source(src); filter(f_lpr); destination(d_lpr); };
log { source(src); filter(f_mail); destination(d_mail); };
log { source(src); filter(f_news); destination(d_news); };
log { source(src); filter(f_ppp); destination(d_ppp); };
log { source(src); filter(f_user); destination(d_user); };
log { source(src); filter(f_uucp); destination(d_uucp); };
#log { source(src); filter(f_debug); destination(d_debug); };
log { source(src); filter(f_messages); destination(d_messages); };
log { source(src); filter(f_err); destination(d_errors); };
log { source(src); filter(f_emergency); destination(d_console); };
log { source(src); filter(f_everything); destination(d_everything); };
log { source(src); filter(f_iptables); destination(d_iptables); };
#log { source(src); filter(f_messages); destination(knotifier); };
# Log everything to tty12
log { source(src); destination(console_all); };
답변1
3.2의 이러한 변경 사항과 관련이 있을 수 있습니다.
- syslog-ng에는 전통적으로 syslog 메시지가 로컬 전송(예: /dev/log)에서 수신되는 경우에도 선택적 호스트 이름 필드가 필요합니다. 그러나 현재 이 필드를 포함하는 UNIX 버전은 없습니다. 이로 인해 로그 메시지를 생성하는 응용 프로그램의 프로그램 이름 필드에 공백이 있으면 문제가 발생합니다. 구성 버전이 3.2이고 특정 소스에 대해 명시적인 "expect-hostname" 플래그를 사용하여 복원할 수 있는 경우 unix-stream/unix-dgram/pipe 드라이버의 이 동작이 변경되었습니다.
소스에서 unix-stream("/dev/log")을 사용하고 있기 때문에 경고가 표시됩니다. 로컬 로그에 문제가 발생하지 않으면 첫 번째 줄을 @version: 3.2로 변경하는 것 외에 다른 작업을 수행할 필요가 없습니다.
배포판이 /dev/log의 로그 메시지에 호스트 이름을 추가하는 경우(거의 발생하지 않음) 소스 코드에 플래그(expect-hostname)를 포함합니다.
인사,
Robert Fekete syslog-ng 문서 관리자