Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
zabbix-email-webhook
Advanced tools
Zabbix Email Webhook - é um serviço de webhook desenvolvido para facilitar o envio de alertas do Zabbix via email ou outras integrações personalizadas, utilizando o Nodemailer para configurar e gerenciar os alertas enviados. Projetado com foco em simplici
Este projeto é um serviço de webhook desenvolvido para facilitar o envio de alertas do Zabbix via email ou outras integrações personalizadas, utilizando o Nodemailer para configurar e gerenciar os alertas enviados. Projetado com foco em simplicidade e adaptabilidade, o Zabbix Email Webhook é ideal para administradores de sistemas e equipes de TI que desejam integrar notificações de eventos críticos diretamente a seus fluxos de comunicação ou monitoramento.
index.js
para enviar alertas usando seu provedor de email preferido.README.md
com passos para instalação, configuração do webhook e parâmetros detalhados.Clone o repositório para uma pasta de sua preferência:
git clone https://github.com/jeffersonalionco/zabbix-email-webhook.git
Acesse o diretório do projeto:
cd zabbix-email-webhook
Instale as dependências do projeto:
npm install
Inicie o webhook
node index.js
- Lembre-se de que antes de inicializar você precisa editar algumas informações do codigo em
index.js
Abra o arquivo index.js
e edite o trecho de código para configurar o serviço de envio de e-mails conforme seu provedor SMTP:
// Configuração do transportador SMTP
const transporter = nodemailer.createTransport({
host: 'smtp.exemplo.com', // Substitua pelo servidor SMTP correto
port: 587, // Ou 465 para SSL
secure: false, // true para 465, false para outras portas
auth: {
user: 'exemplo@dominio.com.br', // Seu e-mail
pass: 'senha' // Sua senha
}
});
Edite o trecho no arquivo index.js
para configurar os dados de envio do e-mail com base nos alertas recebidos do Zabbix:
// Configuração dos dados do e-mail
const mailOptions = {
from: 'exemplo@exemplo.com.br', // Seu e-mail de envio
to: 'destinatario@exemplo.com.br', // O e-mail para onde o alerta será enviado
subject: `Alerta Zabbix: ${data.trigger}`,
text: `Alerta acionado: ${data.trigger}. Detalhes: ${JSON.stringify(req.body)}`,
html: html // Conteúdo em HTML, substitua conforme necessário
};
Para configurar o envio de alertas via webhook, siga estas instruções no painel do Zabbix:
Parâmetro | Valor |
---|---|
dadosOperacional | {EVENT.OPDATA} |
dataHora | {EVENT.TIME} em {EVENT.DATE} |
duration | {EVENT.DURATION} |
hostname | {HOST.NAME} |
id | {EVENT.ID} |
item | {ITEM.NAME1} is {ITEM.VALUE1} |
link | {$ZABBIX_URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID} |
severity | {TRIGGER.SEVERITY} |
status | {TRIGGER.STATUS} |
tempoDuration | {EVENT.RECOVERY.TIME} em {EVENT.RECOVERY.DATE} |
trigger | {TRIGGER.NAME} |
Insira o seguinte script no Zabbix para enviar os dados dos alertas para o servidor Node.js configurado:
try {
Zabbix.Log(4, 'email webhook script value=' + value);
var result = {
'tags': {
'endpoint': 'email'
}
};
// Faz o parse do valor recebido
var params = JSON.parse(value);
var req = new HttpRequest();
var payload = {};
var resp;
// Define o cabeçalho para JSON
req.addHeader('Content-Type: application/json');
// Cria o payload para enviar ao seu servidor Node.js
payload = {
status: params.status,
severity: params.severity,
hostname: params.hostname,
item: params.item,
trigger: params.trigger,
link: params.link,
dataHora: params.dataHora,
dadosOperacional: params.dadosOperacional,
id: params.id,
duration: params.duration,
tempoDuration: params.tempoDuration
};
// Defina o endpoint do seu servidor Node.js
var email_endpoint = "http://172.16.24.219:3008/zabbix-webhook"; // Substitua pelo IP ou hostname do seu servidor
// Envia a requisição POST para o endpoint
resp = req.post(email_endpoint, JSON.stringify(payload));
// Verifica se a resposta é bem-sucedida
if (req.getStatus() !== 200) {
throw 'Response code: ' + req.getStatus();
}
// Processa a resposta
resp = JSON.parse(resp);
result.tags.issue_id = resp.id; // Adapte conforme necessário
result.tags.issue_key = resp.key; // Adapte conforme necessário
} catch (error) {
Zabbix.Log(4, 'email issue creation failed json: ' + JSON.stringify(payload));
Zabbix.Log(4, 'email issue creation failed: ' + error);
result = {};
}
return JSON.stringify(result);
Em Macros, crie a seguinte entrada:
{$ZABBIX_URL} : http://IP-DO-SERVIDOR/
Para iniciar o serviço automaticamente em reinicializações e falhas, siga os passos abaixo para configurá-lo como um serviço do systemd:
Criar Arquivo de Serviço
Execute o comando abaixo para criar o arquivo de serviço no diretório /etc/systemd/system/
:
sudo nano /etc/systemd/system/zabbix-zulip-webhook.service
Configurar o Arquivo de Serviço
No editor, adicione o conteúdo abaixo ao arquivo:
[Unit]
Description=Zabbix-Zulip Webhook Service
After=network.target
[Service]
ExecStart=/usr/bin/node /caminho/do/projeto/index.js
WorkingDirectory=/caminho/do/projeto
Restart=always
User=seu_usuario
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
Nota:
- Substitua
/caminho/do/projeto
pelo caminho completo onde o arquivoindex.js
está localizado.- Substitua
seu_usuario
pelo nome do usuário que executará o serviço.
Atualizar Permissões
Após salvar o arquivo, atualize as permissões com o comando:
sudo chmod 644 /etc/systemd/system/zabbix-zulip-webhook.service
Iniciar e Habilitar o Serviço
Execute os seguintes comandos para iniciar o serviço e configurá-lo para iniciar automaticamente junto com o sistema:
sudo systemctl start zabbix-zulip-webhook.service
sudo systemctl enable zabbix-zulip-webhook.service
Verificar Status do Serviço
Para verificar o status e garantir que o serviço esteja funcionando corretamente, utilize:
sudo systemctl status zabbix-zulip-webhook.service
Jefferson Alionco
Programador e entusiasta de tecnologias de integração e automação, com ampla experiência em Node.js, servidores e integração com ferramentas de monitoramento como Zabbix e Zulip.
Entre em contato: EMAIL: Jefferson L. Alionco
FAQs
Zabbix Email Webhook - é um serviço de webhook desenvolvido para facilitar o envio de alertas do Zabbix via email ou outras integrações personalizadas, utilizando o Nodemailer para configurar e gerenciar os alertas enviados. Projetado com foco em simplici
We found that zabbix-email-webhook demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.