Monitoramento | Farmguardians | Atualizar

PUBLICADO EM 15 de maio de 2019

Por padrão, o Zevenet Executa simples verificações de saúde para os backends ou servidores reais, mas às vezes essa verificação não é suficiente para determinar se os back-ends estão funcionando corretamente. Por esse motivo, o Zevenet implementa um serviço que executa e gerencia verificações de integridade avançadas por meio de um daemon que usa plugins chamados Farmguardian.

A principal tarefa do Farmguardian é funcionar como uma ferramenta de monitoramento avançado para back-ends de aplicativos, para isso, Farm Guardian lê a configuração do farm e obtém a lista de backend, e auxiliado por um plugin verifica o estado de saúde do backend, Farm Guardian atualiza o backend status para o determinado farm gerenciando se o balanceador de carga deve enviar tráfego para tal back-end.

Nesta seção, você pode configurar a verificação do Farmguardian. Você pode ver duas guias Global e Fazendas.

Configurações globais

Na seção Global, há configurações de verificação de saúde para certas verificações de saúde Farmguardian, como mostrado abaixo.
Os campos desta aba não são editáveis ​​se a verificação for pré-carregada no sistema, se você quiser modificar essa verificação, você deve criar um novo Farmguardian habilitando o parâmetro de cópia e adicionando a verificação desejada como modelo e modificando o novo.

  • Nome. Nome de identificação da verificação atual do Farm Guardian, não pode ser editado.
  • Descrição. Este campo contém uma breve descrição do cheque Farmguardian.
  • Command. Defina o comando executado para verificar o status dos backends.
  • Intervalo. Tempo em segundos entre os lotes de verificação de integridade em relação a todos os backends. Observe que a cada intervalo de tempo, a verificação do farmguardian irá parar e ser relançada, por isso deve ser alta o suficiente para poder verificar todos os backends (timeout * nº backends + 1)
  • Cortar Conexões. Quando essa opção está ativada, as conexões atuais do back-end detectado são liberadas, forçando uma reconexão imediata a um back-end disponível. Se desativado, as conexões atuais serão drenadas sem desconectar nenhum cliente.
  • Logs. Ativa ou desativa os registros de todas as verificações de farmguardians. Com os logs desativados, apenas as alterações de status do backend são mostradas nos arquivos de log.

Configurar verificações de integridade

Todos os plugins disponíveis para Farmguardian podem ser encontrados no diretório / usr / local / zevenet / app / libexec / dentro do balanceador de carga.

O Farm Guardian usa plug-ins para configurar verificações de integridade avançadas para detectar se um determinado servidor real está funcionando conforme o esperado usando opções personalizadas. Há muitas verificações de integridade para todo tipo de protocolo, serviço ou aplicativo. Os plugins mais importantes são descritos abaixo.

check_ftp: Este plugin testa conexões FTP com o host especificado.

Usage:
check_ftp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_fping: Este plugin irá usar o comando fping para fazer ping no host especificado para uma verificação rápida.

Usage:
 check_fping <host_address> -w limit -c limit [-b size] [-n number] [-T number] [-i number]

check_http: Este plug-in testa o serviço HTTP no host especificado. Ele pode testar protocolos simples (HTTP) e seguros (HTTPS), seguir redirecionamentos, procurar por seqüências de caracteres e expressões regulares, verificar horários de conexão e relatar tempos de expiração de certificados, códigos de retorno HTTP, etc.

Usage:
 check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
       [-J <client certificate file>] [-K <private key>]
       [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L] [-E] [-a auth]
       [-b proxy_auth] [-f <ok|warning|critcal|follow|sticky|stickyport>]
       [-e <expect>] [-d string] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]
       [-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>]
       [-A string] [-k string] [-S <version>] [--sni] [-C <warn_age>[,<crit_age>]]
       [-T <content-type>] [-j method]

check_imap: Este plugin testa a conexão IMAP com o host especificado.

Usage:
check_imap -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_ldap: Este plugin testa serviços LDAP. Pode ser testado com uma determinada pesquisa.

Usage:
 check_ldap -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]
       [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]
       [-2|-3] [-4|-6]

check_ldaps: Este plugin testa serviços LDAPS. Pode ser testado com uma determinada pesquisa.

Usage:
 check_ldaps -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]
       [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]
       [-2|-3] [-4|-6]

check_mysql: Este plugin testa conexões com um servidor MySQL.

Usage:
 check_mysql [-d database] [-H host] [-P port] [-s socket]
       [-u user] [-p password] [-S] [-l] [-a cert] [-k key]
       [-C ca-cert] [-D ca-dir] [-L ciphers] [-f optfile] [-g group]

