O ssh do Zabbix precisa forçar a alocação do pseudo-tty

1

No momento, estou tentando configurar um item no zabbix para executar uma verificação em um servidor remoto via SSH. Quando eu executo o seguinte comando na caixa do zabbix, ele funciona

sudo -u zabbix ssh -t root@[remote_ip] 'sudo ls'

No entanto, quando eu corro isso

sudo -u zabbix ssh root@[remote_ip] 'sudo ls'

Eu recebo sudo: sorry, you must have a tty to run sudo . Eu entendo isso é porque eu não forcei tty. Minha pergunta é, como posso obter o zabbix ssh.run item 'chave' para forçar tty? De preferência, preferimos não fazer atualizações no host remoto.

    
por James McDougall 10.06.2015 / 21:09

1 resposta

0

O Zabbix não suporta o envio de parâmetros para ssh - porque o servidor Zabbix na verdade não executa o binário 'ssh' por si, mas está ligado à biblioteca libssh2 e executa as chamadas ssh dos processos zabbix_server poller, na máquina servidora Zabbix .

Eu presumo que você poderia editar o parâmetro src / zabbix_server / poller / checks_ssh.c, adicionando o parâmetro de configuração "Forçar pseudo-tty alocação" ou simplesmente forçando-o no código. Eu aconselho você contra o último porque você vai acabar mantendo o fork do Zabbix para seus próprios propósitos. Se você decidir fazer o primeiro, pode aplicar o patch à comunidade do Zabbix, que provavelmente seria aceita e mantida pelos desenvolvedores do Zabbix no futuro.

Se você não se sentir confortável ou não tiver tempo suficiente para fazê-lo, a única solução limpa que resta é configurar o sudo em todas as caixas "remote_ip" com:

cat >> /etc/sudoers.d/zabbix_notty <<EOF
# Allow user zabbix to run sudo without tty
Defaults:zabbix !requiretty
EOF

Eu sei que você disse que não prefere isso, mas ...

    
por 12.06.2015 / 18:48

Tags