Integração oficial da Nvoip para alertas do Zabbix via API v2 com SMS e torpedo de voz.
Os scripts antigos usavam a API v1 com token_auth.
Esta versão já usa:
- OAuth da API v2
numbersip+user-token- endpoint
/v2/sms - endpoint
/v2/torpedo/voice
Scripts/send_sms_nvoip_zabbix.shScripts/send_torpedovoz_nvoip_zabbix.shScripts/nvoip_zabbix_common.shScripts/check_nvoip_zabbix_config.shtemplates/media-types.md
Defina no host do Zabbix ou no ambiente do serviço:
export NVOIP_NUMBERSIP="seu_numbersip"
export NVOIP_USER_TOKEN="seu_user_token"
export NVOIP_OAUTH_CLIENT_ID="seu_client_id"
export NVOIP_OAUTH_CLIENT_SECRET="seu_client_secret"
export NVOIP_CALLER="1049"
export NVOIP_SMS_MAX_CHARS="160"Não use Basic Auth fixo salvo em arquivo. Os scripts montam o cabeçalho
OAuth em tempo de execução a partir de NVOIP_OAUTH_CLIENT_ID e
NVOIP_OAUTH_CLIENT_SECRET.
- Copie os scripts para o
AlertScriptsPathdo seu Zabbix, normalmente/usr/lib/zabbix/alertscripts. - Ajuste permissões para o usuário do serviço Zabbix.
- Garanta que
curl,sed,base64ecutestejam disponíveis. - Defina as variáveis de ambiente no serviço do Zabbix ou em arquivo carregado pelo serviço.
- Configure os Media Types com base em
templates/media-types.md.
Exemplo de instalação:
sudo cp Scripts/*.sh /usr/lib/zabbix/alertscripts/
sudo chown zabbix:zabbix /usr/lib/zabbix/alertscripts/*.sh
sudo chmod 750 /usr/lib/zabbix/alertscripts/*.shTeste sem enviar SMS ou torpedo:
/usr/lib/zabbix/alertscripts/check_nvoip_zabbix_config.sh- Script:
send_sms_nvoip_zabbix.sh - Parâmetros:
{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}{HOST.NAME1}
- Script:
send_torpedovoz_nvoip_zabbix.sh - Parâmetros:
{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}
Scripts/send_sms_nvoip_zabbix.sh "11999999999" "Teste Zabbix" "Mensagem de teste" "zabbix-server"
Scripts/send_torpedovoz_nvoip_zabbix.sh "11999999999" "Teste Zabbix" "Mensagem de teste"- o token OAuth é gerado em cada execução do script
- isso simplifica a configuração e evita depender de token manual expirado
- o SMS é limitado a 160 caracteres por padrão por causa da regra do endpoint
/sms - para uso muito intenso, vale considerar cache local de token com controle de expiração