Galat menggunakan sintaks templat rsyslog baru di RHEL6

8

Saya memigrasikan konfigurasi rsyslog kami dari server lama ke yang baru, dan saya pikir saya akan menggunakan kesempatan ini untuk merapikan konfigurasi kami. Konfigurasi lama menggunakan definisi templat "lama", dan rsyslog doc pada templat merekomendasikan untuk mengganti definisi tersebut dengan sintaks templat baru, jadi itulah yang saya coba lakukan.

Saya tidak bisa membuatnya berfungsi, dan kesalahan yang saya dapatkan ketika mencoba memulai rsyslog tidak masuk akal. Jadi, sepertinya saya salah paham tentang rsyslog docs, atau ada sesuatu yang lucu tentang paket rsyslog yang termasuk dalam RHEL6.

Ini adalah templat warisan yang saya coba perbarui:

$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

Ini adalah usaha saya di template yang sama di sintaks baru setelah membaca rsyslog docs:

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%')"
)

Ini adalah kesalahan yang saya dapatkan pada startup 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!
Bart B
sumber

Jawaban:

8

Yah, jawabannya agak sederhana (dan mungkin tidak memuaskan). Sintaks baru tidak didukung di versi lama ini. Anda memerlukan setidaknya v6, tetapi untuk menggunakan semua fitur v7 diperlukan. Sejauh ini, Red Hat tidak mengirimkan ini untuk RHEL. Sebagai alternatif, Anda dapat menggunakan paket rpm rsyslog: http://www.rsyslog.com/rhelcentos-rpms/

Harap perhatikan juga bahwa dokumen di http://www.rsyslog.com/doc selalu untuk versi PALING SAAT INI. Namun, setiap versi memiliki kumpulan dokumen sendiri. Jelas lebih baik merujuk ke kumpulan dokumen yang menyertai versi Anda. Sebagian besar distro tidak menginstalnya secara default, tetapi biasanya ada paket yang dinamai rsyslog-doc.

pengguna168825
sumber
7

Sampai September 2015 ada paket rsyslog7 tersedia di RHEL6. Versi rsyslog saat ini adalah 8.11, tetapi yang ini setidaknya lebih dekat dengan yang sekarang.

Untuk menginstal, pertama-tama Anda harus menghapus paket rsyslog Anda:

# rpm -e --nodeps rsyslog
# yum -y install rsyslog7
Dan Pritts
sumber
0

Anda dapat menambahkan rsyslog yum repo dan kemudian memperbarui rsyslog secara langsung sehingga Anda tidak perlu menghapus instalannya.

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   

File repo untuk referensi:

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

Kredit:

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

storm_m2138
sumber