网易首页 > 网易号 > 正文 申请入驻

利用 ELK 处理 Percona 审计日志

0
分享至

Percona Server为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为

前提

1、有强烈的审计需求。

2、能允许10%-15%左右的性能损失。

3、有强烈的对数据库操作实时查看需求(一般都是为了领导要求)。

Logstash 比较坑的配置

input {
file {
path => ["/u02/backup/audit.log"]
codec => json
}
}
output {
elasticsearch {
hosts => ["192.168.1.233"]
}
}

上面的配置看上去是没有问题的,如果是一般的json数据哪就能解析成功了,

但是在 Percona audit plugin 中应用程序应用程序生成的SQL是五花八门,各种字符都有其中有。

如下审计的日志被 python 读取后的字符串展现(红色标记):

从上图可以看到有一些换行后tab的字符,这些字符使用 json.load 的时候会报错,不能解析成json

使用python json 模块解析相关日志文件报错:

>>> json.loads(json_line)
Traceback (most recent call last):
File "

", line 1, in

File "/usr/lib64/python2.7/site-packages/simplejson/__init__.py", line 516, in loads return _default_decoder.decode(s) File "/usr/lib64/python2.7/site-packages/simplejson/decoder.py", line 370, in decode obj, end = self.raw_decode(s) File "/usr/lib64/python2.7/site-packages/simplejson/decoder.py", line 400, in raw_decode return self.scan_once(s, idx=_w(s, idx).end())simplejson.scanner.JSONDecodeError: Invalid control character '\t' at: line 1 column 232 (char 231)

所以在使用logstash的时候也就解析不了这样的json数据了,

最终logstash只能报错并将整个message记录到 Elasticsearch 中

解决办法

解决办法就是把这些字符替换掉。如下 Logstash 配置文件

input {
file {
path => ["/u02/backup/audit.log"]
}
}
filter {
mutate {
gsub => ["message", "\\\\n", " "]
gsub => ["message", "\t", " "]
replace => [ "message", "%{message}" ]
}
json{
source => "message"
}
mutate {
remove_field => [ "message" ]
}
}
output {
elasticsearch {
hosts => ["192.168.1.233"]
}
}

该配置文件是投机取巧的办法, 把 (换行/tab) 字符替换成空格,要注意的一点最终显示的SQL和原来的有所差别。

这种方法有点不灵活如果sql语句中还有遇到一些json不能解析的字符又要进行处理。

  • >>朋友们如果有更好的方法也告知一声哈!<<<

还不能笑到最后

刚开始以为这一切都万事大吉了。其实还有个一坑就是在使用 Kibana 查看的时候,这时候问题就来了。

有是有过 Percona audit 插件的估计都有这样的问题,就是他记录的是时间是国际形式的(如上图黄色标记),不像我们习惯了北京时间。因此在页面显示的时间会比我们平时的少 8 小时。

一般来说在ELK中使用国际的标准格式是合理的。因为在使用 Kibana 查看的时候会帮你自动转化成本地时间格式。也就是如果我们在中国他会自动把 timezone 转化为 Asia/Shanghai(东8区) 的。所以显示的时间应该是正确的才对。可是实际情况并没有。

没有转化的原因

是应为 Elasticsearch 将 "2016-08-30T01:45:30 UTC" 这串字符解析成了String类型。按道理应该解析成和@timestamp一样的date类型。

解决思路

将 "2016-08-30T01:45:30 UTC" 格式转化成和 @timestamp 一样的格式("2016-08-30T01:45:30Z")

最终配置文件如下

input {
file {
path => ["/u02/backup/audit.log"]
}
}
filter {
mutate {
gsub => ["message", "\\\\n", " "]
gsub => ["message", "\t", " "]
replace => [ "message", "%{message}" ]
}
json{
source => "message"
}
mutate {
remove_field => [ "message" ]
gsub => ["[audit_record][timestamp]", " UTC", "Z"]
replace => [ "[audit_record][timestamp]", "%{[audit_record][timestamp]}" ]
}
}
output {
elasticsearch {
hosts => ["192.168.1.233"]
}
}

使用上面配置就能顺利的将 时间格式 转化成 Elasticsearch 想要的时间格式,并且能在 Kibana 中正确显示。

祝大家好运。

本文地址:https://www.linuxprobe.com/elk-percona-audit.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
368次列车无人驾驶冲过车站,106人魂断杨庄,谁难辞其咎?

368次列车无人驾驶冲过车站,106人魂断杨庄,谁难辞其咎?

大运河时空
2026-01-09 18:15:03
阿根廷大逆袭!米莱执政两年,通胀暴跌,经济增速扭负为正!

阿根廷大逆袭!米莱执政两年,通胀暴跌,经济增速扭负为正!

百态人间
2026-01-07 16:41:49
台退役上校呼吁:只要大陆答应2个条件,台湾随时可以和平统一!

