jumpserver 1.4.8升级到2.8.3中间遇到的问题
先上一官方文档的连接地址:https://docs.jumpserver.org/zh/master/install/upgrade/upgrade/
根据官方文档进行升级操作发现提示问题
[root@jumpserver jumpserver-installer-v2.9.0]# ./jmsctl.sh start
Creating jms_core ... done
Creating jms_guacamole ... done
Creating jms_lina ... done
Creating jms_luna ... done
Creating jms_koko ... done
Creating jms_celery ... done
Creating jms_nginx ... done
[root@jumpserver jumpserver-installer-v2.9.0]# ./jmsctl.sh restore_db /opt/jumpserver.sql
开始还原数据库: /opt/jumpserver.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1049 (42000): Unknown database 'jumpserver'
read unix @->/var/run/docker.sock: read: connection reset by peer
[ERROR] 数据库恢复失败. 请检查数据库文件是否完整, 或尝试手动恢复!
[root@jumpserver jumpserver-installer-v2.9.0]# ./jmsctl.sh restore_db /opt/jumpserver.sql
开始还原数据库: /opt/jumpserver.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[SUCCESS] 数据库恢复成功!
[root@jumpserver jumpserver-installer-v2.9.0]# ./jmsctl.sh restart
Stopping jms_core ... done
Stopping jms_koko ... done
Stopping jms_guacamole ... done
Stopping jms_lina ... done
Stopping jms_luna ... done
Stopping jms_nginx ... done
Stopping jms_celery ... done
Removing jms_core ... done
Removing jms_koko ... done
Removing jms_guacamole ... done
Removing jms_lina ... done
Removing jms_luna ... done
Removing jms_nginx ... done
Removing jms_celery ... done
Creating jms_core ... done
ERROR: for koko Container "4dbd3e047e42" is unhealthy.
ERROR: for nginx Container "4dbd3e047e42" is unhealthy.
ERROR: for celery Container "4dbd3e047e42" is unhealthy.
ERROR: for lina Container "4dbd3e047e42" is unhealthy.
ERROR: for guacamole Container "4dbd3e047e42" is unhealthy.
ERROR: for luna Container "4dbd3e047e42" is unhealthy.
ERROR: Encountered errors while bringing up the project.
[root@jumpserver jumpserver-installer-v2.9.0]#
问题背景:新到一家公司,他们使用的jumpserver的版本比较老了
根据之前的新闻和使用习惯,以及为后续统一服务器管理等操作,想把版本升级到最新。
该文档写于2021年4月16日
第一次升级的时候是2021年4月14日,那个时候最新版本还是2.8.3,现在已经是2.9.0了。可见jumpserver的更新迭代速度之快。好了废话不多说。讲一下这次升级中间遇到的问题
这个问题最主要的就是在同步表结构的时候速度有点慢
我需要同步的数据库导出的文件大小为957M,同步耗时差不多35分钟左右。据jumpserver的内部人员介绍,说是顺丰那边的升级,当时使用了一整天来做db的同步更新。所以在这里需要有点耐心~
一定要等到出现如下信息的时候再去启动服务
首先升级的时候发现上面的问题,然后就各种查资料,其实官方的文档上面都已经给出来了,但是没有仔细认真的阅读。
找了另外一台电脑安装了vm 然后起了一个centos7.9,安装完jumpserver 2.8.3启动的时候提示
[root@localhost jumpserver-installer-v2.8.3]# ./jmsctl.sh start
Creating jms_mysql ... done
Creating jms_redis ... done
ERROR: for core Container "f43dfd58d697" is unhealthy.
ERROR: Encountered errors while bringing up the project.
这个提示是因为服务器的内存配置没有满足最低要求。需要2c8G的最低服务器配置
从1.4.8升级到1.5.4的版本可以参考
https://jumpserver.readthedocs.io/zh/1.4.8/upgrade.html
中间遇到问题的时候去google查询答案,到https://github.com/jumpserver/jumpserver/issues 去搜索的时候发现了有个哥们说了一下这个。
然后立马加了jumpserver的微信群 https://docs.jumpserver.org/zh/master/about/contact/
群里面简单描述了一下自己遇到的问题,大神立马给了回复。相当感人~,这里推一下他的微信。
直接上手给我远程演示了。
在演示的过程中发现了其中用了一个mysql_upgrade的命令,目前来看这个可能是因为mysql版本跨度的问题。默认是将mysql5.6的数据导入mysql5.7的数据应该没啥问题。
最后还一个尴尬的问题是,我本机开了浏览器的代理,最后通过nginx做反向代理的时候发现一直接提示404,之前一直怀疑是不是nginx哪里配置除了问题,加了日志,发现请求根本没有过来,后面通过浏览器F12排查到是应为请求走了代理。
如果出现系统用户登陆不了的问题,说明是配置文件里面的sercret和token没有修改为原来的。
2.6.0之后的版本配置文件为/opt/jumpserver/config/config.txt 所以一定要注意。
使用nginx作为代理入口,配置ssl证书,可以参考:
server {
listen 80;
server_name jumpserver.XXX.com _; # 自行修改成你的域名
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name jumpserver.XXX.com; # 自行修改成你的域名
ssl_certificate /opt/nginx/sslkey/XXX.com.crt; # 自行设置证书
ssl_certificate_key /opt/nginx/sslkey/XXX.com.key; # 自行设置证书
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_protocols TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=63072000" always;
client_max_body_size 4096m; # 录像及文件上传大小限制
location / {
# 这里的 ip 是后端 JumpServer nginx 的 ip
proxy_pass http://10.122.2.185:8080;
proxy_http_version 1.1;
proxy_buffering off;
proxy_request_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_log /opt/nginx/logs/jumpervr2.9.0_error.log;
access_log /opt/nginx/logs/jumpervr2.9.0_access.log;
}
俗话曰:能管好1000台服务器,不一定能管理好10个人。机器是死的人是活的。但是管理的思想和理念应该是相通的。