12 min de leitura · Guia técnico
Para configurar alertas automáticos com Zabbix no Ubuntu, instale o Zabbix Server, configure triggers para monitoramento de recursos e defina actions para envio de notificações. Este processo garante um monitoramento eficiente e proativo dos servidores.
- Instale e configure o Zabbix Server no Ubuntu 22.04
- Configure triggers para CPU, memória e disco
- Defina actions para envio de emails e notificações
- Configure media types para diferentes canais
- Teste e valide o funcionamento dos alertas
- Implemente escalations e time periods
Pré-requisitos
- Ubuntu 22.04 LTS com acesso root
- Zabbix Server 6.4 ou superior instalado
- Servidor SMTP configurado para envio de emails
- Conhecimento básico de administração Linux
- Pelo menos 2GB de RAM disponível
- Firewall configurado com portas 80, 443 e 10051 abertas
Instalação e configuração inicial do Zabbix
Antes de configurar alertas automáticos no Zabbix, é necessário ter o sistema base funcionando. Inicie atualizando os repositórios e instalando as dependências:
sudo apt update && sudo apt upgrade -y
sudo apt install wget curl gnupg2 software-properties-common
Adicione o repositório oficial do Zabbix para Ubuntu 22.04:
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update
Instale o Zabbix Server, frontend e agent:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Configure o banco de dados MySQL para o Zabbix. Primeiro, instale o MySQL Server:
sudo apt install mysql-server
sudo mysql_secure_installation
Crie o banco de dados e usuário para o Zabbix:
sudo mysql -uroot -p
CREATE DATABASE zabbix character set utf8mb4 collate utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'senha_forte_aqui';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
QUIT;
Importe o esquema inicial do banco:
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Edite o arquivo de configuração do Zabbix Server:
sudo nano /etc/zabbix/zabbix_server.conf
Configure as seguintes linhas:
DBPassword=senha_forte_aqui
DBHost=localhost
DBName=zabbix
DBUser=zabbix
Inicie e habilite os serviços:
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
Configurando triggers para monitoramento de recursos
As triggers do Zabbix são condições que detectam problemas no sistema. Acesse a interface web em http://seu-ip/zabbix e faça login com Admin/zabbix. Para configurar triggers de CPU, navegue até Configuration > Hosts e selecione o host Linux.
Clique em "Triggers" e depois em "Create trigger". Configure uma trigger para alta utilização de CPU:
Name: High CPU utilization on {HOST.NAME}
Expression: avg(/Linux by Zabbix agent/system.cpu.util,5m)>80
Severity: High
Description: CPU utilization is above 80% for 5 minutes
Para monitoramento de memória, crie outra trigger:
Name: High memory utilization on {HOST.NAME}
Expression: last(/Linux by Zabbix agent/vm.memory.util)>90
Severity: High
Description: Memory utilization is above 90%
Configure uma trigger para espaço em disco:
Name: Low disk space on {HOST.NAME}
Expression: last(/Linux by Zabbix agent/vfs.fs.size[/,pfree])<10
Severity: Warning
Description: Free disk space is less than 10%
Para verificar se as triggers estão funcionando, vá em Monitoring > Problems. Você deve ver as triggers listadas quando as condições forem atendidas.
Configuração de media types e notificações por email
O sistema de alertas do Zabbix utiliza media types para definir como as notificações serão enviadas. Acesse Administration > Media types e clique em "Create media type" para configurar email:
Name: Email Alerts
Type: Email
SMTP server: smtp.gmail.com
SMTP server port: 587
SMTP helo: gmail.com
SMTP email: [email protected]
Connection security: STARTTLS
Authentication: Username and password
Username: [email protected]
Password: sua-senha-app
Atenção: Para Gmail, use senhas de aplicativo em vez da senha principal da conta.
Configure o template de mensagem:
Subject: {ALERT.SUBJECT}
Message:
Problem: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Time: {EVENT.DATE} {EVENT.TIME}
Item: {ITEM.NAME}
Value: {ITEM.LASTVALUE}
{EVENT.RECOVERY.NAME}
Teste a configuração clicando em "Test" e enviando um email de teste. Se bem-sucedido, você verá a mensagem "Test successful".
Criando actions para automação de alertas
Actions definem o que acontece quando uma trigger é ativada. Vá em Configuration > Actions > Trigger actions e clique em "Create action":
Name: Email notification for critical problems
Conditions:
- Trigger severity >= High
- Host group = Linux servers
Operations:
- Send message to user groups: Zabbix administrators
- Send message to users: Admin
- Media type: Email Alerts
Configure escalations para problemas não resolvidos:
Step 1: Send to administrators (delay: 0 seconds)
Step 2: Send to managers (delay: 15 minutes)
Step 3: Send to on-call team (delay: 30 minutes)
Para evitar spam de notificações, configure recovery operations:
Recovery operations:
- Send message: Problem resolved
- Notify all involved users
- Subject: RESOLVED: {EVENT.RECOVERY.NAME}
Defina update operations para quando o problema for atualizado:
Update operations:
- Send message only if severity changes
- Include event details in notification
Configuração de usuários e grupos para recebimento de alertas
Para que os alertas sejam enviados corretamente, configure usuários e grupos. Acesse Administration > Users e clique em "Create user":
Username: admin-alerts
Name: Administrator
Surname: Alerts
Groups: Zabbix administrators
Password: senha_segura
Na aba "Media", adicione o método de notificação:
Type: Email Alerts
Send to: [email protected]
When active: 1-7,00:00-24:00
Use if severity: Not classified to Disaster
Configure diferentes usuários para diferentes horários:
Usuário comercial: 1-5,08:00-18:00
Usuário plantão: 1-7,18:00-08:00
Usuário emergência: 1-7,00:00-24:00 (apenas Disaster)
Para criar grupos de usuários, vá em Administration > User groups:
Group name: NOC Team
Users: admin-alerts, operador1, operador2
Permissions: Read-write para todos os hosts
Implementando time periods e maintenance windows
Configure períodos de tempo para controlar quando os alertas devem ser enviados. Em Administration > General > Time periods, crie novos períodos:
Name: Business Hours
Time periods:
- Monday-Friday: 08:00-18:00
- Saturday: 08:00-12:00
Name: After Hours
Time periods:
- Monday-Friday: 18:00-08:00
- Saturday: 12:00-24:00
- Sunday: 00:00-24:00
Para configurar janelas de manutenção, vá em Configuration > Maintenance e crie um novo período:
Name: Weekly Maintenance
Maintenance type: With data collection
Active since: próximo domingo 02:00
Active till: próximo domingo 04:00
Repeat: Weekly
Hosts: Selecione os hosts em manutenção
Durante períodos de manutenção, o Zabbix continuará coletando dados mas não enviará alertas para os hosts especificados.
Configuração avançada de escalations
Escalations permitem aumentar a urgência das notificações para problemas não resolvidos. Na configuração de actions, defina múltiplos steps:
Step 1 (0-5 min): Send to team lead
Step 2 (5-15 min): Send to team lead + manager
Step 3 (15-30 min): Send to all administrators
Step 4 (30+ min): Send to emergency contact + execute script
Configure diferentes escalations por severidade:
Information/Warning: 2 steps, 15 min intervals
Average: 3 steps, 10 min intervals
High: 4 steps, 5 min intervals
Disaster: Immediate notification to all levels
Para executar scripts automaticamente, adicione operations do tipo "Remote command":
Type: Custom script
Execute on: Zabbix server
Commands: /usr/local/bin/emergency-response.sh {HOST.NAME} {EVENT.NAME}
Problemas comuns e como resolver
Alertas não estão sendo enviados
Causa: Configuração incorreta do media type ou usuário sem permissões adequadas.
Solução: Verifique os logs em /var/log/zabbix/zabbix_server.log e teste o media type. Confirme se o usuário tem o media type configurado e se as triggers estão ativas.
Muitos alertas falsos positivos
Causa: Thresholds muito baixos ou triggers mal configuradas.
Solução: Ajuste os valores das triggers baseado no comportamento normal do sistema. Use funções como avg() com períodos maiores (5-10 minutos) em vez de last() para evitar picos momentâneos.
Emails chegam com atraso
Causa: Problemas de conectividade com servidor SMTP ou fila de emails muito grande.
Solução: Verifique a conectividade com o servidor SMTP usando telnet. Configure timeout adequado no media type e considere usar um servidor SMTP local como Postfix.
Triggers não estão sendo ativadas
Causa: Agent não está coletando dados ou items estão desabilitados.
Solução: Verifique se o Zabbix agent está rodando com 'systemctl status zabbix-agent'. Confirme se os items estão enabled em Configuration > Hosts > Items.
Notificações param durante manutenção
Causa: Maintenance period configurado incorretamente ou muito amplo.
Solução: Revise os períodos de manutenção em Configuration > Maintenance. Use "With data collection" para manter o histórico durante manutenções programadas.
Perguntas frequentes sobre alertas automáticos com Zabbix
Como configurar alertas de CPU no Zabbix?
Configure triggers no Zabbix definindo limites de CPU (ex: >80% por 5 minutos). Acesse Configuration > Hosts, selecione o servidor, vá em Triggers e crie uma nova trigger com expressão avg(/Linux by Zabbix agent/system.cpu.util,5m)>80. Configure actions para enviar notificações quando a trigger for ativada.
Qual a diferença entre trigger e action no Zabbix?
Trigger é a condição que detecta problemas (ex: CPU alta, disco cheio). Action é a resposta automática quando a trigger é ativada (enviar email, executar script). Uma trigger pode ter múltiplas actions associadas para diferentes tipos de notificação.
Como testar se os alertas do Zabbix estão funcionando?
Execute stress tests simulando alta CPU com 'stress --cpu 4 --timeout 300s' ou encha o disco temporariamente. Verifique em Monitoring > Problems se as triggers foram ativadas e confirme o recebimento de emails. Use também Reports > Action log para verificar o histórico de notificações enviadas.
Posso configurar alertas diferentes para horário comercial?
Sim, o Zabbix permite criar time periods personalizados em Administration > General > Time periods. Configure diferentes actions para horário comercial (notificação imediata) e fora do expediente (notificação após 15 minutos). Associe cada action ao time period correspondente.
Como evitar spam de alertas no Zabbix?
Configure escalations com intervalos crescentes (1min, 5min, 15min) e limite o número máximo de notificações por problema. Use dependencies entre hosts para evitar alertas em cascata quando um switch principal falha. Defina maintenance periods durante atualizações programadas.
Conclusão
- Configure triggers baseadas no comportamento real dos seus servidores, não em valores genéricos
- Implemente escalations inteligentes para evitar fadiga de alertas e garantir resposta adequada
- Teste regularmente o sistema de alertas com simulações de problemas reais
Precisa de ajuda com monitoramento de servidores?
A AviraHost oferece servidores VPS Linux otimizados com suporte especializado para implementação de sistemas de monitoramento como Zabbix. Nossa equipe pode auxiliar na configuração completa do seu ambiente.