9 Verificações SSH
Visão geral
As verificações SSH são realizadas como monitoramento sem agent. O agent Zabbix não é necessário para verificações SSH.
Para realizar verificações SSH, o server Zabbix deve ser inicialmente configurado com suporte a SSH2 (libssh ou libssh2). Veja também: Requisitos.
A partir do RHEL 8, apenas o libssh é suportado. Para outras distribuições, o libssh é recomendado em vez do libssh2.
Configuração
Autenticação por frase secreta
As verificações SSH fornecem dois métodos de autenticação - um par usuário/senha e baseado em arquivo de chave.
Se você não pretende usar chaves, nenhuma configuração adicional é necessária, além de vincular libssh ou libssh2 ao Zabbix, se você estiver compilando a partir do código-fonte.
Autenticação por arquivo de chave
Para usar autenticação baseada em chave para itens SSH, são necessárias algumas alterações na configuração do server.
Abra o arquivo de configuração do Zabbix server
(zabbix_server.conf) como root
e procure pela seguinte linha:
# SSHKeyLocation=
Remova o comentário e defina o caminho completo para a pasta onde as chaves pública e privada ficarão localizadas:
SSHKeyLocation=/home/zabbix/.ssh
Salve o arquivo e reinicie o Zabbix server em seguida.
O caminho /home/zabbix aqui é o diretório home da conta de usuário zabbix, e .ssh é um diretório onde, por padrão, as chaves pública e privada serão geradas por um comando ssh-keygen dentro do diretório home.
Normalmente, os pacotes de instalação do Zabbix server de diferentes distribuições de SO criam a conta de usuário zabbix com um diretório home em outro local, por exemplo, /var/lib/zabbix (como para contas de sistema).
Antes de gerar as chaves, você pode realocar o diretório home
para /home/zabbix, para que ele
corresponda ao parâmetro de configuração SSHKeyLocation do Zabbix server
mencionado acima.
As etapas a seguir podem ser ignoradas se a conta zabbix tiver sido adicionada manualmente de acordo com a seção de instalação. Nesse caso, o diretório home da conta zabbix provavelmente já será /home/zabbix.
Para alterar o diretório home da conta de usuário zabbix, todos os processos em execução que a estejam usando devem ser interrompidos:
systemctl stop zabbix-agent
systemctl stop zabbix-server
Para alterar a localização do diretório home com uma tentativa de movê-lo (caso ele exista), o seguinte comando deve ser executado:
usermod -m -d /home/zabbix zabbix
Também é possível que um diretório home não existisse no local antigo, portanto ele deve ser criado no novo local. Uma tentativa segura de fazer isso é:
test -d /home/zabbix || mkdir /home/zabbix
Para garantir que tudo esteja seguro, comandos adicionais podem ser executados para definir as permissões do diretório home:
chown zabbix:zabbix /home/zabbix
chmod 700 /home/zabbix
Os processos interrompidos anteriormente agora podem ser iniciados novamente:
systemctl start zabbix-agent
systemctl start zabbix-server
Agora, as etapas para gerar as chaves pública e privada podem ser executadas com os seguintes comandos (para melhor legibilidade, os prompts de comando estão comentados):
sudo -u zabbix ssh-keygen -t rsa
# Gerando par de chaves rsa pública/privada.
# Digite o arquivo no qual salvar a chave (/home/zabbix/.ssh/id_rsa):
/home/zabbix/.ssh/id_rsa
# Digite a frase secreta (vazio para nenhuma frase secreta):
<Deixe em branco>
# Digite a mesma frase secreta novamente:
<Deixe em branco>
# Sua identificação foi salva em /home/zabbix/.ssh/id_rsa.
# Sua chave pública foi salva em /home/zabbix/.ssh/id_rsa.pub.
# A impressão digital da chave é:
# 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
# A imagem randomart da chave é:
# +--[ RSA 2048]----+
# | |
# | . |
# | o |
# | . o |
# |+ . S |
# |.+ o = |
# |E . * = |
# |=o . ..* . |
# |... oo.o+ |
# +-----------------+
As chaves pública e privada (id_rsa.pub e id_rsa)
foram geradas por padrão no diretório /home/zabbix/.ssh,
que corresponde ao parâmetro de configuração SSHKeyLocation do Zabbix server.
Tipos de chave diferentes de "rsa" podem ser suportados pela ferramenta ssh-keygen e por servidores SSH, mas podem não ser suportados pela libssh2 usada pelo Zabbix.
Formulário de configuração do Shell
Esta etapa deve ser executada apenas uma vez para cada host que será monitorado por verificações SSH.
Usando os seguintes comandos, o arquivo de chave pública pode ser instalado em um host remoto 10.10.10.10, para que as verificações SSH possam ser realizadas com uma conta root (para melhor legibilidade, os prompts dos comandos estão comentados):
sudo -u zabbix ssh-copy-id [email protected]
# The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
# RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
# Are you sure you want to continue connecting (yes/no)?
yes
# Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
# [email protected]'s password:
<Enter root password>
# Now try logging into the machine, with "ssh '[email protected]'",
# and check to make sure that only the key(s) you wanted were added.
Agora é possível verificar o login SSH usando a chave privada padrão (/home/zabbix/.ssh/id_rsa) para a conta de usuário zabbix:
sudo -u zabbix ssh [email protected]
Se o login for bem-sucedido, a parte de configuração no shell está concluída e a sessão SSH remota pode ser encerrada.
Configuração de item
Os comandos reais a serem executados devem ser colocados no campo Executed script na configuração do item. Vários comandos podem ser executados um após o outro, colocando-os em uma nova linha. Nesse caso, os valores retornados também serão formatados em várias linhas.

