Eulabs Tecnologia Transformando ideias em soluções
Argus

Downloads do Argus Agent

Baixe, instale e configure o agente Linux do Argus. Ele coleta métricas, inventário, checks, serviços e evidências diretamente no host e envia essas informações ao servidor central.

Linux amd64 Linux arm64 systemd spool offline seguro por padrão

Instalação rápida

Use o comando abaixo no host que será monitorado. Troque o token pelo token do projeto/site gerado no Admin do Argus.

curl -fsSL "https://argus-homolog.eulabs.net.br/install-argus-agent.sh?v=$(date +%s)" | sudo bash -s -- \
  --project "Default" \
  --site "Local" \
  --environment "production" \
  --group "linux" \
  --install-base-url "https://argus-homolog.eulabs.net.br" \
  --server-url "https://argus-api-homolog.eulabs.net.br" \
  --token "change-me"
Dica: use o parâmetro ?v=$(date +%s) para evitar cache de instalador antigo.

Como o agente funciona

Coleta local

O agente coleta informações de CPU, memória, discos, filesystems, uptime, processos, serviços systemd, Docker, Docker Swarm e outras tecnologias detectadas no host.

Envio de evidências

Cada check envia contexto técnico ao servidor, incluindo hostname, endereço IP, ambiente, recurso monitorado, valor medido e estado.

Resiliência a falhas

Quando o servidor fica temporariamente indisponível, o agente mantém os dados em um spool local e tenta reenviá-los posteriormente.

Configuração principal

Arquivos instalados no host:

/usr/local/bin/argus-agent
/etc/argus-agent/config.yml
/etc/argus-agent/argus-agent.env
/etc/systemd/system/argus-agent.service
/var/lib/argus-agent/spool

Variáveis importantes

ARGUS_AGENT_TOKEN, ARGUS_SERVER_URL, ARGUS_PROJECT, ARGUS_AGENT_SITE, ARGUS_AGENT_GROUP.

Comandos úteis

systemctl status argus-agent, journalctl -u argus-agent -f, sudo bash /tmp/install-argus-agent.sh uninstall.

Alterar IP de teste do gateway

O card Rede e Conectividade do Host Detail usa o coletor network_probe. Para testar um IP fixo em vez do gateway detectado automaticamente, edite /etc/argus-agent/config.yml e configure:

collectors:
  network_probe:
    enabled: true
    target_mode: manual
    target_ip: 38.50.36.126
    target_name: gateway-argus
    ping_enabled: true
    mtr_enabled: false
    traceroute_enabled: false

Depois reinicie e valide:

sudo systemctl restart argus-agent
sudo grep -A10 "network_probe:" /etc/argus-agent/config.yml
ping -c 5 -W 1 38.50.36.126
sudo journalctl -u argus-agent -f
Se argus-agent status retornar missing_agent_token no shell, execute com o ambiente do systemd: sudo env $(sudo cat /etc/argus-agent/argus-agent.env | xargs) argus-agent status.

Coletores opcionais

O agente é instalado com uma configuração segura por padrão. Coletores adicionais podem permanecer no modo auto ou ser habilitados somente nos hosts onde forem necessários.

collectors:
  docker:
    enabled: auto
  docker_swarm:
    enabled: auto
  nginx:
    enabled: auto
    status_url: http://127.0.0.1/nginx_status
  mysql:
    enabled: auto
    require_credentials: true
    dsn_env: ARGUS_MYSQL_DSN
  postgresql:
    enabled: auto
    require_credentials: true
    dsn_env: ARGUS_POSTGRES_DSN
  proxmox_ve:
    enabled: auto
    mode: local_readonly
Coletores que exigem credenciais devem utilizar variáveis de ambiente. Nunca armazene senhas diretamente no arquivo YAML.

Rotinas e autonomia controlada

O Argus foi desenvolvido para detectar, explicar, notificar e agir com segurança. O agente não executa comandos remotos arbitrários. As rotinas automáticas devem utilizar uma lista explícita de ações permitidas, cooldown, revalidação do estado e registros completos de auditoria.

remediation:
  enabled: true
  default_mode: notify_only
  allow_arbitrary_commands: false
  allowed_actions:
    - docker_disk_cleanup_dry_run
    - docker_disk_cleanup_controlled
    - docker_swarm_save_node
    - journald_vacuum_dry_run
    - journald_vacuum
