Encaminhe seu log usando o agente de infraestrutura
Encaminhar seus logs para o New Relic disponibiliza todos os seus dados de log em um único local, proporcionando uma visibilidade mais profunda dos dados de desempenho do seu aplicativo e da sua plataforma. Com seus logs em um só lugar, você pode coletar, processar, explorar, consultar e alertar sobre erros ou anomalias encontradas em seus dados log .
Na interface do seu host, seu log é colocado no contexto do evento para o período de tempo selecionado. Você pode detalhar dados detalhados para qualquer um dos atributos destacados.
A maneira como você encaminha seus logs depende de como você instalou o agente de infraestrutura, pois o agente de infraestrutura ativa o recurso de encaminhamento de logs. É possível instalar o agente de infraestrutura por meio de:
Instalação guiada (recomendada para a maioria dos usuários)
Instalação manual
Tarball do Linux
Importante
A versão Linux do agente de infraestrutura, especificamente a versão 1.42.0, passou do uso do pacote td-agente-bit para o pacote fluent-bit. Essa mudança foi necessária porque o fluente-bit não é mais distribuído no tipo td-agente-bit após a atualização da versão principal 2.x.
Para garantir operações tranquilas e fornecer a opção de reverter para td-agente-bit caso haja algum problema com o pacote fluent-bit, o agente de infraestrutura agora instala ambos os pacotes (td-agente-bit e fluent-bit). Por padrão, o agente está configurado para usar bit fluente.
Agente de infraestrutura versão 1.11.4 ou superior
Bit Fluente. O agente de infraestrutura já instala a versão mais recente para você. Para atualizar ou fazer downgrade para uma versão específica, consulte os procedimentos de instalação do Fluent Bit .
Biblioteca OpenSSL 1.1.0 ou mais alto
Suporte integrado para arquitetura ARM64 em sistemas Linux (por exemplo, arquitetura AWS Graviton) adicionado no agente de infraestrutura 1.20.6.
Amazon Linux 2 e 2023
CentOS versão 8 e 9 Stream (Rocky Linux e AlmaLinux também são suportados)
RedHat versão 8 e 9
Debian versão 11 (Bullseye) e 12 (Bookworm).
SUSE Linux Enterprise Server (SLES) versões 12 e 15 (ARM64 não suportado).
Versões do Ubuntu 16.04.x, 18.04.x, 20.04.x, 22.04.x, 24.04.x (versões LTS).
Windows Server 2016, 2019 e 2022 e seus service packs.
Windows 10, Windows 11.
Encaminhar log automaticamente com instalação guiada
Ao utilizar nossa instalação guiada para instalar o agente de infraestrutura, o recurso de encaminhamento de logé configurado automaticamente durante o processo de instalação.
Para iniciar sua instalação, escolha seu método de implantação:
Para encaminhar log de um contêiner docker, use esta imagem docker como a imagem base a ser usada com a integração de log Kubernetes , ou você pode criar seu próprio contêiner com configuração personalizada para diferentes ambientes.
Habilitar encaminhamento de logs no agente instalado manualmente
Os arquivos de configuração direcionam seu sistema para encaminhar as fontes de log que você deseja que apareçam no New Relic. Você pode adicionar quantos arquivos de configuração desejar. Nosso agente de infraestrutura usa arquivos .yml para configurar a geração de registros. Caso você instale o agente de infraestrutura via integração & agente na interface, o arquivo logging.yml é criado automaticamente.
Para adicionar um novo arquivo de configuração para o recurso de encaminhamento de logs:
Navegue até a pasta de configuração do direcionador de logs:
Crie um arquivo de configuração logging.yml e adicione o parâmetro necessário. O diretório logging.d possui vários arquivos .yml.example que você pode usar como referência ou ponto de partida. Para exemplos do Windows, consulte nosso repositório Github.
# Log forwarder configuration file example
# Source: file
# Available customization parameters: attributes, max_line_kb, pattern
logs:
# Basic tailing of a single file
-name: basic-file
file: /var/log/logFile.log
# File with spaces in its path. No need to use quotes.
-name: file-with-spaces-in-path
file: /var/log/folder with spaces/logFile.log
# Specify a list of custom attributes, as key-value pairs, to be included
# in each log record
-name: file-with-attributes
file: /var/log/logFile.log
attributes:
application: tomcat
department: sales
maintainer: example@mailprovider.com
# Use wildcards to refer to multiple files having a common extension or
# prefix. Newly generated files will be automatically detected every 60
# seconds.
#
# WARNING: avoid using wildcards that include the file extension, since
# it'll cause logs to be forwarded repeatedly if log rotation is enabled.
-name: log-files-in-folder
file: /var/log/logF*.log
# Lines longer than 128 KB will be automatically skipped. Use 'max_line_kb'
# to increase this limit.
-name: log-file-with-long-lines
file: /var/log/logFile.log
max_line_kb:256
# Use 'pattern' to filter records using a regular expression
-name: only-records-with-warn-and-error
file: /var/log/logFile.log
pattern: WARN|ERROR
O agente processa automaticamente novos arquivos de configuração sem precisar reiniciar o serviço de monitoramento de infraestrutura. A única exceção a isso é ao definir uma configuração personalizada do Fluent Bit.
Etapa 2. Definir parâmetro de encaminhamento de logs
É necessário configurar um name e um parâmetro de origem de log no arquivo de configuração de encaminhamento de logs .yml . Para começar, defina um name do log ou logs que você deseja encaminhar para o New Relic.
O que você usa para a origem do log depende do local de origem dos seus logs. As opções disponíveis para a origem de log incluem:
Caminho para o arquivo de log ou arquivos. O agente rastreia alterações no arquivo de log de forma semelhante ao shell tail -f .
Example:
logs:
-name: example-log
file: /var/log/example.log # Path to a single log file
-name: example-log-two
file: /var/log/example-two.log # Path to another single log file
O parâmetro file pode apontar para um arquivo de log específico ou para vários arquivos usando caracteres curinga aplicados a nomes e extensões; por exemplo, /logs/*.log. Você pode usar curingas no lugar de diretórios em um caminho de arquivo, que podem ser usados para rastrear arquivos localizados em diretórios diferentes.
Example:
logs:
-name: docker-logs
file: /var/lib/docker/containers/*/*.log# Path to multiple folders and files
Importante
O uso de curingas pode aumentar significativamente o número de descritores de arquivo e o inotify observa que o processo Fluent Bit mantém aberto, o que pode interferir na coleta de log se o limite de descritores de arquivo do host for atingido. Seguir um grande número de arquivos pode exigir que você aumente o número máximo de descritores de arquivo e inotify watchers permitidos pelo sistema operacional. Consulte Erros ao seguir uma grande quantidade de arquivo de log para obter mais detalhes sobre como aumentá-los.
Use o parâmetro systemd para encaminhar mensagens do log coletadas pelo daemon journald em ambientes Linux. Este tipo de entrada requer que o agente seja executado no modo raiz.
Example:
logs:
-name: systemd-example
systemd: cupsd
Fonte de dados syslog.
Parameters:
uri: Soquete Syslog. O formato varia dependendo do protocolo:
Soquetes de rede TCP/UDP: [tcp/udp]://LISTEN_ADDRESS:PORT
parser: Analisador de syslog. O padrão é rfc3164. Use rfc5424 se suas mensagens incluírem frações de segundos. Nota: rfc3164 atualmente não funciona no SuSE.
unix_permissions: O padrão é 0644 para soquetes de domínio. Isso limita as entradas aos processos executados como root. Você pode usar 0666 para escutar processos não raiz (por sua conta e risco).
Ao executar o agente no modo privilegiado, as portas e os soquetes devem estar disponíveis ou pertencer a nri-agent e ter permissões de arquivo 0666 para que outros processos possam gravar log nos soquetes.
logs:
# TCP network socket
-name: syslog-tcp-test
syslog:
uri: tcp://0.0.0.0:5140# Use the tcp://LISTEN_ADDRESS:PORT format
parser: rfc5424 # Default syslog parser is rfc3164
# UDP network socket
-name: syslog-udp-test
syslog:
uri: udp://0.0.0.0:6140# Use the udp://LISTEN_ADDRESS:PORT format
max_line_kb:35
# Unix TCP domain socket
-name: syslog-unix-tcp-test
syslog:
uri: unix_tcp:///var/unix-tcp-socket-test
unix_permissions:0666# Default is 0644. Change at your own risk
# Unix UDP domain socket
-name: syslog-unix-udp-test
syslog:
uri: unix_udp:///var/unix-udp-socket-test
parser: rfc5424
Log recuperado por meio de conexões TCP.
Parameters:
uri: Soquete TCP/IP para escutar dados recebidos. O formato do URI é tcp://LISTEN_ADDRESS:PORT.
format: Formato dos dados. Pode ser json ou none.
separator: Se format: none for usado, você poderá definir uma string separadora para dividir registros (padrão: \n).
logs:
-name: tcp-simple-test
tcp:
uri: tcp://0.0.0.0:1234# Use the tcp://LISTEN_ADDRESS:PORT format
format: none # Raw text - this is default for 'tcp'
separator: \t # String for separating raw text entries
max_line_kb:32
-name: tcp-json-test
tcp:
uri: tcp://0.0.0.0:2345# Use the tcp://LISTEN_ADDRESS:PORT format
format: json
Importante
Disponível desde o agente de infraestrutura v.1.24.3 Compatível apenas com Windows Server 2019 e posterior. Use winlog para versões anteriores.
Colete eventos de canais log do Windows usando a nova API de log de eventos do Windows usando o plug-in winevtlog Fluent Bit.
Parameters:
channel: O nome do log do canal será coletado.
collect-eventids: Lista de IDs de eventos do Windows a serem coletados e encaminhados para o New Relic. Os intervalos de ID de evento são suportados.
exclude-eventids: lista de IDs de eventos do Windows a serem excluídos da coleção. Os intervalos de ID de evento são suportados.
use-ansi: Use a codificação ANSI em winlog mensagens. Usamos a codificação ANSI por padrão no Windows Server 2016 e versões anteriores, e UTF-8 nas versões mais recentes. Você pode substituir esse comportamento por este parâmetro de configuração se esses padrões não forem adequados ao seu caso de uso. Isso resolve o problema do log de código de caracteres ANSI ser strings vazias. Não é uma função converter o log de código de caracteres multibyte em código de caracteres ANSI para UTF-8.
Todos os eventos são coletados do canal especificado por padrão. Configure as seções collect-eventids e exclude-eventids para evitar o envio de registros indesejados para sua conta New Relic.
Adicione IDs ou intervalos de eventos a collect-eventids ou exclude-eventids para encaminhar ou descartar eventos específicos. exclude-eventids terá precedência sobre collect-eventids se o mesmo ID de evento estiver presente em ambas as seções.
Example:
logs:
# Example winevtlog security log ingestion with eventId filters.
-name: windows-security
winevtlog:
channel: Security
collect-eventids:
-4624
-4265
- 4700-4800
exclude-eventids:
-4735
attributes:
logtype: windows_security
# Example entries for the application and system channels
-name: windows-application
winevtlog:
channel: Application
attributes:
logtype: windows_application
# Example entries for the application use-ansi
-name: windows-application
winevtlog:
channel: Application
attributes:
logtype: windows_application
use-ansi:true
-name: windows-system
winevtlog:
channel: System
attributes:
logtype: windows_system
# Example/Optional entry for Windows Defender Logs
Winlog só pode coletar log de eventos clássico. A tentativa de capturar outras pessoas coletará silenciosamente o log do aplicativo.
Colete eventos dos canais de log do Windows.
Parameters:
channel: O nome do log do canal será coletado. Não funciona para canais personalizados.
collect-eventids: Lista de IDs de eventos do Windows a serem coletados e encaminhados para o New Relic. Os intervalos de ID de evento são suportados.
exclude-eventids: lista de IDs de eventos do Windows a serem excluídos da coleção. Os intervalos de ID de evento são suportados.
use-ansi: Use a codificação ANSI em winlog mensagens. Usamos a codificação ANSI por padrão no Windows Server 2016 e versões anteriores, e UTF-8 nas versões mais recentes. Você pode substituir esse comportamento por este parâmetro de configuração se esses padrões não forem adequados ao seu caso de uso. Isso resolve o problema do log de código de caracteres ANSI ser strings vazias. Não é uma função converter o log de código de caracteres multibyte em código de caracteres ANSI para UTF-8.
Todos os eventos são coletados do canal especificado por padrão. Configure as seções collect-eventids e exclude-eventids para evitar o envio de registros indesejados para sua conta New Relic.
Adicione IDs ou intervalos de eventos a collect-eventids ou exclude-eventids para encaminhar ou descartar eventos específicos. exclude-eventids terá precedência sobre collect-eventids se o mesmo ID de evento estiver presente em ambas as seções.
Example:
logs:
# Example winlog security log ingestion with eventId filters.
-name: windows-security
winlog:
channel: Security
collect-eventids:
-4624
-4265
- 4700-4800
exclude-eventids:
-4735
attributes:
logtype: windows_security
# Example entries for the application and system channels
-name: windows-application
winlog:
channel: Application
attributes:
logtype: windows_application
-name: windows-system
winlog:
channel: System
attributes:
logtype: windows_system
# Example entries for the application use-ansi
-name: windows-application
winlog:
channel: Application
attributes:
logtype: windows_application
use-ansi:true
# Example/Optional entry for Windows Defender Logs
Embora esses parâmetros de configuração não sejam obrigatórios, ainda recomendamos que você aplique essas configurações ao seu arquivo logging.yml para aproveitar ao máximo o encaminhamento de logs.
Lista de atributos personalizados especificados como pares de valores principais que podem ser usados para enviar dados adicionais com o log que você pode consultar. O parâmetro de configuração attributes pode ser usado com qualquer origem de log.
Importante
O parâmetro de configuração attributes não adiciona atributo personalizado ao log encaminhado por meio de configuração externa do Fluent Bit (por exemplo, usando o parâmetro de configuração fluentbit ). Neste cenário, você deve consultar a opção record_modifier na documentação do Fluent Bit.
Um uso comum do parâmetro de configuração attributes é especificar o atributo logtype . Este atributo permite aproveitar uma das regras de análise integradas suportadas pelos recursos do New Relic.
Example:
logs:
-name: example-file-attributes
file: /var/log/example.log
attributes:
logtype: nginx
region: example-us-02
team: A-team
-name: example-tcp-attributes
tcp:
uri: tcp://0.0.0.0:2345
format: json
attributes:
logtype: nginx
region: example-us-02
team: B-team
O agente de infraestrutura insere automaticamente o log atributo para sua conveniência. Alguns deles são inseridos para qualquer registro de log, enquanto outros dependem do parâmetro de configuração que você utilizou ao configurar o direcionamento de logs.
Nome do atributo
Descrição
entity.guids
Sempre inserido.
O agente de infraestrutura insere o GUID da entidade atribuído pela New Relic para identificar o host onde está sendo executado. Está disponível no campo entity.guids .
Nota: Caso o log capturado pertença a um instrumento de aplicação utilizando APM, o campo entity.guids contém tanto o GUID da entidade da infraestrutura, quanto o GUID do APM, separados por um delimitador de barra vertical ( | ).
Caminho absoluto do arquivo que está sendo monitorado.
hostname
Sempre inserido.
O nome do host da máquina/VM/contêiner que executa o agente de infraestrutura.
plugin.type
Sempre inserido.
Indica o utilitário usado para capturar o log. Neste caso, é o próprio agente de infraestrutura, portanto esse atributo sempre possui o valor nri-agent.
Expressão regular para filtragem de registros. Compatível apenas com as fontes tail, systemd, syslog e tcp (somente com formato none).
Este campo funciona de forma semelhante a grep -E em sistemas Unix. Por exemplo, para um determinado arquivo que está sendo capturado, você pode filtrar registros contendo WARN ou ERROR usando:
-name: only-records-with-warn-and-error
file: /var/log/logFile.log
pattern: WARN|ERROR
Nenhuma filtragem é aplicada por padrão.
Tamanho máximo de entradas/linhas de log em KB. Se as entradas de log excederem o limite, elas serão ignoradas. O padrão é 128, o valor mínimo permitido é 33.
Arquivos externos de configuração e analisador do Fluent Bit . Se definidos, eles serão mesclados com os arquivos de configuração e analisador existentes gerados pelo agente de infraestrutura.
O agente de infraestrutura processa os arquivos de configuração localizados no diretório logging.d e gerará um arquivo de configuração do Fluent Bit em tempo de execução que contém as seções [INPUT], [FILTER] e [OUTPUT] apropriadas. Opcionalmente, ele também declarará um @INCLUDE caso você tenha fornecido um arquivo de configuração externo do Fluent Bit por meio da opção fluentbit .
O arquivo de tempo de execução não define uma seção[SERVICE], deixando todos os valores de configuração padrão do Fluent Bit. Você ainda pode substituir as configurações padrão do Fluent Bit definindo sua própria seção [SERVICE] em seu arquivo de configuração externo do Fluent Bit e incluí-la por meio da opção fluentbit .
Parameters:
config_file: caminho para um arquivo de configuração existente do Fluent Bit. Observe que qualquer fonte sobreposta resulta em mensagens duplicadas em nossa interface de log.
parsers_file: caminho para um arquivo de analisadores Fluent Bit existente. Os seguintes nomes de analisadores são reservados: rfc3164, rfc3164-local e rfc5424.
Importante
O agente de infraestrutura permite o encaminhamento de logs para os casos de uso mais comuns, definindo uma configuração simples de encaminhamento de log nos arquivos YAML no diretório logging.d/ , conforme descrito neste documento. Esses arquivos são traduzidos internamente em arquivos de configuração do Fluent Bit com o formato correto e padrões de configuração sensatos. A New Relic fornece suporte oficial para essas opções de configuração, pois garantimos que os arquivos de configuração gerados estão corretos e operacionais.
No entanto, para os casos de uso não cobertos por nossas opções de configuração suportadas, oferecemos a possibilidade de usar um arquivo de configuração e analisadores do Fluent Bit gerado externamente usando as opções fluentbit, config_file e parsers_file .
Nota: Não podemos garantir o correto funcionamento do log encaminhado neste caso, visto que as configurações fornecidas são completamente arbitrárias e não estão sendo geradas/validadas pelo agente. Portanto, a New Relic não fornece suporte oficial para a configuração externa especificada por meio dessas opções.
file: /var/log/test.log # Path to a single file or pattern
attributes:# You can use custom attributes to enrich your data
logtype: nginx
team: The A Team
pattern: Error # Regular expression to filter log entries
# Example of 'systemd' source (Linux only)
-name: systemd-example
systemd: cupsd
# Examples of 'syslog' source, one per protocol
# TCP network socket
-name: syslog-tcp-test
syslog:
uri: tcp://0.0.0.0:5140# Use the tcp://LISTEN_ADDRESS:PORT format
parser: rfc5424 # Default syslog parser is rfc3164
# UDP network socket
-name: syslog-udp-test
syslog:
uri: udp://0.0.0.0:6140# Use the udp://LISTEN_ADDRESS:PORT format
max_line_kb:35
# Paths for Unix sockets are defined by combining protocol and path:
# unix_udp:// + /path/socket - for example, unix_udp:///tmp/socket
# Unix TCP domain socket
-name: syslog-unix-tcp-test
syslog:
uri: unix_tcp:///var/unix-tcp-socket-test
unix_permissions:0666# Default is 0644. Change at your own risk
# Unix UDP domain socket
-name: syslog-unix-udp-test
syslog:
uri: unix_udp:///var/unix-udp-socket-test
parser: rfc5424
# Examples of 'tcp' source for formats 'none' and 'json'
-name: tcp-simple-test
tcp:
uri: tcp://0.0.0.0:1234# Use the tcp://LISTEN_ADDRESS:PORT format
format: none # Raw text - this is default for 'tcp'
separator: \t # String for separating raw text entries
attributes:# You can add custom attributes to any source of logs
tcpFormat: none
someOtherAttribute: associatedValue
max_line_kb:32
-name: tcp-json-test
tcp:
uri: tcp://0.0.0.0:2345# Use the tcp://LISTEN_ADDRESS:PORT format
format: json
attributes:
tcpFormat: json
yetAnotherAttribute:12345
# Example of Fluent Bit configuration import
-name: fluentbit-import
fluentbit:
config_file: /path/to/fluentbit.config
parsers_file: /path/to/fluentbit/parsers.conf
Passo 4. Visualize seus dados log
Se tudo estiver configurado corretamente e seus dados estiverem sendo coletados, você deverá ver o log e os dados de telemetria relacionados nestes locais:
Na interface da infraestrutura, na tabela de hosts, clique no botão ícone para um host específico e clique em View logs.
Nossas ferramentas para executar a consulta NRQL. Por exemplo, você pode executar uma consulta como esta:
SELECT*FROM Log
Habilite o registro para sua integração no host
Com o agente de infraestrutura instalado, você pode ativar a análise automática de log e encaminhamento para nossa integração no host mais popular em uma única etapa. Para ativar esse recurso, renomeie o arquivo on-host-log.yml.example para on-host-log.yml. Uma vez feito isso, o log da sua integração será automaticamente analisado e enviado para a New Relic.
Para ativar o recurso de encaminhamento de logs de integração no host:
Copie ou renomeie o arquivo elasticsearch-log.yml.example para elasticsearch-log.yml para ativar a análise de log automática no formato JSON do Elasticsearch e o encaminhamento para o New Relic. Não há necessidade de reiniciar o agente.
Copie ou renomeie o arquivo mysql-log.yml.example para mysql-log.yml para ativar a análise automática de log de erros do MySQL e o encaminhamento para o New Relic. Não há necessidade de reiniciar o agente.
Copie ou renomeie o arquivo nginx-log.yml.example para nginx-log.yml para ativar o acesso automático ao NGINX e a análise de log de erros e o encaminhamento para o New Relic. Não há necessidade de reiniciar o agente.
Copie ou renomeie o arquivo rabbitmq-log.yml.example para rabbitmq-log.yml para ativar a análise automática de log de erros do Rabbitmq e o encaminhamento para o New Relic. Não há necessidade de reiniciar o agente.
Copie ou renomeie o arquivo redis-log.yml.example para redis-log.yml para ativar a análise automática de log de erros do Redis e o encaminhamento para o New Relic. Não há necessidade de reiniciar o agente.
Habilitar encaminhamento de logs no agente instalado usando tarball do Linux
Nosso processo personalizado de instalação do Linux para monitoramento de infraestrutura permite personalizar todos os aspectos do processo de instalação e colocar arquivos e pastas em sua máquina. Se você escolher o processo de instalação assistida ou manual do tarball, siga estas etapas para implementar o recurso de direcionar de logs:
O recurso de encaminhamento de logs requer que o agente tenha permissão para ler as fontes de dados. Ao executar o agente de infraestrutura em modos privilegiados ou não privilegiados, certifique-se de que o arquivo de log que você deseja encaminhar (e qualquer diretório intermediário em seu caminho) possa ser lido pelo usuário que executa nri-agent.
Example: Check file access under Linux
Vamos verificar se o arquivo /var/log/restrictedLogs/logFile.log pode ser monitorado pelo usuário nri-agent . No Linux, você pode fazer uma verificação rápida com o comando namei :
Este comando falhou porque o arquivo não está visível para o usuário nri-agent . Ao inspecionar a saída anterior, podemos detectar que o diretório restrictedLogs não possui o sinalizador de execução para others.
O arquivo agora está visível para o usuário nri-agent . Você deve garantir que o arquivo também possa ser lido pelo usuário nri-agent . Para verificar isso, use:
bash
$
sudo-u nri-agent head /var/log/restrictedLogs/logFile.log
head: cannot open '/var/log/restrictedLogs/logFile.log' for reading: Permission denied
Neste exemplo, o arquivo não tem direitos de leitura para o grupo others (usuário diferente de vagrant e grupo de usuários vagrant ). Você poderia corrigir isso concedendo permissões de leitura para others, mas o aplicativo poderia alterar essas permissões ao reiniciar.
Para evitar isso, uma abordagem melhor é adicionar o usuário nri-agent ao grupo de usuários vagrant .
O recurso de encaminhamento de logs requer que o agente tenha permissão para ler as fontes de dados. Ao executar o agente de infraestrutura em modos privilegiados ou não privilegiados:
Se você estiver usando arquivos de Unix domain socket, certifique-se de que o usuário nri-agent possa acessar esses arquivos (consulte a seção anterior) e que ele tenha permissões de leitura e gravação (666) para que outros usuários além de nri-agent pode escrever para eles.
Se você estiver usando soquetes IP, certifique-se de que a porta que você está usando não seja reservada pelo sistema (como a porta 80, por exemplo).
Conforme explicado nas diretrizes de configuração do agente de infraestrutura, o parâmetro proxy deve usar HTTP ou HTTPS e estar no formato https://user:password@hostname:port. O agente pode analisar o parâmetro sem HTTP ou HTTPS, mas o encaminhador de logs não. Você verá um erro como o seguinte no log detalhado do agente:
[ERROR] building HTTP transport: parse \"hostname:port\":
first path segment in URL cannot contain colon
Para resolver esse problema, verifique seu arquivo newrelic-infra.yml e certifique-se de que o parâmetro proxy esteja de acordo com este formulário.
Se você estiver usando caBundleFile ou caBundleDir para especificar qualquer certificado, recomendamos seguir as regras abaixo para cada sistema operacional:
Linux
Para proxies HTTP você não precisa configurar nenhum certificado. O plug-in carrega os certificados do sistema e o New Relic envia o log para o endpoint de registro. No entanto, você pode especificar o certificado autoassinado do proxy (arquivo PEM) usando o parâmetro caBundleFile ou caBundleDir .
Windows
Para proxies HTTP você não precisa configurar nenhum certificado. O plug-in carrega os certificados do sistema.
Para HTTPS, você pode configurá-lo de uma das seguintes maneiras:
(Recomendado) Importe o certificado proxy para o pool do sistema. Importe o certificado autoassinado do proxy (arquivo PEM) usando a ferramenta MMC. Consulte este link e em Step 2 certifique-se de importá-lo em seu Trusted Root Certification Authorities em vez de em Intermediate Certification Authorities.
Use os parâmetros caBundleFile e caBundleDir No Windows, não podemos carregar os certificados do pool de certificados do sistema e aqueles especificados com o parâmetro caBundleFilecaBundleDir . Portanto, se você estiver usando caBundleFile ou caBundleDir, certifique-se de que os seguintes certificados sejam colocados no mesmo arquivo PEM (ao usar caBundleFile) ou no mesmo diretório (ao usar caBundleDir):
O certificado proxy (porque é um proxy HTTPS ).
O certificado de endpoint de registro em log (por exemplo. https://log-api.newrelic.com/log/v1).
O certificado do agente de infraestrutura (por exemplo. https://infra-api.newrelic.com).
Você pode configurar o agente de infraestrutura para enviar seu próprio log para o New Relic. Isso é útil para resolução de problemas com o encaminhamento de logs, o agente ou ao entrar em contato com o suporte.
Importante
O registro trace gera muitos dados muito rapidamente. Para reduzir o consumo de espaço em disco e a ingestão de dados, ao terminar de gerar o log, defina level: info (ou menos).
Para encaminhar o log do agente de infraestrutura para o New Relic:
Edite seu arquivo newrelic-infra.yml .
Habilite o encaminhamento de logs para o New Relic adicionando o seguinte trecho de configuração:
log:
level: trace # Recommended: Helps with troubleshooting
forward:true# Enables sending logs to New Relic
format: json # Recommended: Enable agent logging in JSON format
stdout:false# On Windows and systems that don't use `systemd` or where `journald` is inaccessible
Esta configuração coloca o agente em modo de resolução de problemas, mas o encaminhamento de logs (baseado em Fluent Bit) continuará em modo não detalhado.
Às vezes você pode ter problemas com o próprio direcionador de logs. Por exemplo, pode haver problemas ao acessar um canal específico ao enviar evento de log do Windows ou ao acessar um arquivo de log específico. Nessas situações, você também pode ativar o modo detalhado para o direcionamento de logs.
Importante
O registro trace gera muitos dados muito rapidamente. Para reduzir o consumo de espaço em disco e a ingestão de dados, ao terminar de gerar o log, defina level: info (ou menos).
Edite seu arquivo newrelic-infra.yml .
Habilite o log detalhado do Fluent Bit adicionando o seguinte trecho de configuração:
log:
level: trace
forward:true# Enables sending logs to New Relic
format: json # Recommended: Enable agent logging in JSON format
stdout:false# On Windows and systems that don't use `systemd` or where `journald` is inaccessible
include_filters:
traces:
- supervisor # Required to see verbose logs from Fluent Bit
O plug-in final do Fluent Bit não oferece suporte a unidades de rede.
Para versões do Linux anteriores a 2016, pode ser necessário atualizar a biblioteca OpenSSL para 1.1.0 (ou mais alto). Para verificar se você tem esse problema:
Veja se infra-agent iniciou o Fluent Bit executando:
bash
$
ps-aux|grep fluent-bit
Se não estiver em execução, vá para /var/db/newrelic-infra/newrelic-integrations/logging e execute:
bash
$
./fluent-bit -i systemd -o stdout
Se você receber o seguinte erro:
error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
Certifique-se de atualizar o OpenSSL para 1.1.0 ou mais alto.
Uma das seguintes mensagens de erro pode aparecer ao ativar o encaminhamento de logs no Windows:
The code execution cannot proceed because VCRUNTIME140.dll was not found.
OU
error="exit status 3221225781" process=log-forwarder
É comum enfrentar uma das seguintes mensagens de erro ao tentar rastrear uma grande quantidade de arquivos:
Too many open files
The user limit on the total number of inotify watches was reached or the kernel failed to allocate a needed resource
O sistema operacional define uma quantidade máxima de descritores de arquivo alocáveis (normalmente 1.024 por padrão) e uma quantidade máxima de inotify watchs alocáveis (normalmente 8.192 por padrão). Qualquer processo que tentar ultrapassar esses limites falhará, retornando um dos erros acima.
A tecnologia subjacente que usamos para encaminhar log, Fluent Bit, abre um descritor de arquivo e define uma observação inotify para cada arquivo que você configura para ser encaminhado. Além disso, no momento em que escrevo esta seção, o Fluent Bit usa um conjunto extra de 32 descritores de arquivo para sua operação normal, com outro descritor de arquivo extra quando é desligado. Portanto, to capture a large amount of files you need to ensure that both the file descriptor and inotify watch limits are slightly greater than the amount of log files you wish to tail.
As instruções a seguir resumem como aumentar esses limites se você quiser atingir 10.000 arquivos de log. Além disso, ele pressupõe que o agente de infraestrutura está instalado no modo de execuçãoroot e, portanto, deve ser executado usando o usuário root .
Verifique qual é o limite atual para a quantidade de descritores de arquivo por processo. Normalmente, este limite deve ser bastante elevado e não deve necessitar de ser modificado.
bash
$
ulimit-Hn
Adicione a seguinte linha a /etc/security/limits.conf. Especificamos um limite de 10100 aqui em vez de apenas 10000 para permitir que o Fluent Bit aloque os descritores de arquivo extras de que pode precisar para funcionar.
bash
$
root soft nofile 10100# replace root by nri-agent for non-root (privileged and unprivileged) installations
Adicione a seguinte linha a /etc/pam.d/common-session para que o limite anterior seja aplicado na reinicialização:
bash
$
session required pam_limits.so
Adicione a linha a seguir a /etc/sysctl.conf para aumentar a quantidade de observadores inotify permitidos por usuário. Especificamos um limite de 18192 aqui em vez de apenas 10000 para que o usuário root ainda tenha 8192 relógios inotify disponíveis (o valor padrão).
bash
$
fs.inotify.max_user_watches=18192
Reinicie seu sistema.
Certifique-se de que os novos limites foram aplicados executando:
bash
$
ulimit-Sn# Should return 10100
$
cat /proc/sys/fs/inotify/max_user_watches # Should return 18192
Antes da versão 1.19.0 (ou versão 1.20.3 para SLES 12.5), o agente de infraestrutura Linux vinha com um binário Fluent Bit. A partir desta versão, o Fluent Bit agora é incluído como uma dependência de pacote recommended separada.
Isso significa que você pode instalar, atualizar ou fazer downgrade do Fluent Bit separadamente do agente. Para sua conveniência, incluímos vários pacotes do Fluent Bit no mesmo repositório onde reside a infraestrutura, para que você não precise instalar nenhum repositório adicional para atualizar o Fluent Bit.
Observe que o agente instala automaticamente o Fluent Bit quando você o instala pela primeira vez, usando a versão mais recente disponível. Após a primeira instalação, você pode atualizar o Fluent Bit como faria normalmente com qualquer pacote Linux.
Você pode listar as versões disponíveis do Fluent Bit executando:
RPM:
bash
$
sudo yum check-update
$
yum list fluent-bit --showduplicates
DÉB:
bash
$
sudoapt update
$
apt-cache showpkg fluent-bit
Para atualizar para a versão mais recente do Fluent Bit, execute estes comandos:
RPM:
bash
$
# Remove command only required when downgrading to a previous version
$
# sudo yum remove fluent-bit
$
sudo yum install fluent-bit
DÉB:
bash
$
sudoaptinstall fluent-bit
Observe que o td-agente-bit não está disponível para as seguintes distribuições, portanto, reversões nelas não são possíveis:
CentOS 9 Stream (incluindo Rocky Linux e AlmaLinux)
RedHat 9
Ubuntu 22.04.x
Abra o Suse (SLES) 15.4
Amazon Linux 2023
Se desejar reverter para td-agente-bit, você pode seguir as etapas descritas abaixo:
Abra o arquivo /etc/newrelic-infra.yml usando seu editor de texto preferido.
Adicione a seguinte linha no final do arquivo: fluent_bit_exe_path: /opt/td-agent-bit/bin/td-agent-bit.
Salve as alterações.
Reinicie o agente de infraestrutura executando o comando a seguir: sudo systemctl restart newrelic-infra.
Ao concluir essas etapas, o agente de infraestrutura estará configurado para usar td-agente-bit em vez de fluente-bit.
Obtenha visibilidade mais profunda dos dados de desempenho do seu aplicativo e da sua plataforma encaminhando seu log com nossos recursos logs contextualizados .
Para desativar os recursos de encaminhamento de log , vá para o diretório logging.d e remova os arquivos com a extensão .yml que foram originalmente adicionados durante o processo de configuração .