返回顶部
首页 > 资讯 > 数据库 >关于Aborted connection告警日志的分析
  • 527
分享到

关于Aborted connection告警日志的分析

关于Abortedconnection告警日志的分析 2015-11-24 17:11:49 527人浏览 绘本
摘要

前言:  有时候,连接Mysql的会话经常会异常退出,错误日志里会看到"Got an error reading communication packets"类型的告警。本篇文章我们一起来讨论下该错误可能的原因以及如何来规避。 1

关于Aborted connection告警日志的分析

前言: 

有时候,连接Mysql的会话经常会异常退出,错误日志里会看到"Got an error reading communication packets"类型的告警。本篇文章我们一起来讨论下该错误可能的原因以及如何来规避。

1.状态变量Aborted_clients和Aborted_connects

首先我们来了解下Aborted_clients和Aborted_connects这两个状态变量的含义,当出现会话异常退出时,这两个状态值会有变化。根据官方文档描述,总结如下:

image.png
造成Aborted_connects状态变量增加的可能原因:

  1. 客户端试图访问数据库,但没有数据库的权限。
  2. 客户端使用了错误的密码。
  3. 连接包不包含正确的信息。
  4. 获取一个连接包需要的时间超过connect_timeout秒。

image.png
造成Aborted_clients状态变量增加的可能原因:

  1. 程序退出前,客户机程序没有调用mysql_close()。
  2. 客户端睡眠时间超过了wait_timeout或interactive_timeout参数的秒数。
  3. 客户端程序在数据传输过程中突然终止。

简单来说即:数据库会话未能正常连接到数据库,会造成Aborted_connects变量增加。数据库会话已正常连接到数据库但未能正常退出,会造成Aborted_clients变量增加。

2.Got an error reading communication packets原因分析

哪种情况会导致error log中出现“Aborted connection xxxx to db: "db" user: "dbuser" host: "hostname" (Got an error reading communication packets)”类似告警呢?下面我们根据上面可能的原因来做下具体测试。每次测试要注意状态变量Aborted_clients和Aborted_connects的变化及错误日志记录。

  • 测试一:错误密码,错误用户
1.测试前查看状态变量值
mysql> show global status like 'abort%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 0     |
| Aborted_connects | 0     |
+------------------+-------+

2.测试过程
# mysql -uroot -pwrongpass
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
# mysql -uroot1 -pwrongpass
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root1'@'localhost' (using password: YES)

3.查看状态变化及错误日志
mysql> show global status like 'abort%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 0     |
| Aborted_connects | 2     |
+------------------+-------+
错误日志记录:
2020-03-16T17:58:35.318819+08:00 6 [Note] Access denied for user 'root'@'localhost' (using passWord: YES)
2020-03-16T17:59:04.153753+08:00 7 [Note] Access denied for user 'root1'@'localhost' (using password: YES)

结果:Aborted_connects有增加 error log无Aborted connection相关记录
  • 测试二:睡眠时间超时或手动杀会话
1.测试前查看状态变量值
mysql> show global status like 'abort%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 0     |
| Aborted_connects | 2     |
+------------------+-------+

2.手动杀会话测试
mysql> show processlist;
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host      | db   | Command | Time | State    | Info             |
+----+------+-----------+------+---------+------+----------+------------------+
|  9 | root | localhost | NULL | Query   |    0 | starting | show processlist |
| 10 | root | localhost | NULL | Sleep   |    7 |          | NULL             |
+----+------+-----------+------+---------+------+----------+------------------+
2 rows in set (0.00 sec)
mysql> kill 10;
Query OK, 0 rows affected (0.00 sec)

3.查看状态变化及错误日志
mysql> show global status like 'abort%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 1     |
| Aborted_connects | 2     |
+------------------+-------+

结果:Aborted_clients有增加 error log无记录 ,
类似的,睡眠时间超时后Aborted_clients有增加 error log中有Aborted connection相关记录。

