我想将文件从交换机记录到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初始化消息时出错 管道
如何解决此问题以使日志能够定向到数据库?
答案 0 :(得分:3)
此消息似乎是在未安装libdbi驱动程序时引起的。看看http://libdbi.sourceforge.net/或查看您的发行版是否有libdbi包。
答案 1 :(得分:3)
在Ubuntu
和Debian
:
libdbi的MySQL数据库服务器驱动程序:
apt-get install libdbd-mysql
libdbi的PostgreSQL数据库服务器驱动程序:
apt-get install libdbd-pgsql
libdbi的SQLite3数据库驱动程序:
apt-get install libdbd-sqlite3