Instalei, mas e agora?
Tags: tips, monitoring, opensource, devops
Published: 2023-05-14 01:01:53

---
title: Instalei, mas e agora?
published: true
date: 2021-09-22 13:32:36 UTC
tags: tips,monitoring,opensource,devops
canonical_url: 
---

Sempre que é lançado uma nova versão do Zabbix, vemos uma chuva de “cookbook’s” ensinando como instala-lo em diversos tipos de ambientes e cenários (inclusive eu tenho um publicado [aqui](https://dev.to/mikefortes/rocky-linux-ljf-temp-slug-9596249)). **Mas e depois?** Você sabe oque fazer para começar um ambiente do zero, aplicando boas praticas e sem se preocupar com dores de cabeça no futuro?

Segue a leitura que vou dar algumas dicas que você pode seguir (ou não rs) para ter seu ambiente de monitoramento novinho em folha, rodando da melhor forma possível!

![](https://cdn-images-1.medium.com/max/1024/1*2GZ4hAQOg3IM5-P3WhfJXQ.png)

Aposto que em algum momento algum gestor pediu pra você subir um Zabbix na sua empresa, e você pegou alguma receitinha de bolo na internet e pronto, o Zabbix tá criado.

A questão é que existem vários “ajustes finos”, que são perfeitos para se aplicar nesse momento, ou seja, assim que o ambiente foi criado. Seu banco quase não possui informação armazenada, não existem rotinas criadas nem nada do tipo, então toda alteração feita será aplicada daquele momento em diante, te poupando muito trabalho e dor de cabeça no futuro (e acredite, eles vão ocorrer)

Abaixo vou listar algumas dessas dicas/ajustes finos pra você conhecer e caso goste da ideia, já vai aplicando em laboratório, que no próximo ambiente que você criar o monstro vai sair da jaula!

### Housekeeping

![](https://cdn-images-1.medium.com/max/381/0*aT0U_zuMf5axfdlD.jpg)

O housekeeping se divide em duas partes. A **primeira** que conhecemos, esta dentro da aba geral, e é essencial que você seja o mais realista possível no que se trata de quanto tempo de dados retidos você pretende manter em seu banco. Por padrão esse cara vem configurado para 1 ano, então pelo amor de deus, altere isso antes de cadastrar qualquer host rs.

A **segunda** parte se trata dos parâmetros de Housekeeping dentro do zabbix\_server.conf. Devemos nos atentar ao valor do HousekeepingFrequency e MaxHousekeeperDelete.

**HousekeepingFrequency** é a frequência (em horas) que ele será executado. Você precisa ser realista nesse parâmetro, e informar um intervalo que você sabe que seu banco pode executar essa tarefa, antes que a próxima tente se iniciar. Caso esse cara não funcione corretamente, seu banco vai começar a acumular dados antigos e crescer desordenadamente.

**MaxHousekeeperDelete** é o parâmetro que indica quantas linhas serão excluídas em cada rotina. Se você informar um valor baixo, sempre ira sobrar dados antigos, e caso seu banco não tenha grandes recursos, um alto valor também pode não funcionar. Se colocar o valor 0 nesse parâmetro, ele não vai ter limites para exclusão, então nesse caso, é bom saber oque você esta fazendo…

Lembrando que esse cara não se aplica caso você queira seguir a próxima dica que vou dar.

### Particionamento de tabelas

![](https://cdn-images-1.medium.com/max/997/1*Xy3tMpoijGWL94nYVtfd4w.png)

Essa dica você deve tá cansado de ouvir, mas como vale a pena, vou apenas mencionar.

O Zabbix armazena os dados em tabelas conjuntas, e as que mais acumulam dados são as **históricos** e  **trends**.

Dessa forma, a ideia é particionar essas tabelas, seja em dias/semanas/meses, para que quando ocorra qualquer tipo de consulta (seja adicionando ou excluindo dados) ela ocorra de forma mais performática.

Não vou indicar nenhum tutorial especifico aqui, pois os comandos ou scripts podem varias de acordo com o banco ou versão do Zabbix, mas tenha em mente sempre que em toda alteração no banco, é importante um backup antes.

### Rotina de Backup

![](https://cdn-images-1.medium.com/max/352/1*CJ4GnHTYAWh_NjBaX-tiRA.png)

O bem mais precioso que possuímos quando trabalhamos com monitoramento, é nosso banco de dados.

Nesse caso, a dica é criar uma rotina de backup, que sempre que executada, faça um backup do schema do seu banco e dos dados coletados.

Abaixo vou deixar um link com uma das maneiras de efetuar esse backup, lembrando que assim que efetuado, o arquivo final deve ser transferido pra outro host, mantendo assim sua segurança.

[Zabbix Share - Realizando Backup do Schema e do Banco de Dados do Zabbix](https://share.zabbix.com/zabbix-tools-and-utilities/tools-and-utilities/realizando-backup-do-schema-e-do-banco-de-dados-do-zabbix)

Ps: Normalmente as tabelas histórico e trends são deixadas de fora desse backup, mas não é regra.

### Usuários— Autenticação— Permissões

![](https://cdn-images-1.medium.com/max/1024/1*lOKPC15Cwp5PvPSrh58BlQ.png)

Aqui, querendo ou não, esta tudo linkado.

Antes de qualquer coisa, o mais importante é ter em mente os grupos de usuários que terão acesso ao seu Zabbix. Delimitar suas permissões de visualização/escrita e das próprias funcionalidades da sua ferramenta.

Ps: Muito importante **desabilitar** o acesso ao front-end do usuário Guest. -_Sim, tem pessoas que esquecem isso._

Depois de delimitado o que cada grupo poderá acessar, chegou a hora de criar os usuários.

![](https://cdn-images-1.medium.com/max/399/1*1KkE4eZoQZD4SyFaY1mfng.png)

Sei que parece mais fácil criar o usuário na mão, senha e etc… mas acredite, não é. Por exemplo, se um funcionário for mandado embora por algum motivo, e ninguém te notificar, ele vai continuar tendo acesso ao ambiente, mesmo de fora da empresa, caso seu Zabbix esteja na internet.

Aqui, o ideal seria habilitar alguma autenticação fornecida por um LDAP (mais comuns hoje em dia) ou os novos SAML (como OAuth por exemplo). Os passos são simples, e basta criar o usuário com o mesmo “apelido” que foi criado em sua infra, e pronto.

A maior vantagem nesse caso, é que para acessar o Zabbix ele tem que estar habilitado no LDAP/SAML, sendo assim, no exemplo acima, mesmo não sendo avisado sobre a demissão do funcionário, ele não conseguiria acessar, visto que no AD (por exemplo) ele já estaria bloqueado.

### TIPOS DE MIDIA

![](https://cdn-images-1.medium.com/max/1024/1*uk39p1kCHLt5pQqHhjH_jQ.png)

Essa é a parte onde é mais customizava e diversificada de todos os ambientes.

Recomendo de cara criar suas mídias de alertas, talvez um padrão como email, telegram… Ou tentar as novas integrações como com o Jira, ServiceNow, Zendesk…

De cara, caso já tenha desenhado o cenário, também já seria interessante pensar nas ações que vão utilizar cada tipo de mídia.

### TEMPLATES

![](https://cdn-images-1.medium.com/max/264/1*hmFSkDJPqzgcqFxd6aDDMg.png)

Os templates oficiais são legais, tem itens e ideias pertinentes (graficos bugados rs), porem o seu maior problema esta nos intervalos surreais, dados que se repetem, entre outras peculiaridades.

O ideal nesse caso, é utilizar templates que já foram ajustados pela comunidade, ou ajustar você mesmo de acordo com sua necessidade.

Aumentar o intervalo de coleta de dados string como hostname/sistema operacional (que dificilmente são alterados). Alterar valores de disparo de triggers, ajustar descobertas de baixo nível, vincular macros criadas em templates para que não conflitam com macros “universais” do Zabbix, etc…

### EXPRESSÕES REGULARES

![](https://cdn-images-1.medium.com/max/736/1*FT12zIDQPhqXD66ocnzU6Q.png)

Complementando os templates citados anteriormente, expressões regulares podem te ajudar no quesito “ignorar dados inúteis”.

No print por exemplo, criei macros para ignorar certos serviços do Windows, para que quando o LLD rode, ele não crie itens/triggers para eles. Dessa forma diminuo a quantia de chamados abertos pela minha operação, visto que tais serviços não são de responsabilidade do nosso suporte.

Lembrando que esse post se trata de dicas, não de regras. Você pode ou não concordar com algum ponto, porem o principal aqui é ajudar alguém que esta “iniciando” um ambiente de monitoramento em sua empresa e quer começar da melhor forma possível.

Qualquer duvida sobre algum ponto citado, ou caso queira indicações de algum tutorial, me chama no LinkedIn. Vou ter o maior prazer em bater um papo contigo!!