搜狐媒体平台-搜狐网站>IT

他一出家就成中国最帅和尚

眼眸深邃、轮廓分明、身材颀长,活生生的一幅画。

大学副教授与在押服刑女结婚

这在监狱民警看来,那么令人不可思议。

利用 ELK 处理 Percona 审计日志

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。举报

  纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。

导读 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 "<stdin>", line 1, in <module>

  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.ttlsa.com/mysql/elk-deal-with-percona-audit-log-better/

  本文地址: https://www.linuxprobe.com/elk-percona-audit.html编辑:杨鹏飞,审核员:岳国帅

让您学习到的每一节课都有所收获

  《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。

  ? 刘遄老师QQ:5604241 微信:gnu_chuan

  ? 学员助教QQ:5604674

  ?Linux技术交流A群():560843

  ? Linux技术交流B群:340829

  ? Linux技术交流C群:463590

  ? Linux技术交流D群:915246(新群,火热加群中……

  ? 官方站点:www.linuxprobe.com

  ? 电脑在线阅读效果更佳:

  https://www.linuxprobe.com/chapter-00.html

按住图片3秒,即可自动关注。

点击左下角查看更多热门技术
mt.sohu.com true Linux就该这么学 https://mt.sohu.com/20170123/n479395202.shtml report 8042 纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。导读PerconaServer为MySQL数据库服务器进行了改进,在功能和性能上较My
阅读(0) 举报
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。

热门关注

搜生活

搜生活+关注

搜狐公众平台官方账号

MAGIC杨梦晶

MAGIC杨梦晶+关注

生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者

搜狐教育

搜狐教育+关注

搜狐网教育频道官方账号

星吧GEO

星吧GEO+关注

全球最大华文占星网站-专业研究星座命理及测算服务机构

热门图片

  • 热点视频
  • 影视剧
  • 综艺
  • 原创
锦绣缘

同步热播-锦绣缘

主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
神雕侠侣

大结局-神雕侠侣

主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
封神英雄榜

同步热播-封神英雄榜

主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓

六颗子弹

主演:尚格·云顿/乔·弗拉尼甘/Bianca Bree
龙虎少年队2

龙虎少年队2

主演:艾斯·库珀/ 查宁·塔图姆/ 乔纳·希尔

《奔跑吧兄弟》

baby14岁写真曝光

《我看你有戏》

李冰冰向成龙撒娇争宠

《明星同乐会》

李湘遭闺蜜曝光旧爱

《非你莫属》

美女模特教老板走秀

《一站到底》

曝搬砖男神奇葩择偶观

搜狐视频娱乐播报

柳岩被迫成赚钱工具

大鹏嘚吧嘚

大屁小P虐心恋

匆匆那年第16集

匆匆那年大结局

隐秘而伟大第二季

乔杉遭粉丝骚扰

The Kelly Show

男闺蜜的尴尬初夜

我来说两句排行榜

客服热线:86-10-58511234

客服邮箱:kf@vip.sohu.com