datastax-agent 無法連接錯誤
發現 Opscenter 代理存在問題。Opscenter 報告代理未連接,並且在每個節點的 agent.log 中,它們都報告以下內容:
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /127.0.0.1:9042 (com.datastax.driver.core. TransportException: [/127.0.0.1:9042] Cannot connect))
我不確定這是什麼時候開始的,但它是最近的,以前執行良好。
我們正在執行 datastax-agent 版本 5.1.0 和 Cassandra 版本:2.1.3。
任何關於在哪裡看的提示將不勝感激。
編輯: 我將保留下面引用的原始答案塊,但請不要嘗試遵循它。此處提供的解決方案是官方的並且經過測試可以正常工作!
如文件中所述:
注意:從 OpsCenter 5.1 版開始,address.yaml 中的 hosts 選項現在確定代理連接到哪些節點。有關配置更改和遷移路徑的更多資訊,請參閱升級指南。
因此,只需更改您的
address.yaml
以反映這些更改並重新啟動代理。例如,在我們的案例中,我們對此進行了以下更改:stomp_interface: 10.0.10.10 local_interface: 10.0.10.20
對此:
stomp_interface: 10.0.10.10 hosts: ["10.0.10.20"]
新
hosts
屬性是一個字元串數組,因此如果您需要多個介面,可以根據需要對其進行定制。但是以上對於標准設置應該足夠了。原答案在下面,請忽略。
自從我們升級到 Opscenter 5.1.0 後,我們遇到了同樣的問題。到目前為止,我們發現的唯一解決方法是更改 cassandra.yaml中的 rpc 設置:rpc_address:0.0.0.0
我知道這不是一種政治正確的方式,但它可以在不破壞一切的情況下完成工作,並且您可以讓 OpsCenter 工作,直到出現更正式的方式。
PS:我真的不明白為什麼有人會否決這個問題,這是一個嚴重的問題,它會破壞生產系統。