Todos os campos de entrada obrigatórios são marcados com um asterisco vermelho.
Os campos que exigem informações específicas para itens SSH são:
| Parameter | Description | Comments |
|---|---|---|
| Type | Selecione SSH agent aqui. | |
| Key | Chave de item exclusiva (por host) no formato ssh.run[descrição curta exclusiva,<ip>,<port>,<encoding>,<ssh options>,<subsystem>] | descrição curta exclusiva é obrigatória e deve ser exclusiva para cada item SSH por host. A porta padrão é 22, não a porta especificada na interface à qual este item está atribuído. ssh options permitem passar opções SSH adicionais no formato key1=value1;key2=value2,value3. Vários valores para uma chave podem ser passados separados por vírgula (nesse caso, o parâmetro deve estar entre aspas); várias chaves de opção podem ser passadas separadas por ponto e vírgula. As seguintes chaves de opção são suportadas: KexAlgorithms, HostkeyAlgorithms, Ciphers, MACs, PubkeyAcceptedKeyTypes. O suporte à chave e ao valor da opção depende da biblioteca SSH (por exemplo, PubkeyAcceptedKeyTypes é suportado apenas com libssh); se uma opção não for suportada, um erro será retornado, e o item se tornará não suportado.Observe que o sinal "+" para acrescentar configurações de cifra e "!" para desabilitar configurações de cifra específicas (como em GnuTLS e OpenSSL) não são suportados. Exemplos: => ssh.run[KexAlgorithms,127.0.0.1,,,Ciphers=aes128-ctr]=> ssh.run[KexAlgorithms,,,,"KexAlgorithms=diffie-hellman-group1-sha1;HostkeyAlgorithms=ssh-rsa,ssh-dss,ecdh-sha2-nistp256"]=> ssh.run[PubkeyAcceptedKeyTypes,127.0.0.1,,,PubkeyAcceptedKeyTypes=ssh-rsa]subsystem permite passar um subsistema SSH, limitando a conexão SSH a operações específicas permitidas pelo subsistema (por exemplo, transferências de arquivos usando SFTP ou gerenciamento de dispositivos de rede usando NETCONF). Observe que o uso de um subsistema também pode exigir o uso de sintaxe de script específica no parâmetro Executed script. Exemplos: => ssh.run[SFTPBackup,192.0.2.18,,,,sftp]=> ssh.run[Cisco1234,192.0.2.18,,,,netconf] |
| Authentication method | Um entre "Password" ou "Public key". | |
| User name | Nome de usuário (até 255 caracteres) para autenticação no host remoto. Obrigatório. | |
| Public key file | Nome do arquivo de chave pública se Authentication method for "Public key". Obrigatório. | Exemplo: id_rsa.pub - nome padrão do arquivo de chave pública gerado por um comando ssh-keygen. |
| Private key file | Nome do arquivo de chave privada se Authentication method for "Public key". Obrigatório. | Exemplo: id_rsa - nome padrão do arquivo de chave privada. |
| Password or Key passphrase |
Senha (até 255 caracteres) para autenticação ou Frase-senha se ela tiver sido usada para a chave privada. |
Deixe o campo Key passphrase vazio se a frase-senha não tiver sido usada. Veja também problemas conhecidos relacionados ao uso de frase-senha. |
| Executed script | Comando(s) de shell executado(s) usando sessão remota SSH. | O valor de retorno do(s) comando(s) de shell executado(s) é limitado a 16MB (incluindo espaços em branco à direita que são truncados); os limites do banco de dados também se aplicam. Observe que a biblioteca libssh2 pode truncar scripts executáveis para \~32kB. Exemplos: date +%ssystemctl status mysql-serverps auxww \| grep httpd \| wc -lExemplo (para o subsistema NETCONF): <rpc><get-software-information/></rpc>]]>]]><rpc><close-session/></rpc>]]>]]> |