本文介绍如何利用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
关于如何安装MySQL数据库,百度一下方法一大堆。引用一篇其他大大的文章
CentOS7安装MySQL(完整版)
二、安装MySQL ODBC驱动
因为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”
三、添加ODBC数据源
1、进入“控制面板\所有控制面板项\管理工具”
2、打开“ODBC 数据源(32 位)”
3、进入“系统DSN”标签页,点击“添加”
4、选择“MySQL ODBC 8.0 ANSI Driver”,点击完成
5、配置MySQL数据库的连接信息,点击OK
这一步中,连接信息正确的情况下,点击Database右侧的下拉箭头,可以读取服务器上的所有数据库名称,读不到的话建议先检查MySQL远程访问是否正常。
6、确认“系统DSN”内已经成功添加刚才配置的MySQL数据库,且是32位
四、Kiwi Console配置
1、打开Kiwi Syslog控制台,进入File>Setup
2、选择一个合适的过滤器(不知道咋选你就直接选Default),右键Action>Add action
3、选中新添加的Action,配置动作为Log to Database
4、配置数据源连接属性
- 点击数据连接字符串(Data link connection string)右侧的选择按钮,打开数据连接属性。
- 选择Microsoft OLE DB提供程序for ODBC驱动
- 点击下一步
- 在连接属性标签页内,在“使用数据源名称”一栏的下拉菜单内选择我们之前新建DSN,如果没有的话,点击一下右侧“刷新”按钮
- 点击初始目录下拉菜单,选择目标数据库(如果连接正确,这一步可以读取到远程数据库实例内的所有库名称,读不到的话先检查连接是否正常)。
5、创建自定义的数据格式
这也是个坑,一定要自定义一个数据格式,让MsgTEXT字段通过text类型存储到数据库中
- 点击Edit customer format跳转到Customer DB Format
- 右键,Add a new customer DB format
- 在数据库类型里,选择MySQL数据库
- 具体字段类型可以根据个人需求爱咋改咋改,别的不管,但是其中MsgText字段一定要确保是Text格式。
5. 回到刚才新添加的动作,将Database Type/Field Format选择为刚才新添加的自定义类型。
6、测试新建表
点击Create Table,创建日志表。
如果可以自动创建成功的话,那么恭喜你,这事基本上就成了。
如果创建表失败的话,可以按照如下思路排查:
- 点击 show SQL command,将kiwi生成的SQL直接拿去数据库里跑一下看是否报错,检查数据格式不是否正确。
- 点击Run Debug,在打开的窗口里自定义运行SQL语句,检查数据库连接是否正确。
- 最后,记住开头提到的三个坑。
7、去数据库里检查日志