check_mysql_query: Este plug-in verifica um resultado da consulta em relação aos níveis de limite.

Usage:
 check_mysql_query -q SQL_query [-w warn] [-c crit] [-H host] [-P port] [-s socket]
       [-d database] [-u user] [-p password] [-f optfile] [-g group]

check_pgsql: Teste se um banco de dados PostgreSQL está aceitando conexões.

Usage:
check_pgsql [-H <host>] [-P <port>] [-c <critical time>] [-w <warning time>]
 [-t <timeout>] [-d <database>] [-l <logname>] [-p <password>]
[-q <query>] [-C <critical query range>] [-W <warning query range>]

check_pop: Este plugin testa conexões POP com o host especificado.

Usage:
check_pop -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_radius: Testa para ver se um servidor RADIUS está aceitando conexões.

Usage:
check_radius -H host -F config_file -u username -p password
			[-P port] [-t timeout] [-r retries] [-e expect]
			[-n nas-id] [-N nas-ip-addr]

check_simap: Este plug-in testa conexões IMAP seguras com o host especificado.

Usage:
check_simap -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_smtp: Este plugin tentará abrir uma conexão SMTP com o host.

Usage:
check_smtp -H host [-p port] [-4|-6] [-e expect] [-C command] [-R response] [-f from addr]
[-A authtype -U authuser -P authpass] [-w warn] [-c crit] [-t timeout] [-q]
[-F fqdn] [-S] [-D warn days cert expire[,crit days cert expire]] [-v] 

check_snmp: Verifique o status das máquinas remotas e obtenha informações do sistema via SNMP.

Usage:
check_snmp -H <ip_address> -o <OID> [-w warn_range] [-c crit_range]
[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]
[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]
[-m miblist] [-P snmp version] [-N context] [-L seclevel] [-U secname]
[-a authproto] [-A authpasswd] [-x privproto] [-X privpasswd] [-4|6]

check_spop: Este plugin testa conexões POP seguras com o host especificado.

Usage:
check_spop -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_ssh: Tente se conectar a um servidor SSH no servidor e na porta especificados.

Usage:
check_ssh  [-4|-6] [-t <timeout>] [-r <remote version>] [-p <port>] <host>

check_ssmtp: Este plug-in testa conexões SSMTP com o host especificado.

Usage:
check_ssmtp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_tcp: Este plugin testa conexões TCP com o host especificado.

Usage:
check_tcp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

Para mais informações, execute o seguinte comando no caminho dos plugins:

plugin_name --help

O Farm Guardian usará esses plug-ins para verificar o status de integridade dos back-ends e gerenciará a saída do erro de execução do plug-in executado para decidir o status de backend da seguinte forma:

Se o erro saída == 0 então o backend está OK> $? = 0

Se o erro saída <> 0 então o back-end NÃO está OK> $? <> 0

Plugin personalizado

Esses plugins podem ser configurados e totalmente programados pelos administradores de sistema para serem adaptados a qualquer protocolo ou aplicativo.

Este exemplo mostra um plugin personalizado check_load.sh.

#!/bin/bash
###
###comments:
###snmp utils should be installed
###snmpd should be installed and configured in the backends
###
MAXVALUE=4
COMMUNITY="public"
EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//`

echo "SNMP CPU load check for $1 is $EXECUTE"
# If the result is true, exit with 1; error; else exit = 0; OK
if (( $EXECUTE >= $MAXVALUE )); then
#error output; the server is overloaded and the load balancer isn’t going to send more connections
exit 1
else
#not error; the server can accept more connections
exit 0
fi

Constante

Quando o Farmguardian executa um plugin, ele pode usar algumas constantes ou tokens como argumentos, como:

  • HOST: O Farmguardian se encarregará de modificar esta constante pelo endereço IP do servidor real.
  • PORT: O Farmguardian se encarregará de modificar esta constante pela porta real do servidor.

Essas constantes podem ser usadas para todos os plugins, o Farmguardian as usará para executar a verificação de integridade com os parâmetros reais em vigor.

Fazendas

Nesta aba, há uma lista de farms e serviços usando esta verificação de saúde do Farmguardian.

Fazendas e serviços podem ser atribuídos ou removidos desta verificação de integridade do Farmguardian usando várias seleções com ícones de seta única ou setas duplas para ativar ou desativar todos os farms.

Compartilhar no:

Documentação sob os termos da Licença de Documentação Livre GNU.

Esse artigo foi útil?

Artigos Relacionados