Monitorar Proxmox

Criada por Danilo Tomich, Modificado em Qui, 10 Jul na (o) 3:45 PM por Danilo Tomich

Monitoramento Análise Proxmox v1 ✅


Principais Itens:

-> Todas as informações do Linux do Proxmox via Zabbix Agent;

-> Tabela consolidada de VMs com informações de status, cpu, memoria, disco, trafego, leitura e escrita de disco e etc via API do Proxmox.


Pro:

-> Arquivos e scripts prontos;

-> Documentação em texto;

-> Arquivos json do Grafana pra importar.


Link:

https://drive.google.com/file/d/1bwsQiMJRLLt9EQFREsq4y0h41h_YRgH5/view?usp=sharing


Homologado com: Proxmox VMs (01 Node).


Obs: Tabela consolidada de VMs (MySQL) ?


Siga a documentação. ?


- Clusters e Containers em breve na v2. ❌

- Uso de disco das Vms (Proxmox não fornece). ❌


Ref: 52



#Desenvolvido por: Bee Solutions

#Autor: Fernando Almondes

#Data: 21-08-2024 - 19:37


Novidadades da versao 01:

- Todas as informacoes do Linux do Proxmox via Zabbix Agent;

- Tabela consolidada de VMs com informacoes de status, cpu, memoria, disco, trafego, leitura e escrita de disco e etc via API do Proxmox.


#### Siga a documentacao:



Para instalar o Zabbix Agent no seu Proxmox, o ideal é escolher uma opção compatível com o sistema operacional base do Proxmox.



https://www.zabbix.com/download


✅ O que você deve considerar:

O Proxmox VE é baseado no Debian, geralmente na versão mais recente ou LTS.


? Dica:

Execute este comando no Proxmox para verificar a versão exata do Debian:
Com isso, você saberá qual versão do Debian usar para baixar o agente correto no site do Zabbix.

cat /etc/os-release


Como selecionar no site de download do Zabbix:

  1. Em "ZABBIX VERSION", escolha a versão desejada (por exemplo, 7.4 se quiser a mais recente).

  2. Em "OS DISTRIBUTION", selecione Debian.

  3. Em "OS VERSION", veja qual versão do Debian seu Proxmox usa:

    • Para o Proxmox 8, a base é o Debian 12 (bookworm).

    • Para o Proxmox 7, a base é o Debian 11 (bullseye).

  4. Em "ZABBIX COMPONENT", selecione apenas Agent (ou Agent 2, se preferir a nova versão com mais recursos e suporte a plugins).

  5. Depois, siga as instruções de instalação via repositório .deb.


Dae basta seguir a instalação que mostra no site do zabbix ao proxmox.




# Instalacao das dependencias no proxmox

apt install jq rsyslog




### Ajuste as informacoes de server e system.run (Adicione o IP do Zabbix Server que fara acesso ao Agent instalado no servidor do Proxmox)


nano /etc/zabbix/zabbix_agent.conf



###Configuração caso tenha instalado o zabbix_agent.conf
Server=127.0.0.1,ip-servidor-zabbix-aqui

AllowKey=system.run[*]


# Apos ajustar reiniciar o servico do zabbix-agent

service zabbix-agent restart


###Se instalou o zabbix_agent2.conf, faça dessa outra forma:


nano /etc/zabbix/zabbix_agent2.conf

Adicione ou edite:

Server - IP do Zabbix
SevverActive - IP do Zabbix
Hostname+ Nome do host que esta monitorando la no zabbix.

Server=172.31.100.18
ServerActive=172.31.100.18
Hostname=SERVIDOR - PROXMOX 02 - RESERVA
AllowKey=system.run[*]


Caso seja o Para zabbix_agent

Server=127.0.0.1,IP_DO_ZABBIX
EnableRemoteCommands=1

Reinicie:

systemctl restart zabbix-agent2



###Veja se ele esta up:

systemctl status zabbix-agent2
ss -tunlp | grep 10050

Resultado esperado:



###Teste se o comando funcionou
Instale o Zabbix_get

apt install zabbix-get -y

Depois teste:

zabbix_get -s IP_DO_PROXMOX -k "system.run[uptime]"

Teste esperado:






