我一直在搜索 rsyslog 文档,寻找一种通过删除带引号的字符串来匿名化 mysql 日志数据的方法。我已经成功地使用 :contains 属性检测到带有敏感数据的字符串,但我似乎找不到替换的方法。
我查看了属性选项和正则表达式功能。我相信我可能会遗漏一些东西,因为这些都没有提供直接的查找和替换方法。
我一直在搜索 rsyslog 文档,寻找一种通过删除带引号的字符串来匿名化 mysql 日志数据的方法。我已经成功地使用 :contains 属性检测到带有敏感数据的字符串,但我似乎找不到替换的方法。
我查看了属性选项和正则表达式功能。我相信我可能会遗漏一些东西,因为这些都没有提供直接的查找和替换方法。
AFAIK,目前无法在 rsyslog 中进行正则表达式替换。实现您需要的最简洁的方法(我看到)是使用mmnormalize解析您的日志(可以在liblognorm找到更多文档,这是 mmnormalize 使用的库)。然后,您可以访问所有已解析的属性,并将您想要的任何内容放入模板中。模板允许您从消息中选择哪些属性被写入 MySQL。
这个解决方案的好处是 mmnormalize 应该比使用正则表达式更快。问题是您可能需要新版本的 rsyslog(可能是 8.x)才能使其正常工作。