会话异常退出一般会造成Aborted connection告警,即我们可以通过Aborted_clients状态变量的变化来反映出是否存在异常会话,那么出现“_Got an error reading communication packets” _类似告警的原因就很明了了,查询相关资料,总结出造成Aborted connection告警的可能原因如下:

  1. 会话链接未正常关闭,程序没有调用mysql_close()。
  2. 睡眠时间超过wait_timeout或interactive_timeout参数的秒数。
  3. 查询数据包大小超过max_allowed_packet数值,造成链接中断。
  4. 其他网络或者硬件层面的问题。

3.问题避免与总结

其实Aborted connection告警是很难避免的,error log里或多或少会有少量Aborted connection信息,这种情况是可以忽略的,但是当你的error log里频繁出现Aborted connection告警,这时候就应该注意了,可能会对业务产生较大的影响。下面列举出几点避免错误的建议,希望对你有所帮助。

  1. 建议业务操作结束后,应用程序逻辑会正确关闭连接,以短连接替代长连接。
  2. 检查以确保max_allowed_packet的值足够高,并且客户端没有收到“数据包太大”消息。
  3. 确保客户端应用程序不中止连接,例如,如果PHP设置了max_execution_time为5秒,增加connect_timeout并不会起到作用,因为php会kill脚本。其他程序语言和环境也有类似的安全选项。
  4. 确保事务提交(begin和commit)都正确提交以保证一旦应用程序完成以后留下的连接是处于干净的状态。
  5. 检查是否启用了skip-name-resolve,检查主机根据其IP地址而不是其主机名进行身份验证。
  6. 尝试增加MySQL的net_read_timeout和net_write_timeout值,看看是否减少了错误的数量。

参考: 

  • https://dev.mysql.com/doc/refman/5.7/en/communication-errors.html

公众号.jpg

您可能感兴趣的文档:

--结束END--

本文标题: 关于Aborted connection告警日志的分析

