Kmind
Documentacao

Infraestrutura em VM

Kmind Agent para VM Linux

Monitore servidores Linux com metricas do host, servicos systemd e logs de aplicacao. O agente envia dados apenas para o Gateway Kmind e continua sem interferir no funcionamento da VM quando a telemetria falha.

O que o agente coleta

  • CPU, memoria, swap, carga, discos e sistemas de arquivos da VM.
  • CPU, memoria, processos e I/O de servicos gerenciados pelo systemd.
  • Linhas novas de arquivos de log configurados, com limites de leitura e redacao de dados sensiveis.
O Agent para VM envia metricas e logs. Para traces de uma aplicacao Node.js, use tambem o APM Node; para navegadores, use o APM Web.

Antes de instalar

  • VM Linux 64 bits com systemd, cgroups e acesso HTTPS ao Gateway Kmind.
  • Distribuicao Debian/Ubuntu para pacote .deb, ou Amazon Linux, RHEL, Rocky, AlmaLinux, CentOS Stream e similares para .rpm.
  • Uma integracao Agent Linux criada para o cluster e servico corretos, com a chave privada kma_....
Alpine, ambientes com OpenRC e sistemas sem systemd nao sao suportados pelos pacotes atuais. Nunca use uma chave kmw_ ou kms_ no agente: ele aceita somente a chave privada kma_....

1. Crie a integracao

  1. Selecione o cluster do tipo VM / Agent no Console Kmind.
  2. Cadastre a integracao Agent Linux associada ao servico que representa esta VM.
  3. Copie a chave kma_... exibida no final do cadastro. Ela nao pode ser visualizada novamente.
Cada VM deve usar sua propria integracao e chave. Para revogar o acesso de uma VM, desative ou rotacione somente a chave daquela integracao.

2. Instale o pacote

Baixe a versao e arquitetura corretas na pagina de Releases do projeto Kmind Agent Linux. Verifique o arquivo checksums.txt antes de instalar.

Ubuntu e Debian

sha256sum -c checksums.txt --ignore-missing
sudo dpkg -i ./kmind-agent_<versao>_linux_amd64.deb

Amazon Linux, RHEL e derivados

sha256sum -c checksums.txt --ignore-missing
sudo rpm -Uvh ./kmind-agent_<versao>_linux_amd64.rpm

Troque amd64 por arm64 em VMs ARM. O pacote cria o usuario de sistema sem login kmind-agent, a configuracao e a unidade systemd.

3. Configure a VM

Edite o arquivo instalado e substitua somente a chave e os nomes que identificam a sua VM e aplicacao.

sudoedit /etc/kmind-agent/config.yaml
sudo chown kmind-agent:kmind-agent /etc/kmind-agent/config.yaml
sudo chmod 600 /etc/kmind-agent/config.yaml
kmind:
  # Chave privada exibida uma unica vez ao criar a integracao no Console.
  apiKey: "kma_COLE_A_SUA_CHAVE_AQUI"
  serviceName: "billing-vm"
  applicationName: "erp"
  endpoint: "https://ingest.kmind.com.br"
  statusEndpoint: "https://ingest.kmind.com.br/v1/agent/status"

collection:
  interval: 90s
  hostMetrics:
    enabled: true
  services:
    enabled: true
    mode: systemd
    include: []
    exclude: ["user-*.service"]
    maxServices: 200
  logs:
    enabled: true
    paths: ["/var/log/minha-aplicacao/**"]
    exclude: ["/var/log/minha-aplicacao/**/*.gz"]
    startAt: end
    maxLineSize: 262144
    maxFiles: 128
    maxBytesPerSecond: 262144
    maxFileBytesPerSecond: 65536
    redactSensitiveData: true
    redactPatterns: []

limits:
  memoryBufferBytes: 2097152
  maxMemoryBufferBytes: 5242880
  maxBatchBytes: 524288
  requestTimeout: 5s

serviceName identifica o servico operacional no Kmind. applicationName identifica a aplicacao executada naquela VM. Use nomes estaveis, como checkout-vm-01 e checkout-api.

Diferente de hostMetrics, a coleta de collection.logs nao vem habilitada por padrao. Se essa secao estiver ausente ou incompleta no arquivo, o agente inicia normalmente e continua enviando metricas do host sem nenhum erro visivel, mas nunca le nenhum arquivo de log. Mantenha collection.logs.enabled: true e a lista de paths sempre presentes, mesmo ao copiar apenas parte deste exemplo.

4. Inicie e valide

sudo systemctl enable --now kmind-agent
sudo systemctl status kmind-agent --no-pager
sudo journalctl -u kmind-agent -n 100 --no-pager
  1. Confirme que o servico esta como active (running).
  2. Aguarde um intervalo de coleta, normalmente 90 segundos.
  3. No Console Kmind, abra Infraestrutura e Logs Explorer, filtrando pelo cluster e servico configurados.
Taxas de CPU e I/O precisam de duas coletas para comparar contadores. E normal que elas aparecam somente apos o segundo intervalo.

Logs com acesso minimo

O agente nao entra em grupos amplos como adm. De acesso apenas ao diretorio e arquivo que devem ser monitorados.

# Exemplo para /var/log/minha-aplicacao/application.log
sudo setfacl -m u:kmind-agent:rx /var/log/minha-aplicacao
sudo setfacl -m u:kmind-agent:r /var/log/minha-aplicacao/application.log

# Garanta que arquivos criados pela rotacao tambem possam ser lidos.
sudo setfacl -d -m u:kmind-agent:rx /var/log/minha-aplicacao

Atualize tambem a regra do logrotate quando ele substituir arquivo e permissoes. O agente nao segue links simbolicos, ignora arquivos comprimidos e inicia no fim de arquivos ja existentes para nao reenviar historico.

Privacidade, limites e configuracao avancada

A redacao e obrigatoria quando logs estao ativos. Senhas, tokens, Authorization, cookies, JWTs, chaves privadas, CPF, email e cartao sao mascarados antes de entrarem na fila de envio.

collection:
  logs:
    enabled: true
    paths: ["/var/log/minha-aplicacao/**"]
    maxFiles: 64
    maxBytesPerSecond: 131072
    maxFileBytesPerSecond: 32768
    redactSensitiveData: true
    redactPatterns:
      - "customer_id=[^ ]+"
      - "document=[0-9.-]+"

Prefira reduzir o conjunto de arquivos e aplicar regras de redacao especificas da aplicacao. Nao use caminhos amplos quando somente um diretorio e necessario.

Desempenho e seguranca

O agente usa fila em memoria limitada, timeout curto e circuit breaker para telemetria. Quando o Gateway estiver indisponivel ou a chave for desativada, ele pausa a coleta e descarta telemetria antes de consumir memoria ou bloquear a aplicacao monitorada.

Ele nao abre portas, nao executa comandos remotos e nao se conecta diretamente ao Loki ou VictoriaMetrics. A unidade systemd usa usuario dedicado, nenhuma capability Linux e sandbox de sistema de arquivos.

Troubleshooting

Servico nao inicia

Execute sudo journalctl -u kmind-agent -n 100 --no-pager. Confirme que o arquivo existe, esta em /etc/kmind-agent/config.yaml, possui permissao 600 e contem uma chave kma_... ativa.

Metricas nao aparecem

Confirme a conectividade HTTPS com o Gateway, o nome do cluster, o servico e a chave cadastrada. Aguarde duas coletas para metricas que dependem de taxa.

Logs aparecem vazios

Primeiro confirme que collection.logs.enabled: true esta mesmo no arquivo aplicado na VM: essa secao nao tem valor padrao, entao um arquivo sem ela roda sem erro e nunca coleta log nenhum, mesmo com metricas chegando normalmente. Depois verifique se o usuario kmind-agent tem permissao de leitura no arquivo. Somente linhas novas sao enviadas; gere uma nova linha de teste apos iniciar o agente.

Um servico systemd nao aparece

Confirme que ele esta ativo, termina em .service e nao foi excluido. Use include para limitar a coleta, por exemplo ["billing-*.service"].

Atualizar e remover

# Atualizacao Debian ou Ubuntu
sudo dpkg -i ./kmind-agent_<nova-versao>_linux_amd64.deb

# Atualizacao RPM
sudo rpm -Uvh ./kmind-agent_<nova-versao>_linux_amd64.rpm

# Remocao: a configuracao e a identidade da instalacao sao preservadas.
sudo apt remove kmind-agent
# ou
sudo rpm -e kmind-agent

Para remover permanentemente uma VM, primeiro revogue a chave no Console. Depois pare e remova o pacote. Apague /etc/kmind-agent e /var/lib/kmind-agent apenas se a instalacao nao sera mais usada.

Precisa instrumentar uma API dentro desta VM? Combine o Agent para a visao de infraestrutura com o APM Node para traces e logs de aplicacao.