Ir para o conteúdo

Configuração

Copie .env.example para .env. Valores vazios usam o default do binário. Duração no formato de time.ParseDuration (15s, 1h, 168h).

Recrie os containers depois de alterar .env (docker compose up -d --force-recreate).

Hub

Variável Descrição Default Obrigatória Exemplo
ARGUS_HUB_ADDR Endereço de bind HTTP :8080 não :8080
ARGUS_STORE_DRIVER Driver do store. postgres vem pronto. Um driver de documento se registra em factory.Register e é escolhido pelo nome postgres não postgres
ARGUS_STORE_DSN String de conexão do driver. Obrigatória para postgres vazio sim postgres://argus:change-me@postgres:5432/argus?sslmode=disable
ARGUS_AGENT_TOKEN Bearer exigido na ingestão e nas rotas de consulta. Vazio desliga a checagem. O proxy do painel envia o mesmo valor vazio não change-me
ARGUS_RETENTION_LOGS Idade máxima de log_entries 168h não 168h
ARGUS_RETENTION_METRICS Idade máxima de metric_points 720h não 720h
ARGUS_RETENTION_EVENTS Idade máxima de events 720h não 720h
ARGUS_PURGE_INTERVAL Período do job de purge 1h não 1h
ARGUS_PURGE_TIMEOUT Timeout de uma execução de purge 5s não 5s
ARGUS_INGEST_CONCURRENCY Requests de ingest processados ao mesmo tempo (todas as rotas autenticadas por Bearer, exceto register/heartbeat) 8 não 8
ARGUS_INGEST_WAIT Espera máxima por vaga de ingest; depois responde 503 com Retry-After: 5 2s não 2s
ARGUS_MAX_BODY_BYTES Tamanho máximo do corpo de um request de ingest 8388608 não 8388608

Agents em outros hosts: o argus-web escuta também na porta 8081, que só repassa ao hub os POST de ingest e /health. Publique essa porta no reverse proxy (não a 80, nem o hub direto) e use ARGUS_AGENT_TOKEN no hub e no painel. Cada agent precisa de ARGUS_AGENT_ID e ARGUS_HOST_ID próprios.

O hub abre um driver para todas as tabelas. Postgres é o driver relacional. Outro backend, inclusive um banco de documentos, implementa store.Store e se registra com o próprio nome; ARGUS_STORE_DRIVER escolhe qual. Não há banco embutido nem migração de um arquivo anterior.

O purge também remove log_patterns (retenção de logs) e topology_edges (retenção de métricas) pelo last_seen.

Duração inválida cai no default. ARGUS_STORE_DSN vazio faz o hub encerrar na subida.

Agent

Variável Descrição Default Obrigatória Exemplo
ARGUS_HUB_URL URL base do hub, sem barra final http://127.0.0.1:8080 não http://argus-hub:8080
ARGUS_AGENT_TOKEN Mesmo valor do hub, quando o hub exige Bearer vazio não change-me
ARGUS_AGENT_ID Identificador do processo do agent hostname não agent-1
ARGUS_HOST_ID Identificador do host observado hostname não docker-host
ARGUS_COLLECT_INTERVAL Intervalo de coleta de métricas Docker 15s não 15s

O agent também lê variáveis que o .env.example ainda não lista:

Variável Descrição Default Obrigatória Exemplo
ARGUS_LOG_INTERVAL Intervalo de coleta de logs 30s não 30s
ARGUS_FLEET_INTERVAL Intervalo do snapshot de fleet 60s não 60s
ARGUS_NAME_PREFIX Só containers cujo nome começa com o prefixo. Vazio coleta todos vazio não stack-
DOCKER_HOST Socket Unix do Docker. Só unix:// unix:///var/run/docker.sock não unix:///var/run/docker.sock
ARGUS_BUFFER_DIR Diretório dos lotes guardados quando o retry ao hub falha. Sobrevive a um restart do processo /var/lib/argus/buffer não /var/lib/argus/buffer
ARGUS_BUFFER_MAX_BYTES Tamanho máximo desse diretório. O lote mais antigo sai quando um novo não cabe 67108864 não 67108864

Identificador de host

ARGUS_AGENT_ID e ARGUS_HOST_ID são rótulos escolhidos por quem opera o agent. Não vêm de inventário, provedor ou nome de máquina da instalação.

Variável Papel
ARGUS_AGENT_ID Identifica o processo. Vai em agent_id no registro e no heartbeat
ARGUS_HOST_ID Identifica o host (ou o ambiente Docker) que o agent observa. Entra no label host e no entity_uid dos eventos (docker:<host_id>:<container>)

Com a variável vazia, o binário usa o hostname do sistema. Se o hostname não puder ser lido, o fallback é unknown.

Use um par estável entre reinícios (agent-1, docker-host) para métricas, logs e eventos continuarem no mesmo host. O valor de exemplo do .env.example é esse rótulo genérico, não um host específico.

Web (dev)

O painel em produção fala com o hub pelo proxy do container. Estas variáveis valem para npm run dev:

Variável Descrição Default Obrigatória Exemplo
VITE_API_BASE Prefixo da API no browser. Vazio usa o mesmo origin (proxy do Vite) vazio não ``
VITE_HUB_PROXY Upstream do proxy de desenvolvimento (/api e /health) http://127.0.0.1:8080 não http://127.0.0.1:8080

Nenhuma das duas está no .env.example.

Docker Compose

O compose na raiz publica:

  • Hub: 8080:8080
  • Painel: 3000:80