本文链接: https://lsjlt.com/news/5072.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 关于Aborted connection告警日志的分析
    前言:  有时候,连接MySQL的会话经常会异常退出,错误日志里会看到"Got an error reading communication packets"类型的告警。本篇文章我们一起来讨论下该错误可能的原因以及如何来规避。 1...
    99+
    2015-11-24
    关于Aborted connection告警日志的分析
  • MySQL Aborted connection告警日志的分析
    前言: 有时候,连接MySQL的会话经常会异常退出,错误日志里会看到"Got an error reading communication packets"类型的告警。本篇文章我们一起来讨论下该错误可能的原因以及如何...
    99+
    2022-05-16
    MySQL Aborted connection告警日志 MySQL Aborted connection告警日志分析
  • MySQL令人头疼的Aborted告警案例分析
    MySQL关于aborted告警日志的分析实战Part1:写在最前在MySQL的error log中,我们会经常性看到一些各类的Aborted connection错误,本文中会针对这类错误进行一个初步分析...
    99+
    2024-04-02
  • Python 关于日志的分析
    项目情况介绍:基于Python 3.6.6 ,实现对nginx访问的日志分析代码,实现了对日志中code的占比统计和浏览器类型和访问情况统计实现的代码段有:1.编写窗户函数,实现在一定的时间内对数据进行分析2.通过正则表达式对日志进行匹配,...
    99+
    2023-01-31
    日志 Python
  • ORACLE 告警日志alert过大的处理
      现在,对于我来说,处理ORACLE告警日志alert多大不再是什么难题;但是,由于数据库是公司最重要的设备,不容有失,处理数据库相关的进程或文件还是要特别小心。  目前,ORACLE...
    99+
    2024-04-02
  • 关于mongodb的journal日志工作方式分析
    1、journal目录结构...
    99+
    2024-04-02
  • Oracle各个版本警告日志的位置
    Oracle各个版本警告日志的位置警告日志的名称为:alert_<SID>.log在ORACLE10g及以前中,BACKGROUND_DUMP_DEST参数确定了警告日志的位置,SQL> ...
    99+
    2024-04-02
  • Apache如何设置服务器的警告日志
    要设置Apache服务器的警告日志,您可以通过编辑Apache的配置文件来实现。以下是一种常见的方法: 打开Apache的配置文件,通常位于/etc/httpd/conf/httpd.conf文件中。 在配置文件中找到或添加以下指令...
    99+
    2024-07-05
    apache
  • oracle中如何获取两天内的告警日志
    这篇文章将为大家详细讲解有关oracle中如何获取两天内的告警日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 #!/bin/bash#a...
    99+
    2024-04-02
  • 基于MongoDB的实时日志分析与报警系统搭建经验总结
    在当今信息时代,日志分析与报警系统对于企业的数据管理和安全至关重要。随着云计算和大数据的兴起,传统的关系型数据库已经无法满足日益增长的数据量和实时性需求。在这样的背景下,NoSQL数据库成为了一种备受关注的选择。本文将分享基于MongoDB...
    99+
    2023-11-02
    MongoDB 实时日志分析 报警系统搭建
  • 关于Thinkphp6的日志问题
    目录Thinkphp6的日志问题设置日志记录级别单一日志独立日志日志的写入时机日志通道Thinkphp6异常处理与日志异常处理日志手动记录日志关闭日志总结Thinkphp6的日志问题...
    99+
    2023-03-23
    Thinkphp6的日志 Thinkphp6日志 关于Thinkphp6日志
  • 关于MySQL报警的一次分析处理详解
    最近有一个服务出现了报警,已经让我到了忍无可忍的地步,报警信息如下: Metric:mysql.innodb_row_lock_waits Tags:port=4306,servi...
    99+
    2024-04-02
  • ios xcode警告与错误的分析总结
    1.相同具有外部链接的静态变量 可能是文件重复,两个类当中都声明了具有相同名字的具有外部链接的静态变量。 由于枚举类型导致的1 duplicate symbol for arch...
    99+
    2022-05-20
    xcode 警告 错误
  • 利用Python上传日志并监控告警的方法详解
    目录1.准备2.使用阿里云SDK上传Python日志3.配置日志告警在我们的日常生活工作中,经常会遇到需要上传日志的场景,比如多台机器运行同一个程序,并且需要记录每台机器程序产生的日...
    99+
    2024-04-02
  • 分析PostgreSQL日志相关的配置参数log_XXX
    本篇内容主要讲解“分析PostgreSQL日志相关的配置参数log_XXX”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析PostgreSQL日志相关的配置参...
    99+
    2024-04-02
  • mysqlbinlog工具基于日志恢复的示例分析
    这篇文章将为大家详细讲解有关mysqlbinlog工具基于日志恢复的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1)RESET MASTER在上面查看日志存放的...
    99+
    2024-04-02
  • Oracle PL/SQL编译警告PLSQL_WARNINGS的示例分析
    小编给大家分享一下Oracle PL/SQL编译警告PLSQL_WARNINGS的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 警告分類三種1.  &nbs...
    99+
    2024-04-02
  • mysqldumpslow日志分析的案例
    小编给大家分享一下mysqldumpslow日志分析的案例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、mysqldumpslow官方文档:http://dev.mysql.com/d...
    99+
    2024-04-02
  • JMeter自定义日志与日志分析的实现
    目录1 JMeter日志概览2 JMeter自定义日志3 JMeter日志分析1 JMeter日志概览 JMeter与Java程序一样,会记录事件日志,日志文件保存在bin目录中,名...
    99+
    2024-04-02
  • PHP 中基于 Elasticsearch 的日志分析与异常监控
    概要:本文将介绍如何使用 Elasticsearch 数据库来进行日志分析和异常监控。通过简洁的 PHP 代码示例,展示了如何连接 Elasticsearch 数据库、将日志数据写入数据库,并使用 Elasticsearch 的强大查询功能...
    99+
    2023-10-21
    elasticsearch 日志分析 异常监控
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作