发现服务器内存占用100%,执行命令查看内存占用
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20
发现/tmp/juma目录占用内存过高,但是本机目录并没有/tmp/juma目录,通过查找排查,是docker运行的gitlab容器里面的文件目录,查阅gitlab版本说明,发现了该版本漏洞,详情:CVE-2021-22205 GitLab RCE之未授权访问深入分析(一) - FreeBuf网络安全行业门户本篇文章通过分析调试gitlab-workworse和gitlab-rails带你由浅入深一步步了解gitlab最近爆出的RCE未授权部分,看完之后下一个挖出漏洞的说不定就是你。https://www.freebuf.com/vuls/306473.html
升级gitlab版本来解决此问题,但是gitlab升级不能跨大版本,必须需要升级到对应的版本才可以升级更高的版本.
本人目前git版本12.9.3,需要升级到13.10.3 或以上版本
首先先找到当前gitlab版本的启动命令,这里主要是看项目挂载位置,不然升级版本导致项目丢失就不是我们的目的了.
1.首先先把服务器进行备份,制作镜像或者快照.
2.查找出启动gitlab的命令,这里我使用https://github.com/nexdrew/rekcod 安装这个项目,安装之后使用
rekcod 容器id
# 得到gitlab的启动命令
docker run --name gitlab12.9.3 --runtime runc -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab -p 222:22/tcp -p 443:443/tcp -p 80:80/tcp --restart always -h 5cd912f1ca1d --expose 22/tcp --expose 443/tcp --expose 80/tcp -e 'PATH=/opt/gitlab/embedded/bin:/opt/gitlab/bin:/assets:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -e 'LANG=C.UTF-8' -e 'TERM=xterm' -e 'EDITOR=/bin/vi' -d 镜像id '/assets/wrapper'
然后去到docker仓库 找到12.*最后一个版本 下载镜像
docker pull gitlab/gitlab-ce:12.10.14-ce.0
然后停止当前12.9.3版本的容器
docker stop 容器id
使用12.10.14版本镜像启动新的容器
docker run --name gitlab12.10.14 --runtime runc -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab -p 222:22/tcp -p 443:443/tcp -p 80:80/tcp --restart always -h 5cd912f1ca1d --expose 22/tcp --expose 443/tcp --expose 80/tcp -e 'PATH=/opt/gitlab/embedded/bin:/opt/gitlab/bin:/assets:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -e 'LANG=C.UTF-8' -e 'TERM=xterm' -d 容器id '/assets/wrapper'
使用命令查看日志 是否有错误日志
docker logs 容器id
如果没有错误日志,等待gitlab部署完成,在寻找13.0.*版本的gitlab进行升级 步骤如上,我就不重复累赘了
记得版本不可跨级太多 不然会报错
Cleaning stale PIDs & sockets
It seems you are upgrading from major version 13 to major version 14.
It is required to upgrade to the latest 14.0.x version first before proceeding.
Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/index.html#upgrading-to-a-new-major-version
Thank you for using GitLab Docker Image!
Current version: gitlab-ce=14.5.2-ce.0
感谢阅读,有不足之处,欢迎留言探讨.