Skip to content
Snippets Groups Projects
Commit 3114e511 authored by mvrp21's avatar mvrp21
Browse files

feat(services): add forsyn zabbix server info


Signed-off-by: default avatarmvrp21 <mvrp21@inf.ufpr.br>
parent b4a683b5
No related branches found
No related tags found
No related merge requests found
# forsyn/Monitoramento Zabbix
A [](/pages/machines/base/forsyn) é a máquina que executa o servidor de
monitoramento Zabbix, responsável por coletar dados importantes das máquinas do
C3SL (tanto físicas quanto virtuais), bem como enviar alertas relacionados a elas.
## Zabbix Server
Há um servidor rodando nessa máquina, que recebe as informações dos *agents*
executados nas máquinas monitoradas e armazena essa informações em um banco de
dados PostgreSQL local. Há uma interface web para interagir com esse servidor,
sua configuração está no `/etc/nginx/`.
### Coleta de dados
Zabbix utiliza *agents* que são serviços executados nos hosts **monitorados**
para que eles enviem dados sobre as máquinas, como uso de CPU, memória, espaço
de disco, etc.
Além disso utilizamos ele também para monitorar aparelhos SNMP, dos quais
destacamos o **gerador** e o **ar condicionado**, e também há algumas entradas
de monitoramento de agentes IPMI (principalmente para verificar se eles estão
acessíveis na rede).
### Integração com o Telegram
Além de enviar emails, o servidor Zabbix está configurado para enviar avisos no
grupo de monitoramento dos roots em casos especiais, como quedas de energia ou
máquinas críticas.
Para isso existe o script
[`zbxtg.py`](https://github.com/ableev/Zabbix-in-Telegram), localizado em
`/usr/lib/zabbix/alertscripts/`. Além disso é importante que uma conversa seja
iniciada com o bot, para isso basta mandar a seguinte mensagem nos grupos em
que o bot está: `/start@c3sl_monitoramento_bot`. Dificilmente será necessário
mandar essa mensagem, mas caso algum alerta não seja enviado pelo Zabbix essa
pode ser a causa (é possível ver isso na interface web do servidor).
## Rede
Essa máquina tem conexão direta de 10Gb com o switch
[](/pages/switches/dc/malbec).
Nomes que apontam para essa máquina:
- `forsyn.c3sl.ufpr.br`, `forsyn.dfs`, `forsyn.arcond`: Nome da forsyn
nas subredes;
- `monitoramento.c3sl.ufpr.br`, `monitoramento.dfs`,
`monitoramento.arcond`: CNAMEs utilizados pelos *agents* para identificar o
servidor de monitoramento;
- `zabbix.c3sl.ufpr.br`: nome para o frontend do servidor zabbix;
Essa máquina está nas seguintes VLANs:
- `DFS`: para monitoramento das torneiras e barris.
- `ARCOND`: para monitoramento SNMP do ar condicionado.
- `C3SL`: para o resto.
:::{admonition} `CNAME monitoramento.*`
:class: important
É importante ressaltar que utilizar os CNAMEs `monitoramento.*` é preferível a
utilizar `forsyn.*`, pois caso o monitoramento seja migrado novamente para
outra máquina a mudança de diversos arquivos (como firewall, DNS, etc.) não
seja necessária, basta apenas fazer 'monitoramento.*' apontar para o novo
servidor (e esperar as máquinas atualizarem suas tabelas de DNS).
:::
Há também algumas regras definidas no *firewall* para abrir portas de
monitoramento (ressalta-se a 10050). Ele utiliza o nome `monitoramento`, então
não deve ser necessário se preocupar em mexer no firewall caso o monitoramento
seja movido da forsyn.
## Detalhes importantes
### Binários SNMP
Ao que parece os binários para monitoramento SNMP não existem mais na internet,
e portanto uma cópia deles é mantida no diretório `/root/zabbix/snmp/`. É
importante não perder esses arquivos (há cópias deles no *backup* também,
claro) se não a maior parte do monitoramento por SNMP ficará indisponível.
### `micro.arcond`
O monitoramento do ar de precisão do datacenter é feito por meio de um micrinho
proprietário dele que 'não temos acesso'.
No momento da escrita desse texto, o monitoramento foi recém migrado da
[](/pages/machines/base/urquell) para a [](/pages/machines/base/forsyn), mas
aparentemente há alguma regra de *firewall* **interna** do micrinho que permite
apenas a urquell fazer as requisições SNMP.
Não foi feita nenhuma gambiarra para contornar isso, logo o monitoramento do ar
de precisão pela forsyn não ocorre atualmente.
:::{note}
Uma possível solução envolveria mexer no *firewall* da urquell e fazer a forsyn
fazer as requisições através dela. Não foi feito por ser bizarro isso ser
necessário.
:::
## Planos para o futuro
* Sincronizar o Zabbix com uma base de dados que seja 'fonte da verdade': O que
evitaria problemas com rotação de IPs de VMs e também facilita o
monitoramento de algumas coisas. Uma proposta para isso é utilizar o
[NetBox](https://github.com/netbox-community/netbox).
* Alertas destinados aos responsáveis pelos ativos: Por exemplo, se o disco de
uma virtual utilizada pelo PET ficar cheio eles devem receber o aviso,
provavelmente por email, não os roots.
* Monitoramento de serviços: Atualmente apenas se fazem verificações sobre o
estado da máquina virtual em si (se está ligada ou desligada, porcentagem de
uso de disco, etc.), mas seria ideal verificar se os serviços web estão
rodando por exemplo, principalmente para alguns projetos do C3SL.
* Utilizar a máquina de monitoramento para inventariar a rede do DInf:
hardwares, serviços, imagens, etc. com o intuito de gerenciar
vulnerabilidades.
* Idealmente, por mais que não necessário, o monitoramento deveria ser
redundante, afinal se a única máquina de monitoramento cair nós ficaremos no
escuro, sem saber se há problemas com as demais máquinas ou não.
* Dar um jeito de monitorar o ar de precisão, idealmente por meio de algo que
tenhamos controle, não pelo micrinho esquisito.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment