Lỗi sử dụng cú pháp mẫu rsyslog mới trên RHEL6


8

Tôi đang di chuyển cấu hình rsyslog của chúng tôi từ một máy chủ cũ sang một máy chủ mới và nghĩ rằng tôi sẽ sử dụng cơ hội để dọn dẹp cấu hình của chúng tôi. Cấu hình cũ đã sử dụng các định nghĩa mẫu "kế thừa" và tài liệu rsyslog trên các mẫu khuyên bạn nên thay thế các định nghĩa đó bằng cú pháp mẫu mới, vì vậy đó là những gì tôi đã cố gắng thực hiện.

Tôi chỉ đơn giản là không thể làm cho nó hoạt động được, và các lỗi tôi gặp phải khi cố gắng khởi động rsyslog không có ý nghĩa gì. Vì vậy, có vẻ như tôi đã hiểu sai về cơ bản các tài liệu rsyslog, hoặc có điều gì đó buồn cười về gói rsyslog có trong RHEL6.

Đây là mẫu kế thừa tôi đang cố gắng cập nhật:

$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

Đây là nỗ lực của tôi tại cùng một khuôn mẫu trong cú pháp mới khi đọc tài liệu 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%')"
)

Đây là những lỗi tôi gặp phải khi khởi động 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!

Câu trả lời:


8

Chà, câu trả lời khá đơn giản (và có lẽ không thỏa đáng). Cú pháp mới không được hỗ trợ trong phiên bản cũ này. Bạn cần ít nhất v6, nhưng để sử dụng tất cả các tính năng v7 là bắt buộc. Cho đến nay, Red Hat không gửi những thứ này cho RHEL. Để thay thế, bạn có thể sử dụng các gói rsyslog: http://www.rsyslog.com/rhelcentos-rpms/

Cũng xin lưu ý rằng tài liệu trên http://www.rsyslog.com/doc luôn dành cho phiên bản HIỆN TẠI NHẤT. Tuy nhiên, mỗi phiên bản có bộ tài liệu riêng. Rõ ràng là tốt hơn để tham khảo bộ tài liệu đi kèm với phiên bản của bạn. Hầu hết các distro không cài đặt nó theo mặc định, nhưng thường có một gói được đặt tên dọc theo dòng của rsyslog-doc.


7

Tính đến tháng 9 năm 2015, có các gói rsyslog7 có sẵn trong RHEL6. Phiên bản hiện tại của rsyslog là 8.11, nhưng phiên bản này ít nhất là gần với hiện tại.

Để cài đặt, trước tiên bạn phải xóa gói rsyslog của mình:

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

0

Bạn có thể thêm rsyslog yum repo và sau đó cập nhật rsyslog trực tiếp để bạn không phải gỡ cài đặt nó.

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 file để tham khảo:

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

Tín dụng:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.