本文介绍如何利用Kiwi Syslog将日志转存到MySQL数据库。
关于如何搭建Kiwi Syslog日志服务器,请参考:
【逗老师带你学IT】Kiwi Syslog Server安装和配置教程
【逗老师带你学IT】Kiwi Syslog Web Access与Active Directory集成认证
开始之前说个坑,网上有很多网友发现Kiwi转存MySQL时,可以连接数据库,但是数据库内没有日志。笔者简单调查之后发现有三个坑
1、大部分网友在配置ODBC驱动的时候,添加的不是系统DSN,而是用户DSN。
2、Kiwi即使运行在啊64位windows server中,ODBC驱动也仅调用32位的,保险起见,32/64位的都安装吧。
3、Kiwi默认对MsgText字段使用MEMO类型字符串,MySQL现在貌似不支持memo数据类型。
关于如何安装MySQL数据库,百度一下方法一大堆。引用一篇其他大大的文章
CentOS7安装MySQL(完整版)
因为Kiwi内部没有内置MySQL连接驱动,因此需要调用MySQL的Windows ODBC驱动。下载地址:
MySQL Community Downloads Connector/ODBC
注意,因为各种奇葩的原因,Kiwi本身在x64环境下运行,但是又仅调用32位的ODBC驱动,因此推荐32位和64位的驱动都下载安装。
安装过程中,可能提示:Microsoft Visual Studio 2019 Redistributable。原因是缺少VC 2019运行环境,去下面链接里下载,注意也是32/64位都下载安装。
下载Visual Studio 2019
页面拉到最后,展开“其他工具和框架(Other Tools and Frameworks)”,下载“Microsoft Visual C++ Redistributable for Visual Studio 2019”
1、进入“控制面板\所有控制面板项\管理工具”
2、打开“ODBC 数据源(32 位)”
3、进入“系统DSN”标签页,点击“添加”
4、选择“MySQL ODBC 8.0 ANSI Driver”,点击完成
5、配置MySQL数据库的连接信息,点击OK
这一步中,连接信息正确的情况下,点击Database右侧的下拉箭头,可以读取服务器上的所有数据库名称,读不到的话建议先检查MySQL远程访问是否正常。
6、确认“系统DSN”内已经成功添加刚才配置的MySQL数据库,且是32位
1、打开Kiwi Syslog控制台,进入File>Setup
2、选择一个合适的过滤器(不知道咋选你就直接选Default),右键Action>Add action
3、选中新添加的Action,配置动作为Log to Database
4、配置数据源连接属性
5、创建自定义的数据格式
这也是个坑,一定要自定义一个数据格式,让MsgTEXT字段通过text类型存储到数据库中
5. 回到刚才新添加的动作,将Database Type/Field Format选择为刚才新添加的自定义类型。
6、测试新建表
点击Create Table,创建日志表。
如果可以自动创建成功的话,那么恭喜你,这事基本上就成了。
如果创建表失败的话,可以按照如下思路排查:
7、去数据库里检查日志