O agente de infraestrutura da New Relic reúne seus próprios dados, bem como o log de integração e os consolida em uma única fonte. Por padrão, os log aparecem em standard-output
e são adicionados a um arquivo de log. Para desativar a saída padrão de login, consulte as opções de configuração do agente.
Configuração básica
O exemplo a seguir mostra uma configuração típica para o log do agente em sistemas Linux (alterar o caminho do arquivo ao executar o Windows ou outra plataforma):
log: level: info file: '/var/log/newrelic-infra/newrelic-infra.log' rotate: max_size_mb: 100 max_files: 5 compression_enabled: true file_pattern: YYYY-MM-DD_hh-mm-ss.log
Registrando níveis de gravidade
A infraestrutura usa um subconjunto dos níveis de severidadeSyslog padrão:
ERROR
: Condições de erro atendidasWARN
: Condições de aviso atendidasINFO
: Mensagens informativasDEBUG
: Contém mensagens em nível de depuração (útil quando há resolução de problemas)
Formatação log
Para agente de infraestrutura v1.4.9 ou superior, as mensagens do log são alinhadas com valores de contexto. Isto oferece melhor agrupamento e filtragem; por exemplo:
containerized agent found in container containerID: VALUE
Por padrão, os logs de infraestrutura são formatados como texto:
No modo de primeiro plano, a saída log é colorida, sem timestamp:
DEBUG Sending deltas divided in blocks component=PatchSender mentityKey=ohaimaci mnumberOfBlocks=1No modo de segundo plano, o log é uma saída de carimbo de data/hora, usada ao executar como um serviço ou ao descarregar o log em um arquivo:
time="2019-07-12T09:54:15+02:00" level=info msg="Agent service manager shutdown completed successfully." component=AgentService service=newrelic-infra
Alternativamente, o log pode ser formatado como um arquivo JSON:
{"context":{},"level":"info","msg":"upstart_interval_sec: 0","timestamp":"2019-07-11T18:24:03+02:00"}{"context":{},"level":"info","msg":"plugin_dir: ","timestamp":"2019-07-11T18:24:03+02:00"}
Para alterar o formato do log, consulte as definições de configuração do agente.
Rotação de log integrada
Para o agente de infraestrutura v1.28.0 ou superior, um mecanismo integrado de rotação e compactação de log está disponível no agente.
Modo detalhado inteligente
Para o agente de infraestrutura versões 1.9.0 ou superior, você pode ativar o modo detalhado inteligente para log.
O modo detalhado inteligente evita que mensagens de depuração sejam registradas até que uma mensagem de erro seja detectada. Quando um erro é detectado, as mensagens de depuração são gravadas no arquivo de log antes do erro. Observe que apenas o número mais recente de mensagens de depuração configuradas é registrado. Por exemplo, se você tiver um limite configurado de 10, quando um erro for detectado, as 10 mensagens de depuração mais recentes antes da detecção do erro serão registradas.
Para obter mais informações sobre como ativar o modo detalhado inteligente e o limite de mensagens de depuração, consulte Configurações de configuração de infraestrutura.
Integração gerenciamento de logs
Integração escreve JSON carga em STDOUT
e texto simples (JSON estruturado no futuro) log em STDERR
.
O agente de infraestrutura manipula as linhas de integração STDERR
e encaminha essa saída para o log do agente.
O agente manipula cada linha STDERR
da seguinte maneira:
- When agent runs in verbose mode: ele apenas encaminha a linha
STDERR
completa como uma entrada de log do agente DEBUG, colocando contextos de linha de integração dentro do campomsg
. - Otherwise: ele analisa a linha em relação ao formato esperado (veja abaixo) e registra apenas como nível de ERRO do agente, entradas produzidas pela integração com níveis de severidade
fatal
ouerror
. Nesse caso, os campos são extraídos e encaminhados de maneira estruturada (portanto, se a saída JSON estiver habilitada para o agente, os campos se tornarão consultáveis).
Por padrão, o agente de infraestrutura filtra quaisquer erros de integração que não impeçam a execução da integração. Você só verá todos os erros de uma integração se o nível de log estiver definido como DEBUG ou se a integração estiver listada especificamente na configuração do log. Por exemplo, nesta configuração, todos os erros provenientes de nri-mssql
serão mostrados, mesmo que o nível de log seja INFO:
log: include_filters: integration_name: - nri-mssql
Formato esperado de integração STDERR
Espera-se que uma linha seja uma lista de pares de valores principais separados por um caractere igual. As chaves podem conter qualquer caractere, enquanto os valores podem ter três formatos diferentes:
- string: <quote>qualquer caractere incluindo aspas de escape \"<quote>
- mapa: &{qualquer caractere}
- palavra: qualquer caractere, exceto espaços
Internamente o agente usou este regex para extrair os campos:
([^\s]*?)=(".*?[^\\]"|&{.*?}|[^\s]*)
Por exemplo, esta linha:
time="2015-03-26T01:27:38-04:00" level=error msg="Foo bar baz" foo=bar
Irá gerar uma linha log do agente estruturada com estes campos:
- "time": "2015-03-26T01:27:38-04:00"- "level": "error"- "msg": "Foo bar baz"- "foo": "bar"