873. 【运维】踩坑记录

作者: 七镜 | 来源:发表于2023-12-04 21:08 被阅读0次

    今天在部署一个数仓平台到另一个环境时,为了简化,改变了以往部署的底座,原来是部署在k8s上,这次是部署在containerd里头。
    直接上重点:部署完成之后,发现客户端网站登录之后,访问其他api时,服务端返回报错:{"msg":"invalid token","code":401}。意思呢就是令牌无效。可是命名是输入用户名密码,提示登录成功了的。

    后来仔细对比之后,发现新部署的环境,网站客户端登录后,访问api接口,没有携带token(正常登录应该是携带token的)。后来一拍大腿,不会是因为网站客户端所在容器里头的时间不对,导致token直接失效了吧。

    分别进入客户端和服务端的容器,发现时间确实对不上:
    服务端时间:

    [root@eb8c22ee4a4e conf]# date
    Sun Dec  3 11:38:19 CST 2023
    

    客户端时间:

    ~ # date
    Sun Dec  3 03:40:58 UTC 2023
    

    于是解决办法出来了:

    Sun Dec  3 03:42:50 UTC 2023
    [root@3374f389af7c /]# 
    [root@3374f389af7c /]# 
    [root@3374f389af7c /]# 
    [root@3374f389af7c /]# ls /usr/share/zoneinfo/A 
    Africa/     America/    Antarctica/ Arctic/     Asia/       Atlantic/   Australia/  
    [root@3374f389af7c /]# rm -rf /etc/localtime       
    [root@3374f389af7c /]# 
    [root@3374f389af7c /]# 
    [root@3374f389af7c /]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   
    [root@3374f389af7c /]# 
    [root@3374f389af7c /]# date
    Sun Dec  3 11:43:41 CST 2023
    

    即:重新设置一下时区。

    转折点

    设置完之后,发现还是没携带token,我从代码里头去找,发现用到了什么Vue['cookies'],我是写react的,不会Vue,但都是前端代码,知道和cookies有关,于是重新比对两次请求,发现cookies果然不一样:
    有问题的客户端的cookies:

    
    KuboardLogin=true; _ga=GA1.1.903123048.1701500171; KuboardToken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjBiNTYwYjAxZWZkYmI0YmM2OWEwYWFmOTBlZDViYjA1M2NhNTA2MjMifQ.eyJpc3MiOiJodHRwOi8vMTAuMC4xLjE3MzozMDA4MC9zc28iLCJzdWIiOiJDZ1ZoWkcxcGJoSUhaR1ZtWVhWc2RBIiwiYXVkIjoia3Vib2FyZC1zc28iLCJleHAiOjE3MDIxMDUyNTgsImlhdCI6MTcwMTUwMDQ1OCwiYXRfaGFzaCI6Ijl1c1ltQmdZS1BaMm0ta3ss1RtRXciLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZ3JvdXBzIjpbImFkbWluaXN0cmF0b3JzIl0sIm5hbWUiOiJTeXN0ZW0gQWRtaW5pc3RyYXRvciIsInByZWZlcnJlZF91c2VybmFtZSI6ImFkbWluIn0.Bl8ZBooW0MKsUUir8sP2l9rDqrPiBFIFZqpIhnJzf3Ufx2IRaN200gTgmZOKNSSuF_tapbujycfbEOOLOPwTyuY3gUR_7pD7BE6yTG7v_BRiH4MrmaxVsftYrTrs0UIhukSXzw9O79TnYKEtMTknyqLExkzD4D8SFe58HMYBlOfz2GSeH-1vqW8hGab8HiOvO0N4kP4fPCc0qX-fKmUVtOBgN-yTGhewSus68dMA-6gtbmmT9pUV_ATClsc2iL29XM4_cMc9PdVKD8TX7dNPYNucpEyxoH0_BKARYISLewVKTXZKKH9QDjf5m0n1XwaEQZ8oO7U5Q3d0laK0C32sEw; _ga_YFKNQX5E65=GS1.1.1701500171.1.1.1701502020.0.0.0; jms_csrftoken=zlg5uBLm6IPoUWnyTWY9omp0Ko8VuQiBdT8Nnf6hP9wgzOToUgi5ZovHZNGNxbvJ; token=APRcrA+5wXXPsN8BB3azWsf60wCMtjoUagPkTHJh9FYtFBkU1U8Ujy5jj96RB7WQwWc2rEISM9Jtee5eX3NMtNnIFgrhf2bCbI8srwRIG2bDTmYEvkoh/YiOzTxx0S3h/ynl758zuHTi7dqjyJEsmHua7zjgfqgJQd89mKiuG9LJ5DnbDD39/DNr1Tq+EM+MZK3X9L03yPsrAhQ2ydf3LWbZn+scqkCb/zje77iGIN43mH1PEm76rzR0H6t4A2gzKKn+TPifWuER+q6dmeKfAsncLqcVlgrafnVuMD8bLe2pqlQf9O/ppxQEq7KzT/Fi4slG5KPh6NpoQlBvGq3IJWMD8Zcy7+RfpvIoYKujZADjsYfnNMn4jOQS0NSVrpD8qa+JbM2l7vM/dxPX41Bmfycou543zSyxyeMLxC85GLjfyIOuL0yHsVWNY+jjbAJ2DahRIOwPiunRYCNfOzm/cs4x1RMNFaM0RKDcDfxWpFR1ZXzrPMuIpYF+JIrn/KyOMFkLIOCI+MxcbU5yJWoJlVb98KS8f+sH4RRHyrOBcI=; JSESSIONID=3B612517164E3A552B3D75D5D9CFDB82
    

    (- 发现它携带的是另一个网站kuboard的cookies,与大概明白啥回事了:这两个网站的IP一样,知识端口不一样,很可能是cookies串台了。)
    验证猜想:我从另一个没使用过kuboard网站的浏览器登录,结果发现正确客户端的cookies如下:

    Cookies:token=ebe77b4c4b3f1c11316e2a842410759d
    

    而且确实登录成功了。

    感悟有二:其一:老的环境很坑一碰就碎
    其二:解决问题,需要有知识面的支撑。
    其三:从各个数据流经点,找寻异常

    相关文章

      网友评论

        本文标题:873. 【运维】踩坑记录

        本文链接:https://www.haomeiwen.com/subject/obyhgdtx.html