5

mysql服务器 一次cpu 100%问题排查

 2 years ago
source link: https://blog.csdn.net/u010520724/article/details/122378642
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一. 问题描述

前两天在帮朋友在CentOS 8.5 安装了最新的MySQL 8.0.27,安装方式为编译安装。

才刚上线2天,就发现CPU长期负载100%,而且不管是高峰期还是低峰期,都是100%。

通过FinalShell查看:
image.png

通过top命令查看:
image.png

输入1 查看每一个cpu的使用率
image.png

二.解决方案

top 然后按b,排序,发现最耗CPU的确实是mysql

排名第一的是mysql用户下的xri命令,这个非常可疑。
排名第二的是mysql用户下的mysqld命令,这个是mysql的服务进程,正常的景程。

接下来我们来排查这个xri到底是什么

ps -aux |grep -v grep|grep 1483

从输出中可以看到,这个是 /var/tmp/.xri/xri 命令
image.png

我们查看xri文件,更新时间是3天前,而且是在/var/tmp目录下,先杀掉
image.png

2.1 kill进程

kill 掉,cpu负载降下来了
image.png

kill掉之后发现文件还在,初步怀疑是种了挖矿病毒
image.png

2.2 清理定时任务

查看一下我的定时任务

[mysql@CentOS-Mysql ~]$ crontab -l
@daily /var/tmp/.x/secure
@reboot /var/tmp/.x/secure
@monthly /var/tmp/.x/secure

我都没设置定时任务,居然有这个定时任务,清空掉

删除掉cron的日志

[root@CentOS-Mysql log]# cd /var/log/
[root@CentOS-Mysql log]# rm cron
rm: remove regular file 'cron'? y
[root@CentOS-Mysql log]# 

2.3 删除ssh下生成的异常公钥

[mysql@CentOS-Mysql ~]$ cat /home/mysql/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCh047MLLA8ul64R+zVcEezUGtPUhnB+6mSzXoikFgju2orDUBX4K1ve/SW2pMQeQf9ErQojugX43N0iJYtuZUCgtH3A3oLV7zlhbkMuxjfgoUEovBXlAe9sXtLPnbYE999hT0M+OVv2l5/dDgiXs3eG9/BtcuPBEQ4lnH2YdFkckUJmrQQctA1ItFGTNB9fiFu44bH7JjRxSPt97PJPjeEcbEMdJyx4y827NpogeL2QSCfj7II9XdfgaarEOeEF9abY6+1RqDhElhz4ZSQTfoSkl8/8LyBXun7ybdVYxxJdxGznDpNBHyYEcKZFRy9q4mTHBeXMlWiGimSpE7dyhuT rsa-key[mysql@CentOS-Mysql ~]$ 
[mysql@CentOS-Mysql ~]$ 
[mysql@CentOS-Mysql ~]$ cd /home/mysql/.ssh
[mysql@CentOS-Mysql .ssh]$ rm authorized_keys
[mysql@CentOS-Mysql .ssh]$ 

2.4 清理病 毒文件

[root@CentOS-Mysql log]# cd /var/tmp
[root@CentOS-Mysql tmp]# ll
total 16
drwxrwxrwt.  4 root  root  4096 Jan  8 05:53 ./
drwxr-xr-x. 20 root  root  4096 Nov 25 07:13 ../
drwxrwxr-x   2 mysql mysql 4096 Jan  5 17:00 .x/
drwxr-xr-x   2 mysql mysql 4096 Jan  5 17:00 .xri/
[root@CentOS-Mysql tmp]# rm -rf *
[root@CentOS-Mysql tmp]# 
[root@CentOS-Mysql tmp]# ll
total 16
drwxrwxrwt.  4 root  root  4096 Jan  8 05:53 ./
drwxr-xr-x. 20 root  root  4096 Nov 25 07:13 ../
drwxrwxr-x   2 mysql mysql 4096 Jan  5 17:00 .x/
drwxr-xr-x   2 mysql mysql 4096 Jan  5 17:00 .xri/
[root@CentOS-Mysql tmp]# 

居然删除不掉,这么厉害的吗? 直接删除整个tmp目录

[root@CentOS-Mysql var]# cd /var
[root@CentOS-Mysql var]# rm -rf tmp
[root@CentOS-Mysql var]# cd tmp
-bash: cd: tmp: No such file or directory
[root@CentOS-Mysql var]# 

全局查找,这次真的没有了

[root@CentOS-Mysql var]# find / -name xri
[root@CentOS-Mysql var]# 

2.5 待观察

今天把病毒都清理了,监控两天,待反馈

  1. https://www.cnblogs.com/aqicheng/p/14430180.html
  2. https://blog.csdn.net/qq_32731747/article/details/81558561
  3. https://blog.csdn.net/mdzz14/article/details/111656726

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK