【问题标题】:Authentication failures in cassandra when 1 of 16 nodes is down当 16 个节点中的 1 个节点关闭时,cassandra 中的身份验证失败
【发布时间】:2015-09-04 13:01:12
【问题描述】:

我有一个 Cassandra 集群正在运行:

卡桑德拉 2.0.11.83 | DSE 4.6.0 | CQL 规范 3.1.1 | Thrift 协议 19.39.0

集群有 18 个节点,分布在 3 个数据中心,每个数据中心 6 个。我的 system_auth 键空间定义了以下复制:

复制 = { 'class': 'NetworkTopologyStrategy', 'DC1':'4', 'DC2':'4', 'DC3': '4'}

我的身份验证器/授权器设置为:

身份验证器:org.apache.cassandra.auth.PasswordAuthenticator

授权人:org.apache.cassandra.auth.CassandraAuthorizer

今天早上我关闭了 DC1 中的一个节点进行维护。在几秒钟/分钟内,客户端应用程序开始记录异常,如下所示:

“用户 my_application_user 对其父级或其任何父级没有修改权限”

在其他节点之一上运行“列出 my_application_user 的所有权限”表明用户在键空间 xxxxx 上有 SELECT 和 MODIFY,所以我很困惑。我有设置问题吗?这是某种错误吗?

【问题讨论】:

  • 您需要确保还增加了 dse_security 的复制因子,然后在两个密钥空间上运行 nodetool repair(参考:Configuring system_auth and dse_security keyspace replication | DataStax Enterprise 4.7 Documentation)。
  • 谢谢 BrianC。我检查了一下,似乎没有那个键空间——我唯一拥有的(除了用户创建的)是:“system dse_system system_auth system_traces”。这个集群曾经一度在 DSE 4.0.1 上,后来升级到 4.6.0,所以也许这就是为什么? dse_system ks 用 EverywhereStrategy 的 rep 设置,system ks 用 LocalStrategy 设置。所有其他人都使用 NetworkTopologyStrategy。我错过了什么?再次感谢您的回复!
  • 要检查的两件事是所有这些键空间在每个 DC 中都具有足够的复制需要。您为 system_auth 显示的那个很好,任何使用 EverywhereStrategy 的都很好(它会自动发生)。然后第二件事是在更改 RF 后对所有节点上的这些键空间进行 nodetool 修复。我不知道这是否是您的问题,但这就是我要开始的地方。您是否也尝试过对每个节点进行“列出所有权限”检查以确保它们都同意?
  • 嗨,BrianC,感谢您的支持。 :) 集群运行 OpsCenter 修复服务,自上次更改用户名/密码以来,它已完成至少 3-4 次修复遍,自上次更改 RF 以来甚至更多。我还测试了在每个节点上以该用户身份登录(通过 'cqlsh LocalNodeIP -u my_application_user -p user_pass -f commands_file_containing_list_all_permissions_for_user' 并且它可以很好地登录到所有节点并且他们同意权限。我将尝试在system_auth KS,看看情况如何。还有其他 KS 吗?
  • 顺便说一句,我的最终目标是停用一半的节点,而给我带来问题的节点(在我将其关闭以进行维护时导致登录失败)是计划停用的节点之一,所以我需要弄清楚交易是什么,然后再用核弹击中自己的脚。 :(

标签: authentication cassandra


【解决方案1】:

按照 BrianC 上面的建议,将其重新发布为答案。

所以这已经解决了......这是似乎已经修复它的事件序列:

  1. 再添加 18 个节点
  2. 在原始节点上运行清理(这是原始计划的一部分)
  3. 对 1 个表运行清理,因为它在清理时引发异常
  4. 在原始问题节点上的 system_auth KS 上运行修复
  5. 等待维修服务完成所有键空间的完整传递
  6. Decom 原来的 18 个节点。

老实说,我不知道是什么解决了它。 system_auth 修复最有意义,但没有意义的是它之前运行了很多遍,所以为什么现在工作,我不知道。我希望这至少可以帮助某人。

【讨论】:

    猜你喜欢
    • 2016-05-20
    • 2021-11-30
    • 2023-03-21
    • 1970-01-01
    • 2014-10-20
    • 2021-08-25
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多