OpenStack使用Horizon登录报错问题的解决

本文解决了一个OpenStack Horizon登录失败的问题,通过排查发现是Neutron组件的用户密码配置错误导致。通过对Neutron配置文件的修正,成功解决了登录问题。

OpenStack使用Horizon登录报错问题的解决

1、现象
安装完horizon后,输入URL可以访问登录页面,但是在登录页面输入用户名和密码,登录报错。

2、分析及解决
分别使用keystone、cinder、glance、neutron、nova(这次环境中控制节点上安装了这些组件)的客户端命令调用其API进行检测:
如使用以下命令:
#keystone user-list
#cinder endpoints
#glance image-list
#neutron subnet-list
#nova image-list

发现neutron subnet-list命令输出异常:
Authentication required.

查看neutron日志:
#tail -f -n 1000 /var/log/neutron/server.log | more


2015-04-17 09:10:26.173 1843 WARNING keystoneclient.middleware.auth_token [-] Aut
horization failed for token b6982224b184ebba284a6bb4ecbee0ae
2015-04-17 09:11:12.320 1843 WARNING keystoneclient.middleware.auth_token [-] Une
xpected response from keystone service: {u’error’: {u’message’: u’Could not find
user, %SERVICE_USER%.’, u’code’: 401, u’title’: u’Unauthorized’}}
猜测是用户配置出了问题。

另外从Horizon的日志也可以看出是neutron组件出了问题:
tail -f /var/log/apache2/error.log

[Fri Apr 17 01:17:14 2015] [error]     headers=headers, params=params)
[Fri Apr 17 01:17:14 2015] [error]   File “/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py”, line 1168, in retry_request
[Fri Apr 17 01:17:14 2015] [error]     headers=headers, params=params)
[Fri Apr 17 01:17:14 2015] [error]   File “/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py”, line 1103, in do_request
[Fri Apr 17 01:17:14 2015] [error]     resp, replybody = self.httpclient.do_request(action, method, body=body)
[Fri Apr 17 01:17:14 2015] [error]   File “/usr/lib/python2.7/dist-packages/neutronclient/client.py”, line 190, in do_request
[Fri Apr 17 01:17:14 2015] [error]     self.authenticate()
[Fri Apr 17 01:17:14 2015] [error]   File “/usr/lib/python2.7/dist-packages/neutronclient/client.py”, line 226, in authenticate
[Fri Apr 17 01:17:14 2015] [error]     token_url = self.auth_url + “/tokens”
[Fri Apr 17 01:17:14 2015] [error] TypeError: unsupported operand type(s) for +: ‘NoneType’ and ‘str’

此时去确认neutron配置文件:
#more /etc/neutron/neutron.conf
果然发现问题,这里的问题是用户密码设置错误,在配置文件中更改密码,horizon登录正常。

3、同类问题扩展
这类问题除了组件配置文件配置问题外,也有可能是endpoint设置有问题(同样可以用组件客户端命令输出来确认),只不过此时要在mysql数据库中查找并修改配置信息:

mysql -uroot -p

mysql> show databases;
mysql> use keystone
mysql> select * from endpoint;
mysql> create table endpoint_bak as select * from endpoint;
mysql> update endpoint set url=‘http://192.168.10.1:9696’ where id=‘b1945b7a91d74093ae12146000119267’;

4、总结
horizon登录错误时,可能是因为endpoint配置错误或者用户密码租户等配置错误,总之首先要确认每个组件的客户端命令是否输出正常,发现不正常输出的组件后,查看其日志或endpoint配置排除错误。

作者:wang_san_shi
来源:优快云
原文:https://blog.youkuaiyun.com/wang_san_shi/article/details/45099513
版权声明:本文为博主原创文章,转载请附上博文链接!

### OpenStack 报错 '出错啦!遇到异常情况,请刷新' 的解决方案 在OpenStack环境中,当用户尝试访问Dashboard时出现“出错啦!遇到异常情况,请刷新”的提示,通常与配置错误或服务状态异常有关。以下是可能的原因及对应的解决方法: #### 1. **检查数据库连接数配置** 如果MariaDB的连接数不足,可能会导致OpenStack服务无法正常运行。默认情况下,MariaDB的最大连接数为100,这在高流量环境下可能不够。可以通过修改MariaDB配置文件来增加最大连接数: ```bash echo "max_connections=1500" >> /etc/my.cnf.d/mariadb_openstack.cnf ``` 之后重启MariaDB服务以使更改生效: ```bash systemctl restart mariadb.service ``` 此操作可以解决因数据库连接限制引发的问题[^1]。 #### 2. **验证OPENSTACK_HOST字段是否正确** 确保`/etc/openstack-dashboard/local_settings`中的`OPENSTACK_HOST`字段已正确设置为控制器节点的主机名或IP地址。例如: ```python OPENSTACK_HOST = "controller" ``` 保存后,重启HTTP和缓存服务以应用更改: ```bash systemctl restart httpd.service memcached.service ``` 此步骤有助于排除因配置错误导致的Dashboard异常[^4]。 #### 3. **检查Python模块依赖** 某些OpenStack组件依赖特定的Python库,如果这些库缺失或版本不匹配,可能导致报错。例如,`six`模块缺失可能会引发问题。可以通过以下命令安装或更新相关模块: ```bash pip install --upgrade six ``` 此外,如果脚本顶部包含`#!/usr/bin/python3 -s`,可能会禁用site-packages路径,从而导致模块找不到。可以尝试移除`-s`参数并重新运行脚本[^3]。 #### 4. **排查网络连通性** 如果虚拟机外部能够访问但无法ping通百度,可能是DNS配置或路由问题。按照以下步骤排查: - 检查虚拟机网卡状态:`ping <本地IP>`。 - 验证网关连通性:`ping <网关IP>`。 - 测试DNS可达性:`ping www.baidu.com`。 若上述任一步失败,需检查网络配置或参考Cisco CCNA知识进行进一步排查[^1]。 #### 5. **查看日志文件** OpenStack的日志文件是诊断问题的关键资源。重点检查以下日志: - Horizon日志:`/var/log/httpd/error_log` 或 `/var/log/apache2/error.log`。 - Nova日志:`/var/log/nova/`。 - Neutron日志:`/var/log/neutron/`。 通过分析日志中的错误信息,可以定位具体原因并采取相应措施。 --- ### 示例代码:检查OPENSTACK_HOST配置 ```bash # 检查当前配置 grep OPENSTACK_HOST /etc/openstack-dashboard/local_settings # 修改配置 sed -i 's/^OPENSTACK_HOST.*/OPENSTACK_HOST = "controller"/' /etc/openstack-dashboard/local_settings # 重启服务 systemctl restart httpd.service memcached.service ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值