Você pode adicionar o recurso syslog com %syslogfacility-text%
ao modelo remoteHost da seguinte forma:
$template RemoteHost,"/backup/CentralizeLogLocation/Linuxlogs/%HOSTNAME%/%HOSTNAME%-%syslogfacility-text%-%$YEAR%%$MONTH%%$DAY%.log"
ConfigureioservidorcentralizadoparatodososmeusservidoresLinux.ConsigoencaminhartodososlogsdosistemaelogsdeauditoriadobancodedadosOracleparaoservidorcentralizado.masmeuproblemaéquetodososlogsdosistemaedobancodedadosestãogravandoemumúnicoarquivo.Meurequisitoégravaroslogsdobancodedadosemlogsdearquivosesistemasdiferentesparaumarquivodiferentenolocalcentralizado.Porfavor,encontreosscriptsabaixo.
192.168.1.150:servidorcentralizado
192.168.1.44:servidorremoto
configuraçãodoservidorremoto(192.168.1.44)
$cat/etc/rsyslog.conf#ProvidesUDPsyslogreception$ModLoadimudp.so$UDPServerRun514#ProvidesTCPsyslogreception$ModLoadimtcp.so$InputTCPServerRun514*.info;mail.none;authpriv.none;cron.none/var/log/messages#Saveoraclerdbmsaudittrailtooracle_audit.loglocal0.info/u01/app/oracle/admin/prod/adump/oracle_audit.log*.*@192.168.1.150:514
Configuraçãocentralizadadoservidor(192.168.1.150):
$cat/etc/rsyslog.conf#ProvidesUDPsyslogreception$ModLoadimudp.so$UDPServerRun514#ProvidesTCPsyslogreception$ModLoadimtcp.so$InputTCPServerRun514$templateRemoteHost,"/backup/CentralizeLogLocation/Linuxlogs/%HOSTNAME%/%HOSTNAME%-%$YEAR%%$MONTH%%$DAY%.log"
if ($ hostname! = '') then? RemoteHost
& ~
Os arquivos estão criando neste formato para cada host no servidor centralizado thsc-vmmanager-20160614.log
Parece que está tudo bem - eu consegui o que eu quero, mas os logs de auditoria do banco de dados Oracle e os logs do sistema estão gravando em um arquivo de log. Eu também estou anexando a captura de tela.
Agora, o requisito é separar os dois arquivos. Por favor, guie-me sobre como posso conseguir isso.
Você pode adicionar o recurso syslog com %syslogfacility-text%
ao modelo remoteHost da seguinte forma:
$template RemoteHost,"/backup/CentralizeLogLocation/Linuxlogs/%HOSTNAME%/%HOSTNAME%-%syslogfacility-text%-%$YEAR%%$MONTH%%$DAY%.log"
Em seu servidor centralizado, você criou um modelo, mas não o usou. Tente adicionar no final
if $fromhost-ip startswith 192.168.1.44 then -?RemoteHost
& ~
ou
if $syslogfacility-text isequal 'local0' then -?RemoteHost
& ~
ou você pode combiná-los para registrar sua instalação remota local0, ou seja, logs oracle, para um arquivo e o restante para outro, por exemplo:
if $fromhost-ip == '192.168.1.44' and $syslogfacility-text == 'local0' then /var/log/oracle.log
& ~
*.* /var/log/messages
A linha & ~
exclui as mensagens do oracle depois que elas foram salvas no arquivo pelo if
anterior. Consulte rsyslog.com para obter muita ajuda e exemplos.
Os nomes dos arquivos nas linhas que começam com if
podem ser corrigidos como /var/log/oracle.log
ou um modelo que você definiu anteriormente, como -?OracleData
. Então você precisa adicionar, por exemplo,
$template OracleData,"/backup/CentralizeLogLocation/Oracle/%HOSTNAME%/%HOSTNAME%-%$YEAR%%$MONTH%%$DAY%.log"
if $syslogfacility-text isequal 'local0' then -?OracleData
& ~
if $fromhost-ip startswith '192.168.1' then -?RemoteHost
& ~
*.* /var/log/messages
Como suas mensagens de log do oracle contêm a palavra "Oracle", você pode dividir essas mensagens com
if $msg contains 'Oracle' then -?OracleData
& ~
Observe que a ordem dessas linhas é importante. Os modelos devem ser definidos antes de serem usados. As regras são aplicadas a cada mensagem por vez. Se você não colocar as linhas & ~
imediatamente após as linhas if
, a mensagem poderá acabar em vários arquivos de log.