Avaliação

Monitoramento hosts e containers com prometheus, grafana, grafana loki e alertas via alertmanager

Publicado em 20 de Dezembro de 2024 dias na TI e Programação

Sobre este projeto

Aberto

Conseguir monitorar os containers e os hosts de um ambiente que temos... Ambiente não está full em produção mas isso não deixa de ser importante ter atenção.

Peço que quando conectar na nossa vpn compartilhar a tela para facilitar a nossa documentação e registros.

A principio é isso que coloquei no contexto geral mas podemos conversar e ver o que é mais fluido. Mas são basicamente 4 novos serviços (prometheus, grafana, grafana loki e alertmanager) que queremos e os complementares para que o prometheus funcione com eficiencia.

------------------------------------------------------------

Estou montando um novo server para monitorar tenho 4 servidores em docker swarm (2 workers 2 managers) com diversos containers, um nfs, e quero monitar os containers e os hosts.

O ambiente tem o portainer para gerenciar o swarm e o server de monitoramento é só ssh.

## Ambiente monitoramento
### Serviços a Serem Monitorados
- Redis
- PostgreSQL
- PGvector
- Minio
- Traefik
- n8n
- Chatwoot
- Wireguard
- Evolution-API
- Docker Engine
- NFS Server
Esses acima são os principais

### Serviços necessarios (na maquina nova)
- Prometheus (para metricas)
- Grafana Loki (para logs)
- AlertManager (alertas)
Deve coletar métricas de todos os hosts e containers via exporters

### Exporters (no swarm)
- Node Exporter (9100)
- cAdvisor (8080)
- Redis Exporter (9121)
- PostgreSQL Exporter (9187)
- Traefik Metrics (porta 8082)
- Docker Metrics (9323)
- Minio Metrics (9290)
- Rails Exporter (9394)
- JMX Exporter (9404)

### Grafana (no swarm)
- Grafana vai subir no swarm para ser acessado via traefik e https.

## Dashboards Necessários (pode usar templates prontos exemplos abaixo)
### Host Metrics
- CPU: uso por core, load average
- Memória: uso, swap, cached
- Disco: uso, IOPS, latência
- Rede: throughput, erros
- Top processos por cpu/ram

### container metrics default
- cpu/ram por container
- status (up/down)
- restarts
- network i/o

### redis
- conexões ativas
- memória utilizada
- operações por segundo
- hit rate do cache

### postgresql
- conexões ativas/máximas
- transações por segundo
- query time
- table/index size
- cache hit ratio

### traefik
- requests por segundo
- latência média
- códigos de erro
- backends status

### n8n
- workflow executions
- error rate
- queue size
- worker status

### chatwoot
- worker status

### nfs
- disk usage
- iops
- latência de operações
- network throughput

### pgvector
embedding generations/s
search latency
index size
cache hits

### minio
objects count
bucket size
bandwidth usage
request latency

## alertas necessários
### críticos
- host cpu > 85%
- host ram > 90%
- disco > 85%
- container down
- postgresql/redis down

### warning
- host cpu > 75%
- host ram > 80%
- disco > 75%
- alto tempo de resposta
- nfs latency > 100ms


## observações importantes
- volumes dos containers e afins tem que ser persistentes no nfs
    informar quais vão precisar de volume para criar o diretorio
- peço que quando conectar na nossa vpn acessar um meet que será disponibilizado para você e compartilhar a tela para documentação.
- Informar os dominios e afins que serão necessarios o registro.

Contexto Geral do Projeto

Estou montando um novo server para monitorar tenho 4 servidores em docker swarm (2 workers 2 managers) com diversos containers, um nfs, e quero monitar os containers e os hosts. O ambiente tem o portainer para gerenciar o swarm e o server de monitoramento é só ssh. ## Ambiente monitoramento ### Serviços a Serem Monitorados - Redis - PostgreSQL - PGvector - Minio - Traefik - n8n - Chatwoot - Wireguard - Evolution-API - Docker Engine - NFS Server Esses acima são os principais ### Serviços necessarios (na maquina nova) - Prometheus (para metricas) - Grafana Loki (para logs) - AlertManager (alertas) Deve coletar métricas de todos os hosts e containers via exporters ### Exporters (no swarm) - Node Exporter (9100) - cAdvisor (8080) - Redis Exporter (9121) - PostgreSQL Exporter (9187) - Traefik Metrics (porta 8082) - Docker Metrics (9323) - Minio Metrics (9290) - Rails Exporter (9394) - JMX Exporter (9404) ### Grafana (no swarm) - Grafana vai subir no swarm para ser acessado via traefik e https. ## Dashboards Necessários (pode usar templates prontos exemplos abaixo) ### Host Metrics - CPU: uso por core, load average - Memória: uso, swap, cached - Disco: uso, IOPS, latência - Rede: throughput, erros - Top processos por cpu/ram ### container metrics default - cpu/ram por container - status (up/down) - restarts - network i/o ### redis - conexões ativas - memória utilizada - operações por segundo - hit rate do cache ### postgresql - conexões ativas/máximas - transações por segundo - query time - table/index size - cache hit ratio ### traefik - requests por segundo - latência média - códigos de erro - backends status ### n8n - workflow executions - error rate - queue size - worker status ### chatwoot - worker status ### nfs - disk usage - iops - latência de operações - network throughput ### pgvector embedding generations/s search latency index size cache hits ### minio objects count bucket size bandwidth usage request latency ## alertas necessários ### críticos - host cpu > 85% - host ram > 90% - disco > 85% - container down - postgresql/redis down ### warning - host cpu > 75% - host ram > 80% - disco > 75% - alto tempo de resposta - nfs latency > 100ms ## observações importantes - volumes dos containers e afins tem que ser persistentes no nfs informar quais vão precisar de volume para criar o diretorio - peço que quando conectar na nossa vpn acessar um meet que será disponibilizado para você e compartilhar a tela para documentação. - Informar os dominios e afins que serão necessarios o registro.

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Pequeño
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário

Prazo de Entrega: Não estabelecido

Habilidades necessárias