___ qstnhdr __ Analisar mensagens syslog em tabelas MySQL separadas com rsyslog ______ qstntxt ___

Fora da caixa rsyslog despejará tudo na tabela %code% dentro do banco de dados 'Syslog' (se você usar o esquema padrão forneceu). Gostaria de usar uma expressão regular para filtrar mensagens de entrada em tabelas de banco de dados separadas.

Eu já brinquei com isso, mas estou tendo dificuldades para descobrir a melhor maneira de realizar isso (ou até mesmo uma maneira que funcione).

No meu rsyslog.conf:

%pre%

Esta foi minha última tentativa, mas estou presa.

(a tabela RogueAPs é apenas um clone da tabela SystemEvents padrão que vem com o rsyslog)

Informações da versão:

%pre%     
______ azszpr3300 ___

de dar uma olhada no tutorial , não vejo diferença.

Mas dando uma olhada na documentação do modelo do rsyslog , parece haver uma diferença com o mysql dependendo a configuração do parâmetro %code% .

Nos documentos:

%pre%     
______ azszpr12680 ___

A documentação do rsyslog não é, infelizmente, muito completa ou fácil de entender em algumas áreas. Passei uma boa parte das últimas semanas trabalhando em material rsyslog / MySQL / regex.

Você pode postar uma amostra da linha de log que você está tentando corresponder à regex, o esquema da tabela em que você deseja entrar etc.? As coisas que você postou parece que deveria funcionar ... o que você está tentando filtrar? E o esquema padrão é útil para você?

Em uma nota lateral, não pude deixar de notar que você está usando uma tabela chamada RogueAPs. Não sei qual fornecedor você está usando, mas tenho regras de regex para mensagens de log de autenticação dos controladores Meru Networks e BlueSocket.

    
___

10

Fora da caixa rsyslog despejará tudo na tabela SystemEvents dentro do banco de dados 'Syslog' (se você usar o esquema padrão forneceu). Gostaria de usar uma expressão regular para filtrar mensagens de entrada em tabelas de banco de dados separadas.

Eu já brinquei com isso, mas estou tendo dificuldades para descobrir a melhor maneira de realizar isso (ou até mesmo uma maneira que funcione).

No meu rsyslog.conf:

$template wireless, \
 "insert into RogueAPs \
 (ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message) \
 VALUES('%timegenerated%', '%timereported%', '%syslogfacility%', '%syslogpriority%', '%fromhost-ip%', '%msg%');", \ 
 stdsql

if $msg contains 'subtype=wireless' then :ommysql:127.0.0.1,Syslog,dbusername,dbpassword;wireless

*.* :ommysql:127.0.0.1,Syslog,dbusername,dbpassword

Esta foi minha última tentativa, mas estou presa.

(a tabela RogueAPs é apenas um clone da tabela SystemEvents padrão que vem com o rsyslog)

Informações da versão:

shell# /usr/local/sbin/rsyslogd -v
rsyslogd 5.5.5, compiled with:
        FEATURE_REGEXP:                         Yes
        FEATURE_LARGEFILE:                      No
        FEATURE_NETZIP (message compression):   Yes
        GSSAPI Kerberos 5 support:              No
        FEATURE_DEBUG (debug build, slow code): No
        Atomic operations supported:            Yes
        Runtime Instrumentation (slow code):    No

See http://www.rsyslog.com for more information.
    
por efk 08.10.2010 / 04:29

2 respostas

1

de dar uma olhada no tutorial , não vejo diferença.

Mas dando uma olhada na documentação do modelo do rsyslog , parece haver uma diferença com o mysql dependendo a configuração do parâmetro NO_BACKSLASH_ESCAPES .

Nos documentos:

sql - format the string suitable for a SQL statement in MySQL format. This will 
replace single quotes ("'") and the backslash character by their backslash-escaped
counterpart ("\'" and "\") inside each field. Please note that in MySQL
configuration, the NO_BACKSLASH_ESCAPES mode must be turned off for this format to
work (this is the default).

stdsql - format the string suitable for a SQL statement that is to be sent to a
standards-compliant sql server. This will replace single quotes ("'") by two single
quotes ("''") inside each field. You must use stdsql together with MySQL if in MySQL
configuration the NO_BACKSLASH_ESCAPES is turned on.
    
por 20.10.2010 / 08:17
0

A documentação do rsyslog não é, infelizmente, muito completa ou fácil de entender em algumas áreas. Passei uma boa parte das últimas semanas trabalhando em material rsyslog / MySQL / regex.

Você pode postar uma amostra da linha de log que você está tentando corresponder à regex, o esquema da tabela em que você deseja entrar etc.? As coisas que você postou parece que deveria funcionar ... o que você está tentando filtrar? E o esquema padrão é útil para você?

Em uma nota lateral, não pude deixar de notar que você está usando uma tabela chamada RogueAPs. Não sei qual fornecedor você está usando, mas tenho regras de regex para mensagens de log de autenticação dos controladores Meru Networks e BlueSocket.

    
por 05.05.2011 / 17:06

Tags