尝试将现有 Cassandra 集群添加到 OpsCenter 时遇到以下错误:
创建集群时出错:“ascii”编解码器无法对位置 0 中的字符 u'\u03a7' 进行编码:序数不在范围内(128)
OpsCenter 日志中记录了以下信息:
2015-06-25 11:30:51-0700 [] 错误:调用 CreateClusterConfController 时出现问题(UnicodeEncodeError):'ascii' 编解码器无法对位置 0 中的字符 u'\u03a7' 进行编码:序数不在范围内(128)文件“/usr/share/opscenter/lib/py-redhat/2.6/shared/amd64/twisted/internet/defer.py”,第 1020 行,在 _inlineCallbacks 中结果 = g.send(result)文件“/usr/lib/python2.6/site-packages/opscenterd/ClusterServices.py”,第 324 行,在 _makeAndStartServices 中文件“/usr/lib/python2.6/site-packages/opscenterd/ConfigFileManager.py”,第 154 行,在 loadFromDict 文件中fromDict 中的“/usr/lib/python2.6/site-packages/opscenterd/Config.py”,第 673 行
Datastax Enterprise (DSE) 4.7.0 和 OpsCenter 5.1.3 遇到了此错误。
答案1
问题是 OpsCenter 尝试使用无效凭据连接到新集群上的 JMX。我在 opscenterd.log 文件中发现了以下内容:
2015-06-25 11:30:51-0700 [] INFO:添加新集群“clusterxyz”:{u'jmx':{u'username':u'\u03a7',u'password':'*****',u'port':u'7199'},'kerberos_client_principals':无,'kerberos':无,u'agents':无,'kerberos_hostnames':无,'kerberos_services':无,u'cassandra':{u'username':u'',u'seed_hosts':u'172.16.0.200',u'api_port':u'9160',u'password':'*****'}}
回顾 OpsCenter 界面,我注意到“添加集群”对话框中有一个“添加凭据”链接。我单击该链接,发现 Firefox 自动填充了“JMX 用户名”和“JMX 密码”字段,其中包含无效信息。我清除了这些信息,然后就可以添加集群了。