Em produção, mantenha ações destrutivas no modo aprovado ou notify-only até que políticas, recursos protegidos, cooldowns e registros de auditoria tenham sido devidamente validados.

Testar limpeza controlada de Docker

Para a limpeza executar sozinha, o servidor e o agent precisam permitir a ação. No servidor, use esta base no .env:

REMEDIATION_ENABLED=true
REMEDIATION_DEFAULT_MODE=safe_auto
DOCKER_DISK_CLEANUP_ENABLED=true
DOCKER_DISK_CLEANUP_MODE=safe_auto
DOCKER_DISK_CLEANUP_ALLOW_VOLUME_PRUNE=false

No agent, o bloco fica fora de collectors::

remediation:
  enabled: true
  default_mode: safe_auto
  mode: safe_auto
  allow_arbitrary_commands: false
  allowed_actions:
    - docker_disk_cleanup_dry_run
    - docker_disk_cleanup_controlled

  docker_disk_cleanup:
    enabled: true
    mode: safe_auto
    partition: /
    threshold_percent: 90
    critical_threshold_percent: 95
    action_delay_seconds: 30
    cooldown_seconds: 86400
    revalidate_after_seconds: 10
    prune_images: true
    prune_build_cache: true
    prune_containers: true
    prune_volumes: false
    allow_volume_prune: false
    truncate_container_logs: true
    container_log_max_size_mb: 100
    truncate_only_if_disk_above_threshold: true

Para forçar um teste, reduza temporariamente os thresholds no host de teste:

collectors:
  filesystem:
    warning_percent: 50
    critical_percent: 60

remediation:
  docker_disk_cleanup:
    threshold_percent: 50
    critical_threshold_percent: 60
    cooldown_seconds: 300

Reinicie, acompanhe e valide:

sudo systemctl restart argus-agent
sudo systemctl status argus-agent
sudo journalctl -u argus-agent -f
df -h /
docker system df
cooldown_seconds fica em remediation.docker_disk_cleanup.cooldown_seconds. Use 300 para teste e volte para 86400 em produção. A configuração segura não remove volumes: prune_volumes: false e allow_volume_prune: false.

Descoberta de serviços

O mecanismo de descoberta analisa o host e informa ao servidor quais serviços e tecnologias foram encontrados. A descoberta opera em modo somente leitura: não instala pacotes, não inicia ou reinicia serviços e não modifica configurações do sistema.

discovery:
  enabled: true
  mode: safe
  local_only: true
  network_scan_enabled: false
  auto_enable_collectors: true
  auto_enable_requires_credentials: false

Sobre o projeto

O Argus nasceu a partir de desafios reais enfrentados por equipes de NOC, SRE e infraestrutura. Muitas ferramentas de monitoramento conseguem identificar sintomas, mas poucas entregam contexto suficiente para que a equipe compreenda o impacto, encontre a causa provável e tome uma decisão rápida e segura.

A proposta do Argus é centralizar observabilidade, monitoramento, segurança e resposta operacional em uma única plataforma, reduzindo o tempo gasto alternando entre diferentes ferramentas durante um incidente.

O conceito é baseado em três componentes principais:

Agentes distribuídos

Funcionam como os olhos do Argus dentro dos servidores, aplicações, containers, clusters e serviços.

Servidor central

Recebe, correlaciona e analisa métricas, checks, eventos, logs e informações de segurança.

Dashboard operacional

Funciona como um cockpit para equipes de NOC, SRE, DevOps e suporte.

Mais do que informar que algo está com problema, o Argus busca responder:

O que aconteceu? Onde aconteceu? Qual recurso foi afetado? Quando começou? Qual é a severidade real? Quais evidências estão relacionadas? Existe procedimento seguro? Quem precisa ser notificado?

O Argus foi projetado com foco em automação segura. A plataforma prioriza descoberta, coleta, correlação, diagnóstico e orientação operacional, evitando ações automáticas destrutivas ou alterações de infraestrutura sem políticas, validações e controles explícitos.

Objetivo

Centralizar o monitoramento de servidores Linux e Windows, serviços systemd, containers, Docker Swarm, Kubernetes, discos, processos, aplicações, alertas, logs, runbooks e notificações.

Visão

Agentes distribuídos como olhos, inteligência central para correlação e um dashboard como cockpit operacional.

Resultado esperado

Uma visão unificada da operação, permitindo investigar incidentes com mais rapidez, contexto e segurança.