A monitorização de infraestrutura é uma das áreas com maior gap em PME portuguesas — muitas organizações só sabem que um servidor caiu quando o telefone começa a tocar. Uma solução de monitorização correctamente configurada detecta problemas antes de afectarem os utilizadores: disco a encher, CPU em stress, serviço parado, ping elevado para o ISP.
Este artigo compara o Zabbix (open source, mais flexível) e o PRTG (comercial, mais fácil de implementar) para ambientes PME, com guia de instalação, configuração de alertas essenciais e os itens de monitorização mais importantes.
Neste artigo
1. Zabbix vs PRTG — qual escolher para PME
| Zabbix | PRTG Network Monitor | |
|---|---|---|
| Licenciamento | Open Source — gratuito | Comercial — gratuito até 100 sensores |
| Facilidade de instalação | Média — requer Linux e configuração | Alta — instalador Windows, autodiscovery |
| Escalabilidade | Muito alta — dezenas de milhares de hosts | Limitada por sensores — custo cresce com escala |
| Curva de aprendizagem | Alta — interface complexa, muita configuração | Baixa — autodiscovery, interface intuitiva |
| Flexibilidade | Muito alta — templates, scripts, API completa | Média — sensores pré-definidos, customização limitada |
| Recomendação PME | IT interno com experiência Linux; ambientes com >50 hosts; sem orçamento para licenças | PME sem IT dedicado ou com IT Windows; início rápido; até ~100 sensores gratuitos cobre a maioria das PME |
2. Instalar Zabbix 7.0 no Ubuntu 24.04 LTS
A instalação cobre quatro componentes: repositório Zabbix, pacotes do servidor e frontend, MariaDB e configuração do locale. Executar todos os comandos como root ou com sudo.
Passo 1 — Repositório e pacotes Zabbix
# Adicionar repositório oficial Zabbix 7.0 wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb apt update # Instalar servidor Zabbix, frontend PHP, configuração Apache e agente local apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Passo 2 — MariaDB: instalar, iniciar e configurar
# Instalar MariaDB apt install -y mariadb-server # Iniciar e activar o serviço (IMPORTANTE — sem este passo o setup web falha com "Cannot connect to database") systemctl start mariadb systemctl enable mariadb # Confirmar que está a correr antes de continuar systemctl status mariadb # Deve mostrar: Active: active (running) # Criar a base de dados e o utilizador Zabbix mysql -uroot -e "CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;" mysql -uroot -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixPass2026#';" mysql -uroot -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';" mysql -uroot -e "FLUSH PRIVILEGES;" mysql -uroot -e "SET GLOBAL log_bin_trust_function_creators = 1;"
Passo 3 — Importar o schema da base de dados
# Importar schema (introduzir a password ZabbixPass2026# quando pedido) zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix # Desactivar log_bin_trust após o import mysql -uroot -e "SET GLOBAL log_bin_trust_function_creators = 0;"
Passo 4 — Configurar a password no servidor Zabbix
# Configurar a password da DB no ficheiro de configuração do servidor Zabbix sed -i 's/# DBPassword=/DBPassword=ZabbixPass2026#/' /etc/zabbix/zabbix_server.conf # Confirmar que ficou correcto grep DBPassword /etc/zabbix/zabbix_server.conf
Passo 5 — Locale en_US.UTF-8 (obrigatório para o frontend PHP)
⚠ Sem este passo o setup web falha no “Check of pre-requisites” com erro System locale en_US — Fail. O frontend PHP do Zabbix exige o locale en_US.UTF-8 instalado no sistema operativo, independentemente do idioma do servidor.
# Instalar o locale en_US.UTF-8 apt install -y locales locale-gen en_US.UTF-8 update-locale # Confirmar que ficou disponível locale -a | grep en_US # Deve mostrar: en_US.utf8 # Verificar que o PHP consegue usar o locale (deve retornar "en_US.UTF-8", não false) php -r "var_dump(setlocale(LC_ALL, 'en_US.UTF-8'));"
Passo 6 — Iniciar todos os serviços
systemctl restart zabbix-server zabbix-agent apache2 systemctl enable zabbix-server zabbix-agent apache2 # Verificar que todos os serviços estão activos systemctl status zabbix-server mariadb apache2 --no-pager
Passo 7 — Wizard de configuração web
Aceder a http://[IP-do-servidor]/zabbix no browser e seguir o wizard:
- Check of pre-requisites — todos os itens devem estar verdes, incluindo o locale. Se algum falhar, corrigir antes de avançar
- Configure DB connection — preencher com os valores abaixo
- Settings — definir nome do servidor Zabbix (ex: “Zabbix PME”)
- Install — concluir a instalação
- Login inicial: utilizador
Admin/ passwordzabbix— alterar imediatamente após o primeiro login
ℹ Configure DB connection — valores correctos
| Database type | MySQL |
| Database host | 127.0.0.1 (não usar “localhost” — força TCP e evita erro de socket) |
| Database port | 0 |
| Database name | zabbix |
| User | zabbix |
| Password | ZabbixPass2026# |
Se surgir o erro “Cannot connect to the database — No such file or directory” com Database host = localhost, substituir por 127.0.0.1. O MariaDB no Ubuntu 24.04 usa socket Unix por defeito quando o host é “localhost”; com “127.0.0.1” força ligação TCP que funciona sempre.
3. Adicionar hosts e aplicar templates
O Zabbix tem centenas de templates pré-definidos para servidores Windows, Linux, switches Cisco/HP, FortiGate, VMware, e muito mais. O processo para adicionar um host monitorizado:
- Instalar o Zabbix Agent no host a monitorizar (Windows ou Linux)
- No frontend: Configuration → Hosts → Create host
- Definir hostname, IP e porta do agente (padrão: 10050)
- Separador Templates → adicionar template adequado (ex: “Windows by Zabbix agent”, “Linux by Zabbix agent”)
- Separador Groups → adicionar a um grupo (ex: “Servers”, “Network devices”)
# Configurar o agente após instalação em Windows # Ficheiro: %ProgramData%\Zabbix Agent 2\zabbix_agent2.conf Server=10.10.10.50 # IP do servidor Zabbix ServerActive=10.10.10.50 # Para checks activos Hostname=PC-JOAO # Tem de coincidir com o hostname no Zabbix frontend # Reiniciar o serviço após configuração Restart-Service "Zabbix Agent 2" # Testar conectividade do agente (executar no servidor Zabbix) zabbix_get -s 192.168.10.50 -p 10050 -k system.hostname
4. Monitorização via SNMP — switches e firewall
Dispositivos de rede (switches, firewalls, UPS) não têm agente Zabbix — são monitorizados via SNMP (Simple Network Management Protocol). O SNMP permite consultar métricas como tráfego por interface, CPU, temperatura e estado de porta.
# Activar SNMP no FortiGate config system snmp sysinfo set status enable set description "FortiGate-PME" set location "Escritório Lisboa" end config system snmp community edit 1 set name "zabbix-monitor" # Community string — usar valor não padrão config hosts edit 1 set ip 10.10.10.50 255.255.255.255 # IP do servidor Zabbix next end set query-v2c-status enable next end # Instalar utilitários SNMP no servidor Zabbix (necessário para testes) apt install -y snmp snmp-mibs-downloader # Testar SNMP do servidor Zabbix para o switch/firewall snmpwalk -v2c -c zabbix-monitor 192.168.10.1 system snmpget -v2c -c zabbix-monitor 192.168.10.1 1.3.6.1.2.1.1.1.0 # sysDescr
5. Configurar alertas por email e Microsoft Teams
Email: Administration → Media types → Email → configurar SMTP
Teams: Administration → Media types → Microsoft Teams → configurar Webhook URL
# Configurar alertas de email via relay SMTP (ex: Office 365) # Administration → Media types → Email: SMTP server: smtp.office365.com SMTP port: 587 SMTP email: [email protected] Security: STARTTLS Authentication: Username + Password # Configurar Teams via Incoming Webhook: # 1. No Teams: canal → ... → Connectors → Incoming Webhook → configurar → copiar URL # 2. No Zabbix: Administration → Media types → Microsoft Teams # → Webhook URL: [colar URL do Teams] # Criar acção de alerta (Actions → Trigger actions → Create action): Conditions: Trigger severity >= High Operations: Send message to [grupo de utilizadores] via Email + Teams Recovery: Notificar quando problema resolvido
6. O que monitorizar — checklist para PME
| Categoria | O que monitorizar | Threshold de alerta |
|---|---|---|
| Servidores (Windows/Linux) | ||
| Disco | Espaço livre em % por volume (C:, D:, partições Linux) | Warning: <20% | Critical: <10% |
| CPU | Utilização média 5 minutos | Warning: >80% | Critical: >95% |
| Memória RAM | Memória disponível em MB | Warning: <20% livre | Critical: <10% |
| Disponibilidade | Ping ICMP + tempo de resposta | Critical: host inacessível por 3 min |
| Serviços específicos | ||
| Active Directory | Serviço NTDS, replicação, número de objectos | Critical: serviço parado ou replicação falhada |
| Certificados SSL | Dias até expiração de certificados HTTPS | Warning: <30 dias | Critical: <7 dias |
| Backup | Última execução de backup com sucesso | Critical: sem backup bem-sucedido há >24h |
| Rede | ||
| Interfaces de rede | Tráfego in/out, erros e descartes por interface (SNMP) | Warning: >80% de utilização da largura de banda |
| Ligação ISP | Ping e latência para IP externo (ex: 8.8.8.8) | Warning: latência >100ms | Critical: sem resposta |
7. PRTG — início rápido para PME
O PRTG é ideal para PME que querem monitorização funcional em horas em vez de dias. O autodiscovery encontra automaticamente hosts e cria sensores básicos sem configuração manual.
- Descarregar e instalar o PRTG em prtg.com (instalador Windows)
- Aceder ao frontend em https://[IP-servidor]:8443
- Setup → Auto-Discovery → definir range de IPs da rede interna → iniciar
- O PRTG cria automaticamente hosts e sensores para dispositivos detectados via SNMP e WMI
- Setup → Notifications → configurar email para alertas
- Verificar o dashboard — o semáforo de estado dá uma visão imediata do ambiente
ℹ PRTG gratuito — o que cobre nas PME
O PRTG gratuito inclui 100 sensores. Um host típico usa 5–10 sensores (ping, CPU, memória, disco, tráfego de rede). Com 100 sensores cobres aproximadamente 10–20 servidores/dispositivos — suficiente para a maioria das PME até ~50 utilizadores. Para além disso, o licenciamento é por número de sensores (500, 1000, XL, etc.).