台退役上校呼吁:只要大陆答应2个条件,台湾随时可以和平统一!

科普100克克
2026-01-09 10:38:43
一条金项链,一夜涨了15200元!一年多涨了近10万

一条金项链,一夜涨了15200元!一年多涨了近10万

都市快报橙柿互动
2026-01-09 17:32:57
咸鱼还是太全面了,怪不得人称国内黑市

咸鱼还是太全面了,怪不得人称国内黑市

另子维爱读史
2025-12-20 17:07:20
战前国家栋梁,战后祸国豺狼

战前国家栋梁,战后祸国豺狼

我是历史其实挺有趣
2026-01-08 20:08:25
电诈“教父”陈志遣返中国,美国扣押的12.7万枚比特币应移交中国

电诈“教父”陈志遣返中国,美国扣押的12.7万枚比特币应移交中国

星空区块链
2026-01-07 21:14:37
或比中国卫星还猛!脑机接口商用开启  10大龙头技术和产品已落地

或比中国卫星还猛!脑机接口商用开启 10大龙头技术和产品已落地

元芳说投资
2026-01-09 06:00:09
深夜3利空!20倍大牛股被立案,2个龙头被监控,35股减持股票

深夜3利空!20倍大牛股被立案,2个龙头被监控,35股减持股票

风风顺
2026-01-10 04:00:03
离岸人民币兑美元较周四纽约尾盘涨62点

离岸人民币兑美元较周四纽约尾盘涨62点

每日经济新闻
2026-01-10 06:26:05
中国男篮决战日本队,爆料阵容调整,徐杰强势加入,胡明轩不太行

中国男篮决战日本队,爆料阵容调整,徐杰强势加入,胡明轩不太行

宗介说体育
2026-01-09 12:12:46
2025年最不靠谱研究:用核聚变制造黄金!疯了,竟然还具可操作性

2025年最不靠谱研究:用核聚变制造黄金!疯了,竟然还具可操作性

星辰大海路上的种花家
2026-01-08 09:20:59
4年5500万!场均轰26+7+7,NBA最失望球队,把重建基石便宜卖掉了

4年5500万!场均轰26+7+7,NBA最失望球队,把重建基石便宜卖掉了

巴叔GO聊体育
2026-01-09 12:09:18
iPhone 换电池限时半价,仅限这些机型

iPhone 换电池限时半价,仅限这些机型

果粉俱乐部
2026-01-08 14:05:03
更高部门2次叫停!28岁日本名将或无缘中国联赛 博主:非体育因素

更高部门2次叫停!28岁日本名将或无缘中国联赛 博主:非体育因素

我爱英超
2026-01-09 21:22:26
陈博彰当选长沙市市长,原市长已进京任职

陈博彰当选长沙市市长,原市长已进京任职

上观新闻
2026-01-09 18:12:06
葡媒:C罗可能在耗资3000万镑打造的豪宅结婚,然后将其出售

葡媒:C罗可能在耗资3000万镑打造的豪宅结婚,然后将其出售

懂球帝
2026-01-10 01:25:10
美国军方大胆预测:突然曝光解放军武力收台时间,突然大幅度提前

美国军方大胆预测:突然曝光解放军武力收台时间,突然大幅度提前

乐天闲聊
2026-01-07 15:40:58
在持续风波中,勇士队交易德雷蒙德·格林的传闻不再是天方夜谭

在持续风波中,勇士队交易德雷蒙德·格林的传闻不再是天方夜谭

好火子
2026-01-10 01:54:06
上海国盛陈为被双开,保障房旧改捞巨额,两月掌30亿公司啥玄机

上海国盛陈为被双开,保障房旧改捞巨额,两月掌30亿公司啥玄机

童童聊娱乐啊
2026-01-10 01:27:17
2026-01-10 09:27:00
linux系统运维之家
linux系统运维之家
科技资讯
1392文章数 7549关注度
往期回顾 全部

科技要闻

市场偏爱MiniMax:开盘涨42%,市值超700亿

头条要闻

1年夺8冠的30岁健美冠军猝死 其师父去年死于心脏骤停

头条要闻

1年夺8冠的30岁健美冠军猝死 其师父去年死于心脏骤停

体育要闻

金元时代最后的外援,来中国8年了

娱乐要闻

关晓彤鹿晗风波后露面 不受影响状态佳

财经要闻

投资必看!瑞银李萌给出3大核心配置建议

汽车要闻

助跑三年的奇瑞 接下来是加速还是起跳?

态度原创

本地
亲子
数码
手机
公开课

本地新闻

云游内蒙|“包”你再来?一座在硬核里酿出诗意的城

亲子要闻

“国学驯化”从娃娃抓起?

数码要闻

铭凡CES 2026新闻稿提及英特尔酷睿Ultra 9 290HX Plus处理器

手机要闻

网易数码2025年度好物揭晓:30款精选产品上榜,你用过哪些?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版