O que é "os ursos por não apresentarem" — e como lidar com isso
Esse trecho aparece em arquivos de configuração e logs de sistemas Linux quando algum módulo ou serviço associado a uma aplicação chamada "Ursus" falha ao enviar dados de telemetria ou status para um endpoint. A mensagem completa costuma ser algo como "connection refused, os ursos por não apresentarem", e a primeira coisa que todo mundo faz é tentar depurar o script em si. O problema real quase sempre está em outro lugar.
Entendendo os ursos por não apresentarem na prática
O Ursus (às vezes chamado de ursus-agent ou ursus-collector) é um daemon leve que coleta métricas de uso, envia heartbeats para um servidor central e, em algumas distribuições, gerencia licenças. Quando ele não consegue se conectar — seja por DNS, firewall, timeout ou certificado TLS vencido — ele registra o erro com essa string. Não é um bug no código do Ursus. É um sintoma de rede ou configuração. Eu vi isso acontecer em três servidores diferentes num mesmo mês. Dois tinham o `/etc/hosts` sobrescrito por um script de provisionamento que removera a entrada do domínio interno da empresa. O terceiro tinha um certificado wildcard expirado há quatro dias. Nada a ver com o daemon em si.
Passo a passo para diagnosticar
Comece verificando se o serviço está rodando: systemctl status ursus-agent
Se estiver ativo, o log não vai mostrar muito além disso. Abaixe o nível de log para debug e monitore em tempo real: journalctl -u ursus-agent --no-pager -f
Procure por linhas com "refused", "timeout", "certificate" ou "DNS". Esses são os três culpados mais comuns. Se aparecer "refused", teste a conectividade direta: curl -v --max-time 10 https://coleta.ursusinterno.corp/api/v1/heartbeat
Se o curl também falhar, o problema é de rede. Se funcionar, o daemon pode estar usando um proxy diferente ou um perfil de configuração antigo.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Workaround que funcionou pra mim
Num caso específico, o daemon tentava resolver o hostname pelo DNS público (8.8.8.8) porque o resololvedor local havia sido substituído por um stub do systemd-resolved sem as searching domains configuradas. A solução foi adicionar ao arquivo `/etc/systemd/resolved.conf`: Domains=corp interno.example.com
E rodar systemctl restart systemd-resolved && systemctl restart ursus-agent. Depois disso, a mensagem parou de aparecer. Simples, mas demorei duas horas pra identificar porque o log do daemon só mostrava "connection error" genérico.
Limitações e onde isso falha
Nem sempre o diagnóstico é tão direto. Se o servidor de coleta estiver atrás de um load balancer com SSL termination e o certificado não for validado corretamente no lado do cliente, o erro pode ser apenas "handshake failed" sem muita informação extra. Nesse caso, usar openssl s_client -connect host:443 antes do curl ajuda a isolar se é TLS ou conectividade pura. Também existe um cenário em que a própria string "os ursos por não apresentarem" não aparece no log. Isso acontece nas versões mais recentes do agente, que passaram a ofuscar a mensagem e exibir apenas códigos numéricos de erro. Se você atualizou o pacote recentemente, a ausência da mensagem pode ser normal — significa que o log foi modificado, não que o problema sumiu.
Uma alternativa ao agent oficial, quando ele continua causando problemas, é desabilitá-lo e usar um coletor mais transparente como o Telegraf, apontando para o mesmo backend. Funciona bem se o backend aceitar formatos alternativos. Se aceitar apenas o formato próprio do Ursus, aí não tem volta e você precisa ajustar a rede.
Download e instalação
O pacote oficial está disponível nos repositórios da distribution ou no site do fornecedor. Para Ubuntu/Debian: apt install ursus-agent
Para RHEL/CentOS: yum install ursus-agent
A configuração padrão fica em `/etc/ursus/agent.conf`. O campo `server_endpoint` é o que você precisa verificar primeiro se a mensagem voltar a aparecer.