Errori durante l'utilizzo della nuova sintassi del modello rsyslog su RHEL6


8

Sto migrando la nostra configurazione rsyslog da un vecchio server a uno nuovo e ho pensato di sfruttare l'opportunità per riordinare la nostra configurazione. La vecchia configurazione utilizzava definizioni di modello "legacy" e il documento rsyslog sui modelli consiglia di sostituire tali definizioni con la nuova sintassi del modello, quindi è quello che ho provato a fare.

Semplicemente non riesco a farlo funzionare e gli errori che sto riscontrando quando provo ad avviare rsyslog non hanno senso. Quindi, sembra che abbia fondamentalmente frainteso i documenti di rsyslog o che ci sia qualcosa di divertente nel pacchetto rsyslog incluso in RHEL6.

Questo è il modello legacy che sto cercando di aggiornare:

$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

Questo è il mio tentativo di ottenere lo stesso modello nella nuova sintassi dopo aver letto i documenti 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%')"
)

Questi sono gli errori che ottengo all'avvio di 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!

Risposte:


8

Bene, la risposta è piuttosto semplice (e probabilmente insoddisfacente). La nuova sintassi non è supportata in questa vecchia versione. È necessario almeno v6, ma per utilizzare tutte le funzionalità è richiesto v7. Finora, Red Hat non li spedisce per RHEL. In alternativa, è possibile utilizzare i pacchetti rpm rsyslog: http://www.rsyslog.com/rhelcentos-rpms/

Si noti inoltre che il documento su http://www.rsyslog.com/doc è sempre per la versione PIÙ ATTUALE. Tuttavia, ogni versione ha il proprio set di documenti. È ovviamente meglio fare riferimento al set di documenti che accompagna la tua versione. La maggior parte delle distribuzioni non lo installano per impostazione predefinita, ma di solito esiste un pacchetto chiamato lungo le linee di rsyslog-doc.


7

A partire da settembre 2015 ci sono pacchetti rsyslog7 disponibili in RHEL6. La versione corrente di rsyslog è 8.11, ma questa è almeno più vicina alla corrente.

Per installare, devi prima rimuovere il tuo pacchetto rsyslog:

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

0

È possibile aggiungere il repository yum rsyslog e quindi aggiornare rsyslog direttamente in modo da non doverlo disinstallare.

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 per riferimento:

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

Crediti:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.