O DataStax OpsCenter 5.0.0 API não aumenta last_seen quando os nós estão inativos se o DataStax OpsCenter Agent estiver inoperante, usado para trabalhar com o 3.2.2

1

Eu tenho usado a API REST do DataStax OpsCenter (Enterprise) 5.0.0 com o DSE 4.5.1 (Cassandra 2.0.9) para consultar o terminal / $ cluster_name / nodes e ver o campo last_seen pelo número de segundos desde cada nó dado foi visto para ver se consigo detectar os nós descendente através da API do DataStax OpsCenter.

Para os nós que estão acima, last_seen é 0. Ao encerrar o processo do Cassandra, last_seen começa a incrementar e redefine para 0 quando o processo retorna.

No entanto, notei que se o DataStax OpsCenter estiver inativo quando um nó ficar inativo, depois que ele voltar, last_seen permanecerá com 0, significando que você não pode dizer se um nó está ativo ou se ele está inoperante e nunca foi visto.

O mesmo problema ocorre se o DataStax OpsCenter Agent ficar inativo. Se o processo de Cassandra cair depois, last_seen também permanecerá 0.

Eu testei isso no meu 3.2.2 OpsCenter (Community) mais antigo com o DSC Cassandra 2.0.1 e ele parece ainda detectar que o processo do Cassandra está inativo e começa a incrementar last_seen mesmo quando o DataStax OpsCenter Agent é encerrado primeiro.

Agora, para robustez, eu realmente uso a visão do nodetool sobre a disponibilidade do nó Cassandra, mas certamente o método DataStax OpsCenter deve ser mais robusto na diferenciação entre nós / processos altos e baixos?

Isso é um bug no DataStax OpsCenter?

Existe outra maneira de determinar se um nó está ativo / inativo por meio da API REST do DataStax OpsCenter?

ps. Eu escrevi um monte de Cassandra e DataStax OpsCenter Nagios Plugins e é por isso que me deparei com isso, encontrá-los no meu link .

    
por Hari Sekhon 17.09.2014 / 12:19

1 resposta

0

A partir de uma observação puramente empírica, a API "... / nodes / < node_ip > / mode" retornará null se o nó estiver indisponível, caso contrário, a string "normal" (ou presumivelmente alguma outra string apropriada). Interprete o JSON de "nodes / all / mode" para todos os status de nós juntos.

Observe que eu já vi um certo atraso (alguns segundos) entre quando a API de "modo" muda e quando o OpsCenter mostra a alteração de status do nó, mas isso pode ser apenas o meu ambiente; YMMV.

    
por 18.09.2014 / 20:39