Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Instalar y configurar la integración de New Relic eBPF
Avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta función se proporciona actualmente como parte de una vista previa de conformidad con nuestras políticas de prelanzamiento. No está disponible para clientes sujetos a las regulaciones HIPAA o FedRAMP.
Puede instalar el agente eBPF de New Relic en su clúster de Kubernetes para monitorear todo el estado del sistema. El agente eBPF proporciona una visibilidad profunda del rendimiento de la aplicación sin requerir cambios de código ni desplegar un agente específico del idioma.
Vaya al panel de navegación izquierdo > + Integration & Agents > eBPF Agent.
En la pantalla Seleccionar una cuenta, seleccione la cuenta en la que desea instalar el agente eBPF y haga clic en Continue.
En la página Seleccionar un método de instalación, seleccione Kubernetes y haga clic en Continue.
En la pantalla Ingrese su clave de usuario, seleccione una de las siguientes opciones y luego haga clic en Continue:
Emplear una clave existente: si ya tiene una clave de usuario, proporcione la clave de usuario. Para obtener más información, consulte Claves de usuario.
Crear una nueva clave: si no tiene una clave de usuario, haga clic en Create a new key para crear una.
En la pantalla Configurar la integración de Kubernetes:
Ingrese el nombre de la implementación de Kubernetes.
(Opcional) Ingrese el namespace para la integración. El namespace predeterminado es newrelic.
Haga clic en Continue.
En la pantalla Instalar la integración de Kubernetes:
Copie y pegue el comando que se muestra para instalar el agente eBPF en su clúster de Kubernetes usando Helm.
(Opcional) Para descargar el archivo de configuración values.yaml, haga clic en Download. Para obtener más información sobre el parámetro de configuración, consulte el parámetro de configuración de K8.
(Opcional) Actualice el archivo values.yaml según sea necesario y almacénelo.
(Opcional) Para aplicar los cambios de configuración, ejecute el siguiente comando:
Para verificar la instalación, ejecute el siguiente comando:
bash
$
kubectl get pods -n newrelic
Acceda a los datos eBPF en New Relic
Una vez instalado el agente eBPF, comienza a recopilar datos automáticamente de su host Linux. Puede acceder a estos datos en UI OpenTelemetry de New Relic. Para obtener más información sobre UI OpenTelemetry New Relic, consulte UI OpenTelemetry APM .
En el banner de búsqueda, establezca el criterio de búsqueda como instrumentation.name = nr_ebpf:
Configurar el panel de control eBPF
El dashboard de red eBPF proporciona una visibilidad profunda del estado de la red de su sistema al rastrear métricas críticas de DNS y TCP directamente desde el kernel. Puede diagnosticar problemas de conectividad analizando las tasas de éxito y fracaso de las resoluciones DNS y las conexiones TCP. Identifique con precisión el rendimiento del cuello de botella monitoreando la latencia clave, como los protocolos de enlace TCP, la entrega de paquetes y la duración de conexiones de corta duración. El dashboard también lo ayuda a realizar un seguimiento del rendimiento de los datos al visualizar los bytes enviados, recibidos y los paquetes descartados.
En los Dashboards, haga clic en + Create a dashboard.
En la ventana Create a dashboard, haga clic en Browse pre-built dashboards.
En la barra de búsqueda, escriba eBPF y seleccione eBPF.
(Opcional) En la ventana que se muestra, haga clic en Edit para cambiar la cuenta.
Haga clic en Setup eBPF Agent para configurar la fuente de datos o haga clic en Skip this step si el agente eBPF ya está configurado.
Haga clic en View dashboard para ver los datos recopilados por el agente eBPF.
Sugerencia
El agente eBPF genera automáticamente nombres de entidades de forma diferente según el entorno:
En los hosts o Docker, los nombres son una combinación del nombre del proceso, su directorio o ID de contenedor y el puerto de escucha. Por ejemplo, ruby:/home/ubuntu/app:[5678] o java:f4aead533895:[8080].
En Kubernetes, los nombres se derivan del nombre del servicio, por ejemplo, mysql-database-service.
/* Una vez que su aplicación esté instrumentada y configurada para exportar datos a New Relic, debería poder encontrar sus datos en la UI New Relic : * Encuentre su entidad en <DNT>**Todas las entidades > Servicios - OpenTelemetry</DNT>. El nombre de la entidad se establece en el valor del `service.name` de la aplicación. atributo de recurso. Para obtener más información sobre cómo la entidad de servicio New Relic se deriva del atributo de recurso OpenTelemetry, consulte [Servicios](/docs/OpenTelemetry/mejores prácticas/OpenTelemetry-mejores prácticas-resources/#services). * Emplee [NRQL](/docs/NRQL/get-started/introduction-NRQL (New Relic Query Language)/) para consultar directamente [Traza](https:\/\/one.newrelic.com\/launcher\/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gU3BhbiBTRUxFQ1QgY291bnQoKikgd2hlcmU gbmV3cmVsaWMuc291cmNlPSclb3RscCUnIFRJTUVTRVJJRVMifV0sImluaXRpYWxDaGFydFNldHRpbmdzIjp7ImNoYXJ0VHlwZSI6IkNIQVJUX0xJTkUiLCJsaW1pdCI6NzU0MiwibGlua2VkRW50aXR5R3VpZCI6bnVsbCwibGlua2VkRGFzaGJvYXJkSWQiOm51bGwsInlTY2FsZSI6eyJzdGF0aWMiOmZhbHNlLCJkb21haW4iOltudWxsLG51bGxdfSwieVplcm8iOnRydWV9fQo=), [Métrica](https:\/\/one.newrelic.com\/launcher\/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gTWV0cmljIFNFTEVDVCBjb3VudCgqKSB3aGVyZS BuZXdyZWxpYy5zb3VyY2UgTElLRSAnJW90bHAlJyBUSU1FU0VSSUVTIn1dLCJpbml0aWFsQ2hhcnRTZXR0aW5ncyI6eyJjaGFydFR5cGUiOiJDSEFSVF9MSU5FIiwibGltaXQiOjc1NDIsImxpbmtlZEVudGl0eUd1aWQiOm51bGwsImxpbmtlZERhc2hib2FyZElkIjpudWxsLCJ5U2NhbGUiOnsic3RhdGljIjpmYWxzZSwiZG9tYWluIjpbbnVsbCxudWxsXX0sInlaZXJvIjp0cnVlfX0K), y [logs](https:\/\/one.newrelic.com\/launcher\/nr1-core.explorer?overlay=eyJuZXJkbGV0SWQiOiJkYXRhLWV4cGxvcmF0aW9uLnF1ZXJ5LWJ1aWxkZXIiLCJpbml0aWFsQWN0aXZlSW50ZXJmYWNlIjoibnJxbEVkaXRvciIsImluaXRpYWxOcnFsVmFsdWUiOiIiLCJpbml0aWFsUXVlcmllcyI6W3sibnJxbCI6IkZST00gTG9nIFNFTEVDVCBjb3VudCgqKSB3aGVyZSB Español: uZXdyZWxpYy5zb3VyY2U9JyVvdGxwJScgVElNRVNFUklFUyJ9XSwiaW5pdGlhbENoYXJ0U2V0dGluZ3MiOnsiY2hhcnRUeXBlIjoiQ0hBUlRfTElORSIsImxpbWl0Ijo3NTQyLCJsaW5rZWRFbnRpdHlHdWlkIjpudWxsLCJsaW5rZWREYXNoYm9hcmRJZCI6bnVsbCwieVNjYWxlIjp7InN0YXRpYyI6ZmFsc2UsImRvbWFpbiI6W251bGwsbnVsbF19LCJ5WmVybyI6dHJ1ZX19Cg==). * Consulte [OpenTelemetry APM UI](/docs/OpenTelemetry/get-started/APM-monitoreo/OpenTelemetry-APM-UI) para obtener más información. Si no encuentras tu entidad y no ves tus datos con NRQL, consulta [OTLP resolución de problemas](/docs/OpenTelemetry/mejores prácticas/OpenTelemetry-otlp-resolución de problemas). Puede encontrar los datos recopilados por el agente eBPF en la UI de Openelementry New Relic. */
Parámetro de configuración
El archivo values.yaml contiene las siguientes secciones de configuración:
Estos parámetros controlan la identidad principal y el destino de los datos del agente eBPF.
Parámetro
Descripción
Tipo de datos
Ejemplo
cluster
Especifica el nombre de su clúster de Kubernetes. Este campo es obligatorio.
String
"production-cluster"
licenseKey
Especifica su clave de licencia de New Relic. Obligatorio si no se emplea
customSecretName
.
String
"8356...FFFFNRAL"
nrStaging
Si es
true
, envía datos al entorno de prueba de New Relic.
Boolean
true
customSecretName
Especifica el nombre de un secreto de Kubernetes que contiene su clave de licencia. Emplee esto para evitar proporcionar la clave directamente.
String
"newrelic-license-secret"
customSecretLicenseKey
Especifica la clave dentro del secreto donde se almacena el valor de la clave de licencia. Usado con
customSecretName
.
String
"license"
region
Especifica la región de su cuenta New Relic (
US
o
EU
). Obligatorio cuando se emplea
customSecretName
.
String
"US"
proxy
Especifica la URL de un servidor proxy, incluido el puerto, para enrutar todos los datos salientes del agente.
String
"http://user:pass@host:port"
logLevel
Define el nivel de verbosidad del logging para el agente. Opciones válidas:
OFF
,
FATAL
,
ERROR
,
WARNING
,
INFO
,
DEBUG
.
String
"INFO"
logFilePath
Especifica una ruta de archivo dentro del contenedor del agente para la salida de log. Si la ruta no es válida, los logs se dirigen a stdout.
String
"/var/log/nr-ebpf-agent.log"
downloadedPackagedHeadersPath
Establece la ruta absoluta del directorio completo donde se descargan manualmente los encabezados de Linux necesarios y se colocan para que los emplee el agente eBPF. Esto es útil en entornos restringidos donde el agente no puede descargar los encabezados de Linux necesarios. El agente identifica los encabezados requeridos según la versión del kernel. La ruta absoluta en el caso de K8s también debe anteponer con /host cuando sea necesario. Usar sólo luego de la recomendación de soporte de NR.
String
"/path/to/downloaded/headers/dir"
distroKernelHeadersPath
Establece la ruta absoluta del directorio completo donde están presentes los encabezados de Linux para que los emplee el agente eBPF. Esto es útil cuando no se pudieron instalar los encabezados de Linux necesarios o no se pudo determinar la ruta. La ruta absoluta en el caso de K8s también debe anteponer con /host cuando sea necesario. Usar sólo luego de la recomendación de soporte de NR.
String
"/host/usr/src/linux-headers-6.8.0-pl"
Estos parámetros controlan qué datos se recopilan y se envían a New Relic, lo que lo ayuda a gestionar la ingesta de datos.
Parámetro
Descripción
Tipo de datos
Ejemplo
dropDataIpServiceNames
Si
true
, evita que el agente informe la telemetría de los servicios identificados únicamente por una dirección IP.
Boolean
true
dropDataNewRelic
Si es
true
, se descarta toda la telemetría originada en el namespace
newrelic
para evitar la autosupervisión.
Boolean
true
dropAPMEnabledPods
Si
true
, se elimina la telemetría de los pods que ya están monitoreados por un agente New Relic APM para evitar la duplicación de datos.
Boolean
true
dropDataForNamespaces
Especifica una lista de espacios de nombres Kubernetes desde los cuales se eliminará toda la telemetría.
String
["kube-system", "monitoring"]
dropDataServiceNameRegex
Define una expresión regular de estilo Go. Se eliminarán los datos de los servicios cuyos nombres coincidan con este patrón.
String
"kube-dns\|otel-collector"
allowServiceNameRegex
Define una expresión regular de estilo Go que actúa como una lista de permitidos para
dropDataServiceNameRegex
. Los servicios coincidentes se mantienen, incluso si también coinciden con el patrón de caída.
String
"allowed-otel-collector"
dropDataForEntity
Especifica una lista de nombres de aplicaciones (de la variable de entorno
NEW_RELIC_APP_NAME
) que se excluirán del monitoreo.
String
["my-test-app", "temp-service"]
tableStoreDataLimitMB
Define el límite de memoria en Megabytes (MiB) para el almacén de datos interno del agente. Este es el control principal para el uso de RAM.
String
"500"
Esta sección le permite habilitar el monitoreo para protocolos de red específicos y configurar cómo se recopilan los datos de traza (spans). Puede habilitar o deshabilitar el monitoreo para protocolos como HTTP, MySQL y otros, y establecer parámetros para la recopilación de intervalos en función de la latencia o la tasa de errores. Se admiten los siguientes protocolos:
HTTP
MySQL
PostgreSQL
MongoDB
Apache Cassandra
Redis
kafka
DNS
Parámetro
Descripción
Tipo de datos
Ejemplo
protocols.<protocol-name>.enabled
Si es
true
, habilita el monitoreo para el protocolo especificado, por ejemplo,
http
,
mysql
y cualquier otro.
Boolean
true
protocols.<protocol-name>.spans.enabled
Si
true
, exporta los intervalos de traza para el protocolo habilitado.
Boolean
true
protocols.<protocol-name>.spans.samplingLatency
Define el umbral de ejemplificación basada en latencia para exportar intervalos. Opciones válidas:
p1
,
p10
,
p50
,
p90
,
p99
.
String
"p90"
protocols.http.spans.samplingErrorRate
Sólo para HTTP. Las exportaciones abarcan cualquier ruta donde la tasa de errores supere el porcentaje especificado (1-100).
String
"5"
Estas secciones controlan la configuración de implementación de los componentes principales de la solución. Un asterisco (*) denota el nombre del componente.
Parámetro
Descripción
Tipo de datos
Ejemplo
*.image.repository
Especifica el repositorio de imágenes del contenedor para el componente.
String
"docker.io/newrelic/newrelic-ebpf-agent"
*.image.pullPolicy
Define la política de extracción para la imagen del contenedor.
String
"IfNotPresent"
*.image.tag
Especifica la versión de etiqueta de la imagen contenedora a desplegar.
String
"agent-0.2.4"
*.resources.limits.memory
Define la memoria máxima que puede emplear el contenedor.
String
"2Gi"
*.resources.limits.cpu
Define la CPU máxima que puede emplear el contenedor.
String
"1"
*.resources.requests.memory
Define la memoria mínima aplicar para el contenedor al inicio.
String
"250Mi"
*.resources.requests.cpu
Define la CPU mínima aplicar para el contenedor al inicio.
String
"100m"
*.tolerations
Define tolerancias de pod para permitir la programación en nodos con contaminaciones específicas.
Objects
[{"key": "special", "operator": "Exists"}]
*.affinity
Define reglas de afinidad y antiafinidad pod para la programación.
Object
{}
*.podAnnotations
Especifica anotaciones personalizadas para agregar al pod del componente.
Object
{"iam.amazonaws.com/role": "my-role"}
Estos parámetros se aplican a todos los pods desplegados por el gráfico de Helm, a menos que sean reemplazados por una configuración específica del componente.
Parámetro
Descripción
Tipo de datos
Ejemplo
podLabels
Especifica etiquetas adicionales que se aplicarán a todos los desplegables de pods mediante el gráfico.
Object
{"team": "observability"}
priorityClassName
Especifica
PriorityClass
para todos los pods.
String
"high-priority"
nodeSelector
Restringe el pod para que solo se ejecute en nodos con etiquetas coincidentes.
Object
{"disktype": "ssd"}
Esta sección configura la comunicación segura entre el agente eBPF y los componentes del cliente.
Parámetro
Descripción
Tipo de datos
Ejemplo
tls.enabled
Si
true
, habilita TLS para la comunicación interna entre componentes.
Boolean
true
tls.autoGenerateCert.enabled
Si es
true
, indica a Helm que genere automáticamente un certificado autofirmado para TLS.
Boolean
true
tls.autoGenerateCert.recreate
Si es
true
, se genera un nuevo certificado cada
helm upgrade
.
Boolean
false
tls.autoGenerateCert.certPeriodDays
Define el periodo de validez en días para el certificado generado automáticamente.
Integer
730
tls.certFile
Especifica la ruta a su archivo de certificado codificado PEM personalizado.
autoGenerateCert.enabled
debe ser
false
.
String
"my-certs/tls.crt"
tls.keyFile
Especifica la ruta a su archivo de clave privada codificado PEM personalizado.
String
"my-certs/tls.key"
tls.caFile
Especifica la ruta a su archivo de certificado de autoridad de certificación (CA) personalizado.