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 ed25519 > Generating public/private ed25519 key pair. > Enter file in which to save the key (/home/nagiosuser/.ssh/id_ed25519): > Enter passphrase (empty for no passphrase): leave blank by pressing enter > Enter same passphrase again: press enter again > Your identification has been saved in /home/nagiosuser/.ssh/id_ed25519. > Your public key has been saved in /home/nagiosuser/.ssh/id_ed25519.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.
Observação: Se você estiver usando uma distribuição do Linux que não seja compatível com o algoritmo Ed25519, use o comando:
nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096
-
Copie a chave privada (
id_ed25519
) para a pasta inicialnagios
e defina a propriedade adequada.nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/ nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519
-
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-ed25519 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:~$ ghe-cluster-config-apply > Validando a 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.