18
2023
04
17:37:41

VNC登录虚拟机失败 |)排查指南(|



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

 

1、获取noVnc登陆地址后在浏览器中无法登陆虚拟机的可能原因

(1) 浏览器无法正确解析登陆URL中域名和IP地址的映射关系

(2) 浏览器的代理功能没有关闭

(3) 登陆地址URL填写错误

(4) 浏览器版本不支持

(5) 反向代理未添加nova-novncproxy的服务

(6) 反向代理的IP地址没有监听nova-novncproxy的服务 

 

2、关键日志如下:   

(1)operate日志中有获取url的操作记录(关键字:os-getVNCConsole),如果返回200,说明获取正常,否则,说明获取url失败。

--排查nova服务是否异常

--查看nova-api、nova-compute日志,看具体报错原因

(2)nova-console日志中会有将connect_info存储到memcache中的日志(关键字:Received Token)

(3)nova-console日志中会有check_token的日志(关键字:Checking Token),如果结果为True,说明token正常,如果是False,说明token无效。

 (4)operate日志中有连接服务端的操作日志(关键字:VNC)

 

3、定位步骤

step0: 虚拟机VNC登录问题,首先清理缓存,重启浏览器重新登录:

如果清理缓存之后还得不到解决,继续往下看。

 

step1: 首先根据浏览器的界面提示来区分大致的错误原因:

(1) ”无法显示此网页“

(2) ”Failed to connect to server“

(3) ”Authentication failed“

(4)  VNC登录卡在"Authentication OK" 或者报错"Server disconnected"

(5) “证书错误”

(6) “主机名无法解析”

(7) “连接超时”

(8)  “无法连接到xx服务器”

(9)  “server disconnected(code 1000,reason:Target closed)”

(10)  “failed to connect to server(code:1006)”

(11) 通过键盘输入字符,VNC界面显示乱码

 

1) ”无法显示此网页“,如下图所示

只要没有到noVNC页面,需要排查如下原因:

a)浏览器无法正确解析登陆URL中域名和IP地址的映射关系

b)浏览器的代理功能没有关闭

c)登陆地址URL填写错误

d)浏览器版本不支持

e)反向代理未添加nova-novncproxy的服务

f)反向代理的IP地址没有**nova-novncproxy的服务

 

2) ”Failed to connect to server“

标题为”noVNC“,说明已经进入noVNC 客户端了

a)查看nova-console日志中的check_token结果,如果为False,

      ①说明token过期

      ②novncproxy反向代理IP填写不对,使用cps template-params-show --service haproxy haprpxy 查询novncproxy的反向代理IP,如下图所示:

 ③检测memcache状态及连通性是否正常

b)通过connect_info中的host、port连接不上虚拟机,即网络不通。先看nova-novncproxy日志,看是否有报错信息,如果没有发现详细报错,可在novncproxy所在的节点ping一下connect_info中的host,看是否可以ping通,通过telnet命令查看port是否畅通。

c)虚拟机处于下电状态,nova-novncproxy日志中报错如下:

 在ecs-console中,如果打开多个页签,只在一个页签中做停止虚拟机的操作,其他页签不会主动刷新虚拟机状态,此时在ecs-console页面点击远程登录报1006错误。因此在远程登录前建议先在操作页签刷新下当前页签。

 

3) ”Authentication failed“

这种情况说明是密码校验失败,需要排查如下问题:

a)计算节点的根分区满了,导致密码校验异常(可以通过df -h查看)。

b)计算节点的根分区的文件个数达到上限了。

 

4)"Authentication OK" 或者报错"Server disconnected"

出现上述情况,是因为已经有其他链接登录到了VNC导致的,此时需要释放已经存在的连接,如果不确定谁登录了,可以通过硬重启虚拟机来断开。

 

(5) 如果提示的错误信息如下,表示该浏览器的版本有误,请使用FireFox或者Chrome浏览器,具体的浏览器支持请参考https://github.com/kanaka/noVNC/wiki/Browser-support。

 

(6) 如果出现如下错误,说明无法连接对应的域名,参考step2。

 

(7) 如果出现如下错误,说明连接对应的IP,请确认网络是否正常ping通对应的IP

 

(8) 如果出现如下错误,说明该IP上没有开启对应的端口,请确认haproxy服务所在的单板上端口是否正确,如果是采用端口映射的方式,请确认映射是否成功(可以使用netstat -anp | grep 端口号)。

 

(9) 如果出现如下错误,说明密码错误或者已经超期,请重新获取noVNC的URL后再次尝试,如果不行请联系开发人员。

 

(10) 如果出现如下错误,错误码1006,请参考step3。

 

(11) 通过键盘输入字符,VNC显示乱码问题

可通过如下命令,直接向虚拟机发送字符,此时VNC界面上会显示相应的字符,使用该方法可以界定是novnc客户端还是server的问题:

virsh qemu-monitor-command --hmp vm_name sendkey 90909

 

step2: 当采用域名的方式进行noVNC访问的时候,需要对域名进行解析:

a. 如果可以采用IP进行noVNC访问,可以通过在输入URL的时候将域名修改为IP或者转步骤step4;

b. 如果采用的是DNS服务器解析域名,请确认能否ping通DNS服务器的IP,并且确认DNS服务器是否正常,问题修复后请重试。

c. 如果采用的是本地进行域名解析,请确认C:\Windows\System32\drivers\etc\ hosts下是否有对应域名和IP的映射关系,如果没有请添加对应的映射方式后重试;

 

step3: 查看单板上的/var/log/fusionsphere/component/nova-console/nova-console.log日志,查看如否存在如下提示信息:  

 a. 如果存在错误提示“Checking Token: encode-****, False”,则说明对应的token有误,可能是过期了,请重新获取URL再进行访问;

b. 如果访问URL对应的时间点没有日志,请登录到其他的控制节点查看nova-console的日志;

c. 如果存在提示“Checking Token: encode-***, True”,请转步骤step5;

 

step4: 可以通过修改nova-compute中的novncproxy_base_url配置项重新设置获取的noVNC的URL,novncproxy_base_url的值表示noVNC的URL中问号之前的内容,设置命令为:

cps template-params-update --parameter novncproxy_base_url https://****:端口/vnc_auto.html --service nova nova-compute

设置完成之后重新获取URL进行访问。

 

step5: 查看单板上的/var/log/fusionsphere/component/nova-console/nova-console.log日志,查看如否存在如下提示信息:

a. 如果存在错误提示“InstanceNotFound: Instance *** could not be found”,则说明nova-console以及nova-compute中的instance_name_template配置项内容不一致,需要修改nova-console或者nova-compute的instance_name_template配置项,然后重新访问URL;

 

4、对接vmware虚拟机登录问题

使用VNC方式登录VMware虚拟化中的虚拟机前,需要对VMware主机的防火墙属性进行配置。配置方法:登录vSphere Client,选中集群中的主机(所有主机都需要配置),在主机的“配置”页签中选择“安全配置文件”,在防火墙属性中勾选“gdbserver”


本文链接:https://www.hqyman.cn/post/3930.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: