Syslog-ng连接到mysql

时间:2013-09-10 12:02:55

标签: mysql syslog-ng

我想将文件从交换机记录到mysql数据库。我正在使用syslog-ng,在配置文件中,我做了以下修改

filter f_no_debug { not level(debug); };

destination d_mysql {
sql(
type(mysql)
username("logs")
password("SECUREPASSWORD")
database("logs")
host("localhost")
table("logs")
columns("host", "facility", "priority", "level", "tag", "datetime", "program", "msg")
values("$HOST", "$FACILITY", "$PRIORITY", "$LEVEL", "$TAG","$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC","$PROGRAM", "$MSG")
indexes("datetime", "host", "program", "pid", "message")
);
};

log {source(s_net); source(s_src); filter(f_no_debug); destination(d_mysql); }

当我运行命令service syslog restart时,我收到以下错误

  

无法初始化数据库访问(DBI); rc =' - 1',错误='没有这样的   文件或目录(2)'初始化dest时出错   driver; dest ='d_mysql',id ='d_mysql'#0初始化消息时出错   管道

如何解决此问题以使日志能够定向到数据库?

2 个答案:

答案 0 :(得分:3)

此消息似乎是在未安装libdbi驱动程序时引起的。看看http://libdbi.sourceforge.net/或查看您的发行版是否有libdbi包。

答案 1 :(得分:3)

UbuntuDebian

libdbi的MySQL数据库服务器驱动程序:

apt-get install libdbd-mysql

libdbi的PostgreSQL数据库服务器驱动程序:

apt-get install libdbd-pgsql

libdbi的SQLite3数据库驱动程序:

apt-get install libdbd-sqlite3