# Crie o diretorio de scripts no próprio Proxmox onde instalou o zabbix_agent

mkdir -p /usr/lib/zabbix/externalscripts


# Navegue ate o diretorio do projeto (Copie os scripts para o diretório de scripts do Zabbix)

cd /usr/lib/zabbix/externalscripts



bee_check_log.sh -> Responsavel pelo item de log do servidor

bee_consulta_nodes_proxmox.sh -> Responsável pelo item de status do node

bee_consulta_status_proxmox.sh -> Responsavel pelos itens de status das vms (online/offline)

bee_consulta_storages_proxmox.sh -> Responsavel pelos prototipos de itens dos storages

bee_consulta_vms_proxmox.sh -> Responsavel pelos prototipos de itens das vms

bee_discovery_storages_proxmox.sh -> Responsavel pela descoberta de storages

bee_discovery_vms_proxmox.sh -> Responsavel pela descoberta de vms


# Ajuste as permissoes

chmod +x bee_*
chmod +r /var/log/syslog


# Acesse o Proxmox no navegador para cadastrar a API

https://ip-proxmox:8006/

Datacenter -> Tokens de API -> Adicionar: -> Usuario: root@pam -> ID do Token: ZABBIX-BEE -> Adicionar (Desmarque a caixa de Privilege Separation)


IMPORTANTE: ELE GERA UM TOKEN, COPIE ELE QUANDO APARECER, POIS SE NÃO COPIA E SALVAR, SO É POSSÍVEL PEGAR O TOKEN DE NOVO, REFAZENDO.



# Copie o Token para utilizar no .env (Crie esse arquivo no mesmo diretório dos scripts: /usr/lib/zabbix/externalscripts)

nano /usr/lib/zabbix/externalscripts/.env

TOKEN='root@pam!ZABBIX-BEE'

⚠️ Esse TOKEN é o nome do usuário da API com a permissão de leitura no Proxmox,.


# Copie o Secret para cadastrar no host a macro: {$TOKENBEE}: sua-secret



✅ Exemplo do teste:

No terminal do PROXMOX onde colocamos os script rode:
Mude a chave pela sua:

cd /usr/lib/zabbix/externalscripts
./bee_consulta_nodes_proxmox.sh 1782f547-90a9-4741-b73f-4ed56579

Resultado esperado:



# Realizando teste na API com o Proxmox (Caso esteja tudo certo será gerado um json com as informações das VMs)

./bee_discovery_vms_proxmox.sh secret-da-api-aqui


✅ 1. Status do Node

./bee_consulta_nodes_proxmox.sh SEU_SECRET


✅ 2. Descoberta de VMs

Esse script descobre as VMs para o Zabbix criar itens automaticamente:

./bee_discovery_vms_proxmox.sh SEU_SECRET


✅ 3. Consulta de VMs (status)

Esse verifica se cada VM está online ou offline:


./bee_consulta_status_proxmox.sh SEU_SECRET VMID



✅ 4. Descoberta de Storages 


./bee_discovery_storages_proxmox.sh SEU_SECRET



✅ 5. Consulta de uso dos Storages

./bee_consulta_storages_proxmox.sh SEU_SECRET STORAGEID


./bee_consulta_storages_proxmox.sh SEU_SECRET local-lvm


? Saída esperada: um número (em bytes ou %, depende do script) 


✅ 6. Consulta de VMs (dados detalhados) 

./bee_consulta_vms_proxmox.sh SEU_SECRET VMID


./bee_consulta_vms_proxmox.sh SEU_SECRET 100


? Vai trazer algo como: 

cores=2;mem=2048;uptime=123456;


✅ 7. Logs

Esse é opcional e depende de como foi implementado:

./bee_check_log.sh SEU_SECRET


? Pode ser usado para verificar eventos, falhas ou reinicializações.



⚠️ DICA:

Se quiser evitar digitar o token toda vez, você pode criar um alias de teste:


alias SECRET="seu-token-aqui"


Ou criar um script .env corretamente com: 


TOKEN='root@pam!ZABBIX-BEE'



Ref:

- https://pve.proxmox.com/pve-docs/api-viewer/#/cluster/resources

- https://pve.proxmox.com/wiki/Proxmox_VE_API



Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo