Agente

Instalação e atualização

O instalador baixa o binário certo para a arquitetura (amd64 ou arm64), confere o SHA256SUMS, cria o serviço argus-agent no systemd e, quando há um token de site, aplica o perfil daquele site.

Requisitos

Comando gerado no Admin (recomendado)

Em Admin → Projetos/Sites → Add Node, escolha empresa, site, ambiente e grupo, marque o que o site monitora e quais rotinas rodam sozinhas, e clique em Gerar API e comando. O comando já vem com o token do site e aplica o perfil do site no host.

curl -fsSL "https://argus-homolog.eulabs.net.br/install-argus-agent.sh?v=$(date +%s)" | sudo bash -s -- \
  --project "Empresa" \
  --site "Matriz" \
  --environment "production" \
  --group "linux" \
  --install-base-url "https://argus-homolog.eulabs.net.br" \
  --server-url "https://argus-api-homolog.eulabs.net.br" \
  --token "token-do-site"
O ?v=$(date +%s) evita pegar um instalador antigo de cache. Se o checksum do binário não bater, a instalação para com erro e nada é trocado.

Instalação interativa

Para instalar host a host, respondendo perguntas:

curl -fsSL "https://argus-homolog.eulabs.net.br/install-argus-agent.sh?v=$(date +%s)" -o /tmp/install-argus-agent.sh
sudo bash /tmp/install-argus-agent.sh --interactive

O instalador pergunta, nesta ordem:

  1. servidor (API), URL de download e token (ou mantém o token já configurado no host);
  2. projeto, ambiente e site;
  3. tipo de host: Linux, Docker, Swarm, Kubernetes ou Proxmox, com o detectado como padrão;
  4. nome do cluster (Swarm/K8s, o mesmo em todos os nós) e o papel RKE2;
  5. serviços monitorados: detecção automática, lista ou nenhum, com DSN opcional de MySQL/PostgreSQL;
  6. se a limpeza automática de disco fica ligada (só com Docker).

Antes de alterar qualquer coisa, ele mostra um resumo do que será feito e pede confirmação. Se já existe um config.yml, pergunta se deve substituí-lo (com backup); se a resposta for não, as respostas vão para config.yml.new e não são aplicadas. Sem token e com terminal disponível, o modo interativo começa sozinho.

Automação (Ansible, cloud-init, scripts)

Todas as escolhas do modo interativo existem como opções ou variáveis de ambiente:

OpçãoVariávelValores
--tokenARGUS_AGENT_TOKENtoken do site (ou o token legado)
--server-urlARGUS_SERVER_URLURL da API do Argus
--install-base-urlARGUS_INSTALL_BASE_URLde onde baixar binários e checksums
--project, --siteARGUS_PROJECT, ARGUS_AGENT_SITEempresa e site do host
--environmentARGUS_AGENT_ENVIRONMENTproduction (padrão), staging…
--groupARGUS_AGENT_GROUPgrupo do agente (padrão linux)
--platformARGUS_PLATFORMauto, linux, docker, swarm, k8s, proxmox
--cluster-nameARGUS_CLUSTER_NAMEnome do cluster Swarm/K8s, igual em todos os nós
--k8s-roleARGUS_K8S_ROLEserver, agent, other (k3s, kubeadm, gerenciado)
--servicesARGUS_SERVICESauto, none ou lista (nginx,redis,…)
--auto-cleanupARGUS_AUTO_CLEANUPtrue libera a limpeza controlada de Docker; false só alerta
--with-apmARGUS_WITH_APMinstala também o Argus APM (argus-apm.service, não iniciado). Nada é coletado até a política do site ligar o APM; exige token de site
--apm-propagationARGUS_APM_PROPAGATIONconcede ao argus-apm as capabilities extras da propagação de contexto eBPF (CAP_NET_ADMIN, CAP_SYS_ADMIN); desligado por padrão
--allow-apm-activationARGUS_APM_ACTIVATIONpermite que o agente escreva o drop-in systemd do nível 2 de planos aprovados (APM); nunca reinicia o serviço; desligado por padrão
--force-configARGUS_FORCE_CONFIGrecria o config.yml (o anterior vira backup)
--interactiveARGUS_INTERACTIVEmodo de perguntas

Sem essas opções, a configuração gerada usa detecção automática para tudo e não libera nenhuma rotina. --auto-cleanup true libera no host a limpeza controlada de Docker (imagens sem uso, build cache, containers parados e logs de container acima de 100 MB, quando / passa de 90 %; nunca volumes) e a limpeza do journald (só com aprovação).

Perfil do site

Quando o host é instalado com um token de site, o instalador busca o perfil desse site e aplica no /etc/argus-agent/config.yml com argus-agent config merge:

Para ver o que mudaria, sem gravar:

sudo argus-agent config merge --config /etc/argus-agent/config.yml --overlay /tmp/overlay.json --dry-run

O monitoramento só muda quando o comando é rodado de novo no host. Já as rotinas marcadas como automáticas valem na hora para o site inteiro, sem reinstalar, sempre presas às travas de segurança. Token inválido ou revogado aborta a instalação.

O token do site é a credencial permanente dos agentes. Revogar o token em Admin → Agents / Arquivos desconecta todos os hosts instalados com ele (a tela mostra quantos antes de confirmar).

Arquivos instalados

/usr/local/bin/argus-agent                 # binário
/etc/argus-agent/config.yml                # configuração
/etc/argus-agent/argus-agent.env           # token e URL do servidor (modo 0600)
/etc/systemd/system/argus-agent.service    # unidade systemd
/var/lib/argus-agent/spool                 # fila offline

Comandos do dia a dia:

sudo systemctl status argus-agent
sudo journalctl -u argus-agent -f
sudo systemctl restart argus-agent

Atualizar o agente

Rode de novo o mesmo comando de instalação (o gerado no Admin). O instalador troca o binário pela versão publicada (veja VERSION), mantém o config.yml atual, aplica o que for novo no perfil do site e reinicia o serviço. Sem o comando em mãos, use o modo interativo e mantenha o token já configurado:

curl -fsSL "https://argus-homolog.eulabs.net.br/install-argus-agent.sh?v=$(date +%s)" -o /tmp/install-argus-agent.sh
sudo bash /tmp/install-argus-agent.sh --interactive
sudo systemctl status argus-agent

Para recriar o config.yml do zero num host já instalado (o perfil do site é aplicado por cima):

sudo ARGUS_AGENT_TOKEN="token-do-site" \
  ARGUS_SERVER_URL="https://argus-api-homolog.eulabs.net.br" \
  ARGUS_FORCE_CONFIG=true \
  bash /tmp/install-argus-agent.sh
Recursos novos do agente (por exemplo, a coleta de evidências para a Análise por IA e os eventos do cluster Kubernetes) só funcionam depois que o host roda a versão que os trouxe. Atualize os hosts envolvidos.

Mover o host de projeto ou site

Remover o agente

sudo bash /tmp/install-argus-agent.sh uninstall
# também apaga a fila offline em /var/lib/argus-agent:
sudo ARGUS_PURGE_SPOOL=true bash /tmp/install-argus-agent.sh uninstall

Remove o serviço, o binário, o arquivo de ambiente e o config.yml.