RHEL6에서 새로운 rsyslog 템플릿 구문 사용시 오류


8

rsyslog 구성을 이전 서버에서 새 서버로 마이그레이션하고 있는데,이 구성을 정리할 수있는 기회를 사용할 것이라고 생각했습니다. 이전 구성에서는 "레거시"템플릿 정의를 사용했으며 템플릿의 rsyslog 문서에서는 이러한 정의를 새 템플릿 구문으로 바꾸는 것이 좋습니다.

나는 그것을 작동시킬 수 없으며 rsyslog를 시작할 때 발생하는 오류는 의미가 없습니다. 따라서 기본적으로 rsyslog 문서를 오해 한 것으로 보이거나 RHEL6에 포함 된 rsyslog 패키지에 대해 재미있는 것이 있습니다.

이것은 업데이트하려는 기존 템플릿입니다.

$template secureTemplate,"INSERT INTO var_log_secure (received_at, source_ip, source_hostname, logged_at, severity, service, message, severity_int, syslogtag) VALUES ('%timegenerated:::date-rfc3339%', '%fromhost-ip%', '%hostname%', '%timereported:::date-rfc3339%', '%syslogseverity-text%', '%programname%', '%msg%', '%syslogseverity%', '%syslogtag%')",STDSQL

이것은 rsyslog 문서를 읽은 새로운 구문의 동일한 템플릿에서 시도한 것입니다.

template(name="secureTemplate" type="string" option.stdsql="on"
  string="INSERT INTO var_log_secure (received_at, source_ip, source_hostname, logged_at, severity, service, message, severity_int, syslogtag) values ('%timegenerated:::date-rfc3339%', '%fromhost-ip%', '%hostname%', '%timereported:::date-rfc3339%', '%syslogseverity-text%', '%programname%', '%msg%', '%syslogseverity%', '%syslogtag%')"
)

rsyslog 시작시 발생하는 오류는 다음과 같습니다.

rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="4491" x-info="http://www.rsyslog.com"] start
 rsyslogd-3000:unknown priority name "stdsql="on"" [try http://www.rsyslog.com/e/3000 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 49:"template(name="secureTemplate" type="string" option.stdsql="on""
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-3000:unknown priority name "" [try http://www.rsyslog.com/e/3000 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 50:"  string="INSERT INTO var_log_secure (received_at, source_ip, source_hostname, logged_at, severity, service, message, severity_int, syslogtag) values ('%timegenerated:::date-rfc3339%', '%fromhost-ip%', '%hostname%', '%timereported:::date-rfc3339%', '%syslogseverity-text%', '%programname%', '%msg%', '%syslogseverity%', '%syslogtag%')""
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-3000:unknown priority name "" [try http://www.rsyslog.com/e/3000 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 51:")"
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-3003: Could not find template 'secureTemplate' - action disabled
 [try http://www.rsyslog.com/e/3003 ]
 rsyslogd:the last error occured in /etc/rsyslog.conf, line 55:"then    :ompgsql:127.0.0.1,rsyslog,rsyslog,+Without-Goodbye-22+;secureTemplate"
 rsyslogd:warning: selector line without actions will be discarded
 rsyslogd-2124:CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'. [try http://www.rsyslog.com/e/2124 ]
 rsyslogd:EMERGENCY CONFIGURATION ACTIVATED - fix rsyslog config file!

답변:


8

글쎄, 대답은 다소 간단하다 (아마도 불만족 스럽다). 이 이전 버전에서는 새 구문이 지원되지 않습니다. v6 이상이 필요하지만 모든 기능을 사용하려면 v7이 필요합니다. 지금까지 Red Hat은 RHEL 용으로 이것을 제공하지 않습니다. 대안으로 rsyslog rpm 패키지를 사용할 수 있습니다. http://www.rsyslog.com/rhelcentos-rpms/

또한 http://www.rsyslog.com/doc 의 문서 는 항상 가장 최신 버전입니다. 그러나 각 버전에는 고유 한 문서 세트가 있습니다. 버전과 함께 제공되는 문서 세트를 참조하는 것이 좋습니다. 대부분의 배포판은 기본적으로 설치하지 않지만 일반적으로 rsyslog-doc 라인에 이름이 지정된 패키지가 있습니다.


7

2015 년 9 월 현재 RHEL6에는 rsyslog7 패키지가 있습니다. rsyslog의 현재 버전은 8.11이지만이 버전은 현재에 가장 가깝습니다.

설치하려면 먼저 rsyslog 패키지를 제거해야합니다.

# rpm -e --nodeps rsyslog
# yum -y install rsyslog7

0

rsyslog yum repo를 추가 한 다음 rsyslog를 직접 업데이트하여 제거 할 필요가 없습니다.

cd /etc/yum.repos.d/
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo
yum update rsyslog

...

Updating:
rsyslog                                    x86_64                               8.35.0-2.el6   

참조 용 Repo 파일 :

cat rsyslog.repo 
[rsyslog_v8]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1

크레딧 :

http://osengineer.blogspot.com/2014/01/install-rsyslog7-to-centos6.html https://www.rsyslog.com/rhelcentos-rpms/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.