syslog-ng ignora o nome do banco de dados MSSQL

1

syslog-ng ignora o banco de dados definido em syslog-ng.conf e, em vez disso, usa o banco de dados padrão do usuário ao efetuar login no destino MSSQL.

destination d_mssql {
sql(type(mssql)
        host("myhost") username("myuser") password("mypass")
        database("syslogng")
        table("msgs_${R_YEAR}${R_MONTH}${R_DAY}")columns(
                "seqnum bigint",
                "datetime varchar(16)", "host varchar(32)",
                "program varchar(32)", "pid varchar(8)", "priority varchar(10)", "facility varchar(10)", "pri int",
                "message varchar(max)")
        values("$SEQNUM", "$R_DATE", "$HOST", "$PROGRAM", "$PID", "$PRIORITY", "$FACILITY", "$PRI", "$MSGONLY")
        indexes("datetime", "host", "program", "pid"));
};

Como você pode ver, eu quero usar "syslogng" como meu banco de dados, mas o que acontece é que syslog-ng usa o banco de dados padrão ("master") configurado para "myuser" no MS SQL Server.

Se eu alterar o banco de dados padrão para "myuser" no servidor SQL para "syslogng", ele gravará no banco de dados "syslogng". Mas isso não é o que eu quero. Eu quero ser capaz de configurar o banco de dados em syslog-ng.conf .

Alguma idéia do porquê isso está acontecendo?

Mesma pergunta no site da comunidade BalaBit.

    
por kaptan 14.03.2013 / 18:35

1 resposta

0

Para contornar isso, na minha instrução sql () eu configurei:

database("")

Em seguida, use o caminho completo para a tabela que desejo criar / atualizar:

table("syslogng.msgs_${R_YEAR}${R_MONTH}${R_DAY}")")

Use um navegador DB, como o DBeaver, para conectar-se ao seu banco de dados MSSQL e determinar o caminho completo para sua tabela.

    
por 07.10.2013 / 22:46