Syslog-ng连接到mysql

sos*_*tee 3 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); }
Run Code Online (Sandbox Code Playgroud)

当我运行命令时service syslog restart,出现以下错误

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

我如何克服此问题以使日志定向到数据库?

Has*_*ani 5

UbuntuDebian

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

apt-get install libdbd-mysql
Run Code Online (Sandbox Code Playgroud)

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

apt-get install libdbd-pgsql
Run Code Online (Sandbox Code Playgroud)

用于libdbi的SQLite3数据库驱动程序:

apt-get install libdbd-sqlite3
Run Code Online (Sandbox Code Playgroud)


Ric*_*ish 3

此消息似乎是由于未安装 libdbi 驱动程序而导致的。查看http://libdbi.sourceforge.net/或查看是否有适合您的发行版的 libdbi 软件包。