Monitorar nós de cluster
Um cluster do GitHub Enterprise Server é formado por serviços redundantes distribuídos em dois ou mais nós. Em caso de falha de um serviço ou de um nó inteiro, a falha não será aparente de imediato para os usuários do cluster. No entanto, como o desempenho e a redundância são afetados, é importante monitorar a integridade de um cluster do GitHub Enterprise Server.
Neste artigo
Verificar o status do cluster manualmente
O GitHub Enterprise Server tem um utilitário integrado de linha de comando para monitorar a integridade do cluster. No shell administrativo, acionar o comando ghe-cluster-status
executa uma série de verificações de integridade em cada nó, verificando também o status do serviço e da conectividade. A saída mostra todos os resultados de teste, inclusive o texto ok
ou erro
. Por exemplo, para exibir somente os testes com falha, execute:
admin@ghe-data-node-0:~$ status-ghe-cluster | grep erro
> mysql-replicacao no-dados-ghe-0: erro Parado
> mysql cluster: erro
Observação: se não houver testes com falha, o comando não vai gerar saída. Nesse caso, a integridade do cluster terá sido preservada.
Monitorar o status do cluster com o Nagios
É possível configurar o Nagios para monitorar o GitHub Enterprise Server. Além de monitorar a conectividade básica para cada nó do cluster, você pode verificar o status do cluster configurando o Nagios para usar o comando ghe-cluster-status -n
. Fazer isso gera uma saída em um formato que o Nagios consegue interpretar.
Pré-requisitos
- Host Linux com Nagios;
- Acesso de rede ao cluster do GitHub Enterprise Server.
Configurar o host do Nagios
-
Gere uma chave SSH com a frase secreta em branco. O Nagios usa essa informação para fazer a autenticação ao cluster do GitHub Enterprise Server.
nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096 > Gerar par de chave rsa pública/privada. > Insira o arquivo no qual a chave será salva (/home/nagiosuser/.ssh/id_rsa): > Insira a frase secreta (sem frase secreta em alguns casos): pressione enter para ignorar > Insira a frase secreta novamente: pressione enter novamente > Sua identificação foi salva no /home/nagiosuser/.ssh/id_rsa. > Sua chave pública foi salva no /home/nagiosuser/.ssh/id_rsa.pub.
Aviso de segurança: chaves SSH sem senha podem representar um risco de segurança se tiverem permissão de acesso total a um host. Limite o acesso desse tipo de chave a comandos de somente leitura.
-
Copie a chave privada (
id_rsa
) para a pasta inicialnagios
e defina a propriedade adequada.nagiosuser@nagios:~$ sudo cp .ssh/id_rsa /var/lib/nagios/.ssh/ nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_rsa
-
Para autorizar a chave pública a executar somente o comando
ghe-cluster-status-n
, use o prefixocommand=
no arquivo/data/user/common/authorized_keys
. No shell administrativo de qualquer nó, modifique esse arquivo para incluir a chave pública gerada na etapa 1. Por exemplo:command="/usr/local/bin/ghe-cluster-status -n" ssh-rsa AAAA....
-
Valide e copie a configuração para cada nó do cluster executando
ghe-cluster-config-apply
no nó em que você modificou o arquivo/data/user/common/authorized_keys
.admin@ghe-data-node-0:~$ aplicar-config-ghe-cluster > Validando configuração > ... > Configuração de cluster concluída
-
Para testar se o plugin do Nagios consegue executar o comando, execute-o de forma interativa no host do Nagios.
nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H hostname -C "ghe-cluster-status -n" -t 30 > OK - Nenhum erro detectado
-
Crie uma definição de comando na sua configuração do Nagios.
Definição de exemplo
definir comando { nome_comando verificar_ssh_ghe_cluster linha_comando $USER1$/verificar_por_ssh -H $HOSTADDRESS$ -C "status-cluster-ghe -n" -l admin -p 122 -t 30 }
-
Adicione este comando a uma definição de serviço para um nó no cluster do GitHub Enterprise Server.
Definição de exemplo
definir host{ uso host-genérico nome_host nó-dados-ghe-0 alias nó-dados-ghe-0 endereço 10.11.17.180 } definir serviço{ uso serviço-genérico nome_host nó-dados-ghe-0 descrição_serviço Status GitHub Cluster verificar_comando verificar_cluster_ssh_ghe }
Depois de adicionar a definição ao Nagios, a verificação de serviço será executada conforme a sua configuração. Você deve conseguir ver o serviço recém-configurado na interface da web do Nagios.