MySQL8中的JSON格式错误日志

官方文档 .0enerror-log-json.htmlMySQL8开始,支持将错误日志输出为json格式,这样就很方便日志的统一集中化的收集。安装方法很简单,只要2行命令即可:代码语言:txt复制INSTALL COMPONENT &

MySQL8中的JSON格式错误日志

官方文档 .0/en/error-log-json.html

MySQL8开始,支持将错误日志输出为json格式,这样就很方便日志的统一集中化的收集。

安装方法很简单,只要2行命令即可:

代码语言:txt复制
INSTALL COMPONENT 'file://component_log_sink_json';
SET PERSIST log_error_services = 'log_filter_internal; log_sink_json';

然后,可以搞一些错误的操作,例如输错密码达到登录失败的现象。(如果是个人测试,页可以重启mysqld达到在errlog里面记录很多错误信息的现象)

贴一行日志,说明下具体的含义:

代码语言:txt复制
{
  "prio": 3,
  "err_code": 10926,
  "component": "mysql_native_password",
  "subsystem": "Server",
  "source_file": "sql_authentication",
  "function": "login_failed_error",
  "msg": "Access denied for user 'dts'@'centos7-3' (using password: YES)",
  "time": "2024-10-05T21:56:59.860874+08:00",
  "ts": 1728136619860,
  "thread": 22,
  "err_symbol": "ER_ACCESS_DENIED_ERROR_WITH_PASSWORD",
  "SQL_state": "HY000",
  "label": "Note"
}

大致含义(详见:.0/en/error-log-rule-based-filtering.html):
prio:优先级,对应的值为 ERROR、 WARNING、 INFORMATION
err_code:错误代码
subsystem: 子系统项目,比如:Server、InnoDB等
source_file: 对应的源码文件
function: 函数名
msg:错误明细
time:  报错的时间
ts:  报错的时间戳
err_symbol:具体错误符号,具体的err_symbol可以参考:.0/en/server-error-reference.html

如果测试json日志记录没问题后,通常还会把日志接入到ELK(或者其他的日志系统中),便于查看和告警。

我这里是使用vector将errlog.log.*.json文件采集后,直接发送到ElasticSearch中(生产上可能还会经过kafka之类的MQ),最终在kibana展示效果如下:

kibana-1

除此之外,还可以对日志进行过滤(例如:同样的错误信息,超过一定的阈值后,在日志文件中只记录1条)

下面演示的是将 错误级别<=warning的信息不采集到json日志文件中。

配置也很简单:

代码语言:txt复制
INSTALL COMPONENT 'file://component_log_filter_dragnet';

SET persist log_error_services = 'log_filter_internal; log_sink_internal; log_filter_dragnet;log_sink_json';

SET GLOBAL dragnet.log_error_filter_rules = 'IF prio<=WARNING THEN drop.';

这样设置后,就不会记录 “native_password_authentication_deprecation_warning” 这类提示信息,只记录超过这个级别的信息。

kibana-2

更全面的信息,可以下面的2个链接:

.0/en/error-log-rule-based-filtering.html

.0/en/error-log-priority-based-filtering.html

发布者:admin,转转请注明出处:http://www.yc00.com/web/1755018269a5226664.html

相关推荐

  • MySQL8中的JSON格式错误日志

    官方文档 .0enerror-log-json.htmlMySQL8开始,支持将错误日志输出为json格式,这样就很方便日志的统一集中化的收集。安装方法很简单,只要2行命令即可:代码语言:txt复制INSTALL COMPONENT &

    1月前
    230

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信