API de Monitoramento de Servidores

Documentação completa dos endpoints disponíveis

SQLite
Flask
Monitoramento
Base URL: http://localhost:5000/api

GET Endpoints

GET /uso/atual
Sem autenticação

Retorna o uso atual (última métrica) de todos os servidores.

Exemplo de resposta:

[
  {
    "id": 1,
    "nome": "web01",
    "status": "online",
    "cpu_percent": 45.2,
    "ram_percent": 62.1,
    "hd_percent": 58.3,
    "temperature": 52.5,
    "date": "2024-01-15 10:30:00"
  },
  {
    "id": 2,
    "nome": "db01",
    "status": "online",
    "cpu_percent": 23.5,
    "ram_percent": 78.4,
    "hd_percent": 45.2,
    "temperature": 48.3,
    "date": "2024-01-15 10:30:00"
  }
]
GET /media/{periodo}
Parâmetros opcionais

Retorna médias das métricas por período.

Parâmetros:

  • periodo - Obrigatório: 30min, 1h, 6h, 12h, 24h
  • ?servidor_id=1 - Opcional: Filtrar por servidor específico

Exemplos:

  • GET /media/30min
  • GET /media/1h?servidor_id=1
  • GET /media/24h

Exemplo de resposta:

[
  {
    "servidor_id": 1,
    "quantidade_registros": 60,
    "cpu_medio": 42.5,
    "ram_medio": 58.3,
    "hd_medio": 45.2,
    "temp_media": 52.1,
    "cpu_max": 78.3,
    "ram_max": 85.6
  }
]
GET /setup

Retorna todos os servidores cadastrados com suas configurações de hardware.

Exemplo de resposta:

[
  {
    "id": 1,
    "nome": "web01",
    "status": "online",
    "hd_nome": "SSD NVMe Samsung 980",
    "hd_tamanho_gb": 512,
    "cpu_nome": "Intel i9-13900K",
    "cpu_ghz_total": 5.8,
    "ram_nome": "DDR5 Corsair",
    "ram_tamanho_mb": 32768,
    "criado_em": "2024-01-15 10:00:00",
    "ultima_atualizacao": "2024-01-15 10:30:00"
  },
  {
    "id": 2,
    "nome": "db01",
    "status": "online",
    "hd_nome": "NVMe WD Black",
    "hd_tamanho_gb": 1024,
    "cpu_nome": "AMD Ryzen 9 7950X",
    "cpu_ghz_total": 5.7,
    "ram_nome": "DDR5 Kingston",
    "ram_tamanho_mb": 65536,
    "criado_em": "2024-01-15 10:00:00",
    "ultima_atualizacao": "2024-01-15 10:30:00"
  }
]

POST / PUT Endpoints

POST /setup

Cadastra ou atualiza um servidor.

Body (JSON):

{
  "nome": "web01",
  "status": "online",
  "hd_nome": "SSD NVMe",
  "hd_tamanho_gb": 512,
  "cpu_nome": "Intel i9-13900K",
  "cpu_ghz_total": 5.8,
  "ram_nome": "DDR5",
  "ram_tamanho_mb": 32768
}

Exemplo de resposta:

{
  "mensagem": "Servidor salvo",
  "id": 1
}
PUT /setup/{id}/status

Atualiza o status de um servidor.

Body (JSON):

{
  "status": "offline"
}

Valores: online, offline, manutencao

Exemplo de resposta:

{
  "mensagem": "Status atualizado"
}
POST /metricas

Insere métricas de um servidor (todos campos são opcionais exceto servidor_id).

Body (JSON):

{
  "servidor_id": 1,
  "cpu_percent": 45.2,
  "ram_percent": 62.1,
  "ram_mb_usando": 20480,
  "cpu_ghz_usando": 2.5,
  "hd_percent": 58.3,
  "hd_mb_usados": 298560,
  "network_rx_mb": 125.5,
  "network_tx_mb": 45.2,
  "process_count": 142,
  "temperature": 58.5,
  "uptime": 86400
}

O campo date é opcional (padrão: CURRENT_TIMESTAMP)

Exemplo de resposta:

{
  "mensagem": "Métricas salvas",
  "id": 123
}

Informações Adicionais

  • • Banco de dados: monitoramento.db (SQLite)
  • • Todos os endpoints retornam JSON
  • • Status codes: 200 (OK), 400 (Erro), 404 (Não encontrado)
  • • As métricas são inseridas automaticamente com timestamp
  • • O status do servidor é atualizado automaticamente para "online" ao receber métricas