
A Imaxe.cloud não tem qualquer associação ou acordo com a Zabbix LLC. Leia a secção Relação com a Zabbix LLC.
Descrição #
O Zabbix é uma solução empresarial de monitorização distribuída de código aberto, que permite monitorizar todos os parâmetros de uma rede de servidores, máquinas virtuais, aplicações e muito mais.
A nossa AMI de Zabbix oferece a melhor solução click & play para começar a usar o Zabbix na AWS, com opções adicionais que melhoram o produto original, e o melhor suporte.
Características #
Gerais
As principais características da nossa AMI de Zabbix:
- Instalada sobre Ubuntu, sempre na última versão estável possível.
- Última versão estável do servidor Zabbix instalada.
- Última versão estável da interface web do Zabbix instalada e pré-configurada.
- Otimizada com as versões mais estáveis de nginx, PHP, MariaDB server e Zabbix.
- Todos os idiomas da interface web instalados e disponíveis.
Especiais
As nossas AMIs oferecem suporte adicional para tirar partido de toda a potência da nuvem da forma mais rápida e cómoda:
- Configuração específica para enviar notificações através de AWS SNS.
- Configuração específica para trabalhar com grupos de auto scaling.
- Stacks de CloudFormation para criar todos os recursos relacionados (SNS, SQS, IAM, etc.).
Versões disponíveis #
As versões de Zabbix que disponibilizamos, com as suas características principais:
As versões anteriores da AMI do Zabbix foram bloqueadas pela Zabbix LLC, que não parece querer qualquer tipo de concorrência. O produto da Imaxe.cloud oferece características únicas que o próprio Zabbix não tem, pelo que entendemos que se trata de um erro e estamos a trabalhar para o resolver.
| AMI | Zabbix | Suporte Zabbix | Suporte Imaxe | SNS | Auto scaling | Ubuntu | PHP | MariaDB | Marketplace |
|---|---|---|---|---|---|---|---|---|---|
| Zabbix 7.0 v1.1 | 7.0 | ✓ | ✓ | ✓ | ✓ | 24.04 | 8.3 | 10.11 | Ver → |
| Zabbix 6.4 v2.0 | 6.4 | ✗ | ✓ | ✓ | ✓ | 22.04 | 8.1 | 10.11 | Indisponível |
| Zabbix 6.0 v1.1 | 6.0 | ✓ | ✓ | ✓ | ✓ | 20.04 | 7.4 | 10.11 | Indisponível |
| Zabbix 4.4 v1.2 | 4.4 | ✗ | ✓ | ✓ | ✗ | 18.04 | 7.2 | 10.5 | Indisponível |
| Zabbix 4.2 v8.0 | 4.2 | ✗ | ✓ | ✓ | ✗ | 18.04 | 7.0 | 10.5 | Indisponível |
Ciclo de vida #
O Zabbix tem uma política de atualizações bastante estrita, que faz com que de poucos em poucos meses se deixe de dar suporte à versão estável do momento, sendo necessário atualizar a versão maior (com os problemas que isso pode implicar) para continuar a ter suporte.
Na Imaxe percebemos que, por vezes, é muito difícil manter esse ciclo de vida tão estrito, pelo que desenhámos uma política de ciclo de vida para as nossas AMIs que, mantendo na medida do possível a compatibilidade com o ciclo de vida do Zabbix, ofereça aos nossos utilizadores o melhor suporte existente.
Versões de Zabbix
Atualmente o Zabbix oferece duas versões distintas do seu software:
- Versão Standard: inclui as últimas alterações e funcionalidades, mas não tem suporte LTS.
- Versão LTS: inclui as últimas alterações e funcionalidades no momento em que aparece, e dispõe de suporte LTS.
Suporte a versões Standard não LTS
Para que os novos clientes possam avaliar as vantagens que em breve poderão usar nas suas versões LTS, manteremos sempre uma AMI da última versão Standard operacional, e com todas as características adicionais a funcionar.
A versão da AMI irá aumentando à medida que novas versões aparecem, e o número de versão do Zabbix muda quando esta também aumenta.
Suporte a versões LTS
Enquanto for possível manteremos as AMIs geradas de versões LTS, atualizando-as, tanto ao nível do sistema operativo como das características adicionais, a cada 3 meses.
Quando deixar de ser viável, por razões técnicas ou de segurança, manter uma AMI ativa, esta será desativada e todos os utilizadores receberão um aviso da AWS indicando a nova versão mais adequada para eles.
Além disso, oferecemos suporte à migração entre versões sempre que for possível.
Instalação #
A instalação segue o processo normal de criação de uma instância EC2. O tamanho recomendado é c5.large.
O grupo de segurança inclui normalmente as seguintes permissões:
| Tipo | Protocolo | Intervalo de portas | Origem |
|---|---|---|---|
| (*) SSH | TCP | 22 | 0.0.0.0/0 |
| (*) HTTP | HTTP | 80 | 0.0.0.0/0 |
| (*) Regra TCP personalizada | TCP | 10050–10052 | 0.0.0.0/0 |
| HTTPS | HTTPS | 443 | 0.0.0.0/0 |
Os campos marcados com (*) são essenciais, quer para aceder à interface web quer para as operações normais do servidor. Embora o exemplo use 0.0.0.0/0, recomendamos restringir o acesso apenas às suas redes ou a um servidor bastião.
Assim que a instância estiver a funcionar, podemos aceder com:
- SSH: com o
.pemque selecionámos ao lançar a instância, e o utilizadorubuntu. - HTTP: no endereço
http://zabbix.instance.ip/, com o utilizadorAdmine, como palavra-passe, o ID da instância que acabámos de criar.
Configuração #
Os passos que aqui aparecem foram feitos com o utilizador Admin, por ser o utilizador por omissão.
Na primeira vez que acede ao Zabbix há várias tarefas a fazer para personalizar a sua experiência e começar a receber notificações. Para isso, clique na opção User settings no menu da esquerda e depois em Profile.
Adicionar um meio ao seu utilizador
Antes de receber notificações tem de adicionar um endereço de correio (ou outro método que prefira) ao seu utilizador. Na página de perfil existe um separador Media; nesse separador clique na ligação Add, que abre uma janela de configuração. Depois não se esqueça de clicar em Update para que as alterações fiquem guardadas.
Mudar a palavra-passe do utilizador Admin
Por omissão, a AMI de Zabbix usa o ID da instância como palavra-passe. É uma forma segura de proteger o acesso, mas provavelmente prefere mudá-la para algo mais fácil de recordar ou que cumpra a sua política de segurança.
Na página Profile, no separador User, pode mudar a palavra-passe do utilizador Admin clicando em Change password, escrevendo a nova palavra-passe duas vezes e clicando em Update.
Mudar o seu idioma
Na página de perfil, no separador User, pode selecionar o idioma da interface no seletor Language. As alterações são efetivas assim que escolher um novo idioma, guardar com Update e voltar a iniciar sessão.
Suporte de auto scaling # especialista
Como funciona o auto scaling da AWS com o Zabbix?
Para lidar com o auto scaling a partir do Zabbix há três pontos distintos a considerar:
- Adicionar uma nova instância no Zabbix quando aparece. Pode ser feito através do auto-registo de agentes Zabbix ativos (6.4, 6.0, 4.0). Assim, quando uma nova instância aparece, o Zabbix adiciona-a automaticamente como um novo equipamento.
- Guardar o ID da instância no inventário do Zabbix. Quando a instância desaparece (scale in) recebemos uma mensagem com o seu ID, por isso precisamos de o ter associado no inventário do host para o procurar e apagar.
- Receber as mensagens de escalamento da AWS. Quando a AWS produz um evento de escalamento envia uma mensagem SNS para um tópico definido por si. Ligando esse SNS a uma fila SQS podemos ler as mensagens a partir do Zabbix e eliminar as instâncias que saem dos grupos de escalamento.

Configurar o cliente
São necessários dois passos para preparar os seus clientes para o auto scaling no Zabbix: configurar o agente do Zabbix e adicionar um ficheiro com um parâmetro de utilizador para o item instance_id.
Configuração do agente Zabbix
Além de qualquer outra alteração de que precise, há seis pontos a mudar no ficheiro de configuração local do agente Zabbix, normalmente em /etc/zabbix/zabbix_agentd.conf:
- Comentar a opção
Server. - Adicionar
ServerActive=YOUR__ZABBIX__IP__ADDRESSpara configurar o servidor ativo. - Comentar a opção
Hostname. - Colocar a opção
StartAgentsa0. - Colocar a opção
HostnameItemasystem.hostname. - Colocar a opção
HostMetadataItemasystem.uname.
Com esta configuração colocamos o cliente Zabbix em modo ativo (o cliente envia informação ao servidor e não recebe verificações dele). Além disso, definimos que o Zabbix use o nome da máquina como nome de equipamento, evitando ter de o mudar sempre que um novo servidor arranca. Por fim, definimos que o Zabbix envie o valor do comando uname como metadados: como as instâncias na AWS usam um kernel especial, o valor aws aparece aí e podemos usá-lo para registar o servidor.
Parâmetro instance_id
Por omissão, quando um novo servidor de um auto scaling aparece no Zabbix, este é ligado a um template especial chamado AWS EC2 Template, que contém um item chamado instance_id associado ao campo alias do inventário. Para o alimentar, adicione ao cliente Zabbix um parâmetro de utilizador criando o ficheiro:
UserParameter=aws.ec2.instance_id,curl -s http://169.254.169.254/latest/meta-data/instance-idConfigurar o servidor
Configurados os clientes, o passo seguinte é configurar o servidor para apagar as instâncias eliminadas. A forma mais rápida e simples tem dois passos: enviar as mensagens de escalamento para uma fila SQS e configurar o servidor para a ler.
Enviar as mensagens de escalamento para uma fila SQS
Queremos que as notificações enviadas pelo serviço de auto scaling fiquem guardadas numa fila SQS, para garantir durabilidade e escala. Como o auto scaling da AWS envia as notificações para um tópico SNS, precisamos de:
- Criar um tópico SNS.
- Criar uma fila SQS.
- Configurar o SNS para enviar as mensagens para o SQS.
- Criar um utilizador IAM que possa ler as mensagens.
Como esta configuração é complicada, pode usar a nossa stack de CloudFormation para criar todos os elementos na região que quiser. Depois de aplicar a stack, no separador Outputs encontrará quatro valores a anotar:
SNSTopicARN: o ARN do tópico SNS criado.SQSQueueURL: o URL da fila SQS.SQSReadIAMUserAccessKeyeSQSReadIAMUserSecretKey: o utilizador e a chave do utilizador IAM.
Precisa desses dados para a configuração. Edite o ficheiro /etc/zabbix/zabbix_ami.yml, no bloco semelhante a:
sqs:
delay_seconds: 60
default_region: us-east-1
queues:
- url:
access_key_id:
secret_access_key:
region:Para cada SQS com notificações de escalamento é preciso adicionar um elemento ao array semelhante ao existente, com os dados indicados pelo CloudFormation. Há mais informação sobre este ficheiro na secção ficheiros importantes.
Notificações SNS #
Esta instalação de Zabbix já está preparada para enviar através de AWS SNS. Esta configuração evita os problemas de enviar correio a partir da AWS e oferece um sistema avançado e seguro de notificações.
Configurar o envio de alertas com SNS
Podem configurar-se até 6 tópicos SNS distintos, para distinguir consoante a importância do envio:
| Severidade do Zabbix | Chave em zabbix_ami.yml |
|---|---|
| Not classified | not_classified |
| Information | information |
| Warning | warning |
| Average | average |
| High | high |
| Disaster | disaster |
Para que o Zabbix envie as notificações temos de criar esses tópicos e um utilizador IAM que possa ligar-se e enviar mensagens.
Criar os tópicos SNS e o utilizador IAM
Este passo é muito mais simples com a nossa stack de CloudFormation para tópicos SNS e utilizador IAM, já preparada para criar tudo. Depois de aplicar a stack, no separador Outputs encontrará os valores a anotar:
SNSNotClassified,SNSInformation,SNSWarning,SNSAverage,SNSHigh,SNSDisaster: os tópicos SNS de cada severidade.ZabbixSendingUserAccessKeyIdeZabbixSendingUserSecretAccessKey: utilizador e palavra-passe do utilizador IAM.
Um ou mais destes valores podem não aparecer, consoante a configuração que escolheu ao aplicar a stack.
Configurar /etc/zabbix/zabbix_ami.yml
Dentro do ficheiro /etc/zabbix/zabbix_ami.yml há uma secção específica para as opções de SNS:
sns:
aws:
access_key_id:
secret_access_key:
region:
topics:
not_classified: arn:aws:sns:eu-west-1:000000000000:sample-sns
information: arn:aws:sns:eu-west-1:000000000000:sample-sns
warning: arn:aws:sns:eu-west-1:000000000000:sample-sns
average: arn:aws:sns:eu-west-1:000000000000:sample-sns
high: arn:aws:sns:eu-west-1:000000000000:sample-sns
disaster: arn:aws:sns:eu-west-1:000000000000:sample-snsPrecisa de configurar os tópicos SNS desejados (pode reutilizar o mesmo tópico várias vezes, se preferir) e os valores de utilizador, chave e região. É tudo!
Configurar o utilizador do Zabbix
O último passo é configurar o Zabbix para enviar notificações a partir do SNS:
- Entrar na interface do Zabbix com os seus dados de utilizador.
- Ir a User settings → Profile.
- Abrir o separador Media.
- Adicionar um novo meio do tipo AWS SNS, marcá-lo como Enabled e preencher os restantes campos como preferir (o campo Send to não é usado atualmente, pode escrever o que quiser).
- Clicar em Add para adicionar o novo meio e depois em Update para guardar as alterações.
CloudFormation #
Como é complicado criar todos os recursos AWS necessários, aqui pode descarregar diferentes stacks de AWS CloudFormation para simplificar o seu trabalho.
SNS Topic + SQS Queue + IAM User
Cria um tópico SNS para associar aos grupos de escalamento, uma fila SQS que recebe as suas notificações e um utilizador IAM que pode ler e apagar mensagens da fila.
SNS Topics + IAM User
Cria até 5 tópicos SNS para o Zabbix enviar notificações e um utilizador IAM que as possa publicar.
Ficheiros importantes # especialista
A AMI de Zabbix contém um conjunto de ficheiros especiais que deve conhecer.
/etc/zabbix/zabbix_ami.yml
É o ficheiro mais importante, porque controla a configuração dos aspetos especiais, como as verificações de escalamento ou as notificações SNS. Um exemplo (com dados falsos):
zabbix:
api:
user: autoscaler_api_user
password: i-073672daf01037aea94
sns:
aws:
access_key_id: AKK4L6A3OXZZ5HE2POQRU7V
secret_access_key: cICycAg26hSDpsJwbhZjbaaYlt4Tz3n1xqE7Oxp6X2Hf
region: us-east-1
topics:
not_classified: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
information: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
warning: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
average: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
high: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
disaster: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
sqs:
delay_seconds: 60
default_region: us-east-1
queues:
- url: https://sqs.us-east-1.amazonaws.com/000000000/zabbix-pro-sqs-queue
access_key_id: AKIA3OXZZ5HEWUR5A16CNWH
secret_access_key: 8ttYO3Ba9K6p0C+aj3fH5cDt2eRLHmlkHbMtlrpv18S7KRbC
region: us-east-1Atualmente este ficheiro contém três secções distintas:
zabbix: como precisamos de ligar ao servidor Zabbix para apagar os equipamentos antigos, precisamos de acesso à API. Para isso criamos um utilizador específico, cujos dados de ligação constam aqui.sns: a configuração necessária para enviar alarmes através de SNS. Aqui configuramos os dados do utilizador IAM e os tópicos SNS que vamos usar.sqs: a configuração para controlar as mensagens de escalamento na AWS. Aqui definimos de quanto em quanto tempo verificar a fila (delay_seconds) e as diferentes filas a consultar.
Contém credenciais IAM em claro. Restrinja as suas permissões e rode as chaves periodicamente.
/var/log/zabbix-sqs-reader/zabbix-sqs-reader.log
Este ficheiro regista os vários eventos de auto scaling lidos a partir do SQS.
Antes de fazer a configuração verá a mensagem Ops! It looks like the file /etc/zabbix/zabbix_ami.yml hasn't been configured yet. We better sleep for 5 minutes. — é normal, e desaparece quando configurar o ficheiro zabbix_ami.yml.
Atualizações da AMI # especialista
Leia toda a secção antes de fazer seja o que for, e prepare uma cópia de segurança de todos os seus dados.
Como o Zabbix lança novas versões com novas funcionalidades e melhorias, a melhor opção é ir atualizando a nossa AMI de tempos a tempos. Infelizmente, essas mesmas funcionalidades incluem alterações na base de dados e internas que podem ser problemáticas ao atualizar a sua instalação.
A nossa AMI de Zabbix é a melhor forma de evitar estes problemas, já que oferecemos uma maneira de atualizar entre versões maiores mais rápida, simples e segura do que a habitual.
Resumo da atualização
O processo de atualização da nossa AMI é bastante simples e resume-se aos seguintes passos:
- Fazer um dump da nossa base de dados atual.
- Lançar uma nova AMI com a última versão estável.
- Carregar o dump da base de dados na nova instância.
- Executar o nosso script de migração.
Assim mantemos ao mesmo tempo a versão atual e a nova, e podemos fazer os testes necessários para garantir que tudo funciona corretamente, para depois mudar os EIP associados a essa instância, ou migrar os clientes aos poucos.
Neste tutorial usamos o termo origem para o seu servidor Zabbix atual e destino para o novo servidor.
Processo de atualização
Passo 1: cópia de segurança do servidor de origem
O primeiro passo é criar uma imagem do servidor de origem, para evitar qualquer perda acidental de dados. Pode seguir o manual da AWS para criar uma AMI.
Passo 2: dump da base de dados e versão do Zabbix
Entramos por SSH na instância e passamos a root:
sudo /bin/su -Depois fazemos o dump da base de dados para um ficheiro:
mysqldump zabbix > zabbix_origin_database.sqlPor fim descarregamos o ficheiro criado para a nossa máquina, para depois o enviar para o novo servidor. Também devemos anotar a versão atual do Zabbix: pode vê-la na interface web, e deve ser um número semelhante a 4.0, 4.2, 4.4 ou 5.4.
Passo 3: lançar uma nova instância Zabbix
O passo seguinte é criar uma nova instância de Zabbix, usando a última versão estável da AMI que pode encontrar no nosso perfil do AWS Marketplace. No mínimo, deve usar a versão 6.0 da nossa AMI de Zabbix.
Esta nova instância será o servidor de destino para onde moveremos os dados, e já vem com a última versão instalada e atualizada. Assim que arrancar, copiamos para ela o dump da base de dados do servidor de origem.
Passo 4: atualizar a base de dados
Para inserir a nossa base de dados atual, atualizá-la para a nova versão e adicionar as configurações necessárias, usamos o script /opt/tools/bin/zabbix-ami-upgrade.sh, que deve ser executado como utilizador ubuntu, indicando-lhe a versão original do Zabbix e o ficheiro com o dump. Por exemplo, migrando a partir de Zabbix 4.0:
/opt/tools/bin/zabbix-ami-upgrade.sh 4.0 zabbix_origin_database.sqlO processo vai informando dos passos que executa e, uma vez terminado, podemos continuar a trabalhar com o novo servidor Zabbix.
Passo 5: aceder à interface web
Quando a migração terminar já poderemos aceder à interface web e ver a situação geral do servidor. É importante ter em conta que devemos usar os mesmos utilizadores e palavras-passe que tínhamos no servidor anterior.
Passo 6: migrar configurações especiais e configurar clientes
Uma vez a base de dados operacional, devemos ter em conta outro tipo de configurações que possamos ter instalado no servidor, como por exemplo:
- Scripts de monitorização.
- Pacotes de sistema adicionais.
- Certificados SSL que tenhamos instalado.
Também teremos de mover o EIP que tenhamos configurado para essa instância, de forma que os clientes não precisem de alterações.
Se não estivermos a usar EIP, é um bom momento para começar, já que de outro modo teremos de mudar o IP do novo servidor em todos os clientes.
Suporte #
A utilização desta AMI de Zabbix inclui suporte para:
- A instalação da AMI.
- Configuração inicial.
- Configurações adicionais relacionadas com a AMI (por exemplo, usar Let’s Encrypt).
- Configuração do Zabbix relacionada com a AMI.
- Envio de notificações do Zabbix com SNS.
- Suporte de auto scaling no Zabbix.
- As nossas stacks de CloudFormation.
- Suporte geral do Zabbix.
- Atualizações, melhorias e migrações da AMI.
Registo de alterações #
Histórico da AMI. As datas correspondem à publicação de cada versão no AWS Marketplace.
Zabbix 7.0 · versão 1.1
Publicada a versão 1.1 da nossa AMI de Zabbix 7.0, com Zabbix instalado e configurado, suporte de auto scaling e notificações SNS.
Zabbix 6.4 · versão 1.0
Publicada a versão 1.0 da nossa AMI de Zabbix 6.4, com Zabbix instalado e configurado, suporte de auto scaling e notificações SNS.
Zabbix 6.0 · versão 1.0
Publicada a versão 1.0 da nossa AMI de Zabbix 6.0 LTS, com Zabbix instalado e configurado, suporte de auto scaling e notificações SNS.
Zabbix 5.4 · versão 1.0
Publicada a versão 1.0 da nossa AMI de Zabbix 5.4, com Zabbix instalado e configurado, suporte de auto scaling e notificações SNS.
Relação com a Zabbix LLC #
A Imaxe.cloud não tem nem nunca teve qualquer tipo de acordo com a empresa que mantém o Zabbix, a Zabbix LLC.
A informação e o suporte aqui oferecidos são prestados de forma não oficial, sobre o produto de software livre Zabbix e as opções adicionais que construímos à sua volta.
Precisa de ajuda com esta AMI?
Responde-lhe a mesma equipa que constrói a imagem — engenheiros a sério, sem bots nem primeiro nível.