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://hqyman.cn/post/3930.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~