newrelic.newrelic-infra
:warning: | New Relic ofrece una nueva solución de Ansible que simplifica la escalabilidad de tus esfuerzos de Observabilidad con New Relic. Por favor considera usar esta solución en el futuro. |
---|
Rol de Ansible para el agente de infraestructura de New Relic

Un rol de Ansible que se puede usar para instalar y/o configurar el Agente de Infraestructura de New Relic e instalar OHIs de Infraestructura de New Relic.
Instalación
Usa el siguiente comando para descargar la última versión del rol de New Relic:
ansible-galaxy install newrelic.newrelic-infra
Empezando
Para usar el rol newrelic.newrelic-infra
directamente en un playbook, simplemente
incluye el rol en tu playbook. Por ejemplo,
# myplaybook.yml
---
- hosts: webservers
roles:
- role: newrelic.newrelic-infra
vars:
nrinfragent_config:
license_key: 12345
Para requerir newrelic.newrelic-infra
como una dependencia de rol en tu propio rol,
agrega una dependencia en el meta/main.yml de tu rol. Por ejemplo,
# roles/myapp/meta/main.yml
---
dependencies:
- role: newrelic.newrelic-infra
Uso
Este rol se puede usar para las siguientes interacciones con el Agente de Infraestructura de New Relic.
- Instalar el agente a través del gestor de paquetes de SO
- Instalar el agente a través de tarball (solo Linux)
- Instalar integraciones a través del gestor de paquetes de SO
- Configurar el agente
- Configurar el servicio de inicio del agente
Por defecto, el rol instalará el agente a través del gestor de paquetes del SO, instalará integraciones a través del gestor de paquetes del SO, configurará el agente y configurará el servicio de inicio del agente. Además, las siguientes etiquetas están disponibles para realizar otras interacciones.
- nria_install
- nria_install_tarball
- nria_install_integrations
- nria_configure
- nria_setup_service
Uso Básico
El siguiente fragmento instalará el agente a través del gestor de paquetes del SO, configurará el agente con la configuración especificada y configurará el servicio de inicio del SO del agente.
---
- hosts: ap_ne_1
roles:
- name: newrelic.newrelic-infra
vars:
log_file: /opt/logs/newrelic-infra.log
verbose: 0
nrinfragent_config:
license_key: 12345
custom_attributes:
environment: dev
Instalación de Tarball (Solo Linux)
Para instalar utilizando el método de instalación con tarball,
debes establecer la variable nrinfragent_tarball_version
a un número de
versión de tarball válido.
La instalación mediante el método de instalación por tarball también ejecutará la configuración
y tareas del servicio de inicio del agente, a menos que se especifique la etiqueta nria_install_tarball
.
- hosts: ap_ne_1
roles:
- name: newrelic.newrelic-infra
vars:
nrinfragent_tarball_version: 1.18.0
nrinfragent_tarball_download_dir: /opt/newrelic/
nrinfragent_config:
log_file: /opt/logs/newrelic-infra.log
verbose: 0
license_key: 12345
custom_attributes:
environment: dev
Instalación de Tarball "offline"
Para usar un tarball local en lugar de descargarlo de la web, debes establecer
la variable nrinfragent_tarball_local_file_path
a una ruta local del tarball desde
http://download.newrelic.com/infrastructure_agent/binaries/linux/{{ architecture }}/newrelic-infra_linux_{{ version }}_{{ architecture }}.tar.gz
.
- hosts: ap_ne_1
roles:
- name: newrelic.newrelic-infra
vars:
nrinfragent_tarball_version: 1.18.0
nrinfragent_tarball_download_dir: /opt/newrelic/
nrinfragent_tarball_from_local: yes
nrinfragent_config:
log_file: /opt/logs/newrelic-infra.log
verbose: 0
license_key: 12345
custom_attributes:
environment: dev
Solo Configurar
El siguiente fragmento solo configurará la configuración del agente de una instalación existente, siempre que el playbook se ejecute con --tags nria_configure
. Ten en cuenta que se debe usar include_role
en este caso.
- hosts: ap_ne_1
tasks:
- name: configurar el Agente de Infraestructura de New Relic
include_role:
name: newrelic.newrelic-infra
vars:
nrinfragent_config:
license_key: 12345
log_file: /opt/logs/newrelic-infra.log
verbose: 0
custom_attributes:
environment: dev
tags:
- nria_configure
Referencia
Configuración del rol
Variables
Las variables de configuración del rol están documentadas en línea así como abajo.
nrinfragent_state
(Opcional)
Instalar o desinstalar paquetes (instalación a través del gestor de paquetes). Las instalaciones del gestor de paquetes se realizan usando el módulo de paquete de Ansible.
'latest'
- [por defecto] instalar la última versión del agente. Tambiénpresent
.'absent'
- Desinstalar el agente.
nrinfragent_service_state
(Opcional)
Especifica el estado del servicio newrelic-infra
después de la instalación. Por defecto es
started
, lo que asegura que el servicio esté corriendo. Cambiarlo a stopped
instalará
solamente, sin iniciarlo de inmediato. Para más información sobre
valores válidos, consulta la
documentación del módulo de servicio de Ansible.
nrinfragent_service_enabled
(Opcional)
Especifica si el servicio se iniciará durante el arranque. Por defecto es yes
. Cambiarlo a
no
evitará que el servicio se inicie automáticamente al iniciar. Para más información sobre
valores válidos, consulta la
documentación del módulo de servicio de Ansible.
nrinfragent_config_file
(Opcional)
Especifica una ruta personalizada al archivo de
configuración del Agente de Infraestructura de New Relic en los hosts de destino. Por defecto es /etc/newrelic-infra.yml
en Linux y
%ProgramFiles%\New Relic\newrelic-infra\newrelic-infra.yml
en Windows. Esto
puede ser especialmente útil en instalaciones de tarball en Linux
cuando se instala en ubicaciones no predeterminadas.
nrinfragent_config
(Requerido)
Se utiliza para poblar la configuración del agente. Como mínimo, debes proporcionar
license_key
. Para las opciones de configuración actuales, consulta la
documentación de New Relic. Por ejemplo:
custom_attributes:
business_unit: sales
team: newrelic
license_key: D000000000000000000000000000000000000000
log_file: /tmp/logs.log
verbose: 1
nrinfragent_integrations
(Opcional)
Especifica las Integraciones On-Host que se instalarán a través del gestor de paquetes de SO. La lista de integraciones disponibles se puede encontrar aquí.
Cada paquete debe proporcionar su name
y state
. El nombre del paquete de integraciones
se encuentra en la sección Instalar y activar de la
documentación de integraciones individuales. Como
convención, su nombre es el nombre del servicio con el prefijo nri-
(nri-apache
, nri-redis
, etc.).
Por defecto, el estado es absent
, lo que no instala el paquete; puedes
cambiarlo a latest
o present
. Por ejemplo:
nrinfragent_integrations:
- name: nri-nginx
state: latest
- name: nri-mysql
state: absent
El código fuente para cada integración está disponible en la organización de GitHub de newrelic.
license_key (OBSOLETO)
Puedes especificar la clave de licencia a través del nivel superior license_key
para
compatibilidad anterior. Recomendamos que uses license_key
en nrinfragent_config
en su lugar. Si se especifican ambos, el que esté en nrinfragent_config
tendrá
prioridad.
nrinfragent_tarball_version (Requerido solo para Instalación de Tarball)
Especifica la versión del tarball del Agente de Infraestructura de New Relic a descargar. Sólo Linux.
nrinfragent_tarball_download_dir (Requerido solo para Instalación de Tarball)
Especifica el directorio en los hosts de destino donde descargar y descomprimir el tarball.
nrinfragent_tarball_agent_dir (Opcional, solo Instalación de Tarball)
Especifica la ruta del directorio principal del agente en los hosts de destino. Igual que el
parámetro NRIA_AGENT_DIR
parámetro.
Por defecto es /var/db/newrelic-infra/
.
nrinfragent_tarball_bin_dir (Opcional, solo Instalación de Tarball)
Especifica la ruta del directorio binario del agente en los hosts de destino. Igual que el
parámetro NRIA_BIN_DIR
parámetro.
Por defecto es /usr/local/bin/
.
nrinfragent_tarball_log_file (Opcional, solo Instalación de Tarball)
Especifica la ruta del archivo de registro del agente en los hosts de destino. Igual que el
parámetro NRIA_LOG_FILE
parámetro.
Por defecto es /var/run/newrelic-infra/newrelic-infra.log
.
nrinfragent_tarball_mode (Opcional, solo Instalación de Tarball)
Especifica el nivel de privilegio del agente. Igual que el
parámetro NRIA_MODE
parámetro.
Por defecto es ROOT
.
nrinfragent_tarball_pid_file (Opcional, solo Instalación de Tarball)
Especifica la ruta del archivo PID del agente en los hosts de destino. Igual que el
parámetro NRIA_PID_FILE
parámetro.
Por defecto es /var/run/newrelic-infra/newrelic-infra.pid
.
nrinfragent_tarball_plugin_dir (Opcional, solo Instalación de Tarball)
Especifica la ruta del directorio de plugins del agente en los hosts de destino. Igual que el
parámetro NRIA_PLUGIN_DIR
parámetro.
Por defecto es /etc/newrelic-infra/integrations.d/
.
nrinfragent_tarball_user (Opcional, solo Instalación de Tarball)
Especifica el usuario con el que se ejecutará el binario del agente en los hosts de destino. Igual que
el parámetro NRIA_USER
parámetro.
Por defecto es root
.
nrinfragent_os_name
(Opcional)
Especifica el SO objetivo en el que se instalará el agente de infraestructura.
Por defecto es ansible_os_family
. Para obtener una lista de sistemas operativos compatibles,
consulta el archivo meta/main.yml.
nrinfragent_os_version
(Opcional)
Especifica la versión del SO del paquete instalador necesario para esta máquina.
Por defecto es ansible_lsb.major_release
. Mayormente utilizada para sistemas operativos de la familia RedHat
.
Para una lista de sistemas operativos compatibles, consulta el archivo
meta/main.yml.
nrinfragent_os_codename
(Opcional)
Especifica el nombre en código del SO del paquete instalador necesario para esta máquina.
Por defecto es ansible_lsb.codename
. Esto se utiliza en sistemas operativos de la familia Debian
.
Para una lista de sistemas operativos compatibles, consulta el archivo
meta/main.yml.
nrinfragent_choco_version
(Opcional, solo Windows)
Especifica la versión del paquete de Chocolatey para instalar newrelic-infra
en Windows. Se puede utilizar para fijar una versión o actualizar el agente.
nrinfragent_yum_lock_timeout
(Opcional)
Se utiliza para establecer el valor de lock_timeout para el módulo yum de ansible. Cuando no se establece este valor, por defecto es 30. Funciona solo para versiones de ansible >= 2.8.0
nrinfragent_logging
(opcional)
Se utiliza para generar el archivo de registro. Para las opciones de configuración actuales, consulta la documentación de New Relic. Para crear múltiples bloques de registro, ingresa listas adicionales - name. Por ejemplo:
vars:
nrinfragent_logging:
- name: example-log
file: /var/log/example.log # Ruta a un solo archivo de registro
- name: docker-logs
file: /var/lib/docker/containers/*/*.log # Ruta a múltiples carpetas y archivos
- name: systemd-example
systemd: cupsd
# Socket de red TCP
- name: syslog-tcp-test
syslog:
uri: tcp://0.0.0.0:5140 # Usar el formato tcp://LISTEN_ADDRESS:PORT
parser: rfc5424 # El analizador por defecto es rfc3164
# Socket de dominio TCP Unix
- name: syslog-unix-tcp-test
syslog:
uri: unix_tcp:///var/unix-tcp-socket-test
unix_permissions: 0666 # El predeterminado es 0644. Cambia bajo tu propio riesgo
# Socket UDP Unix
- name: syslog-unix-udp-test
syslog:
uri: unix_udp:///var/unix-udp-socket-test
parser: rfc5424
- name: tcp-simple-test
tcp:
uri: tcp://0.0.0.0:1234 # Usar el formato tcp://LISTEN_ADDRESS:PORT
format: none # Texto sin formato - este es el predeterminado para 'tcp'
separator: \t # Cadena para separar entradas de texto sin formato
max_line_kb: 32
- name: tcp-json-test
tcp:
uri: tcp://0.0.0.0:2345 # Usar el formato tcp://LISTEN_ADDRESS:PORT
format: json
Eliminando el paquete newrelic-infra-integrations
y sus integraciones empaquetadas
Esto solo se aplica si tienes instalado el paquete
newrelic-infra-integrations
.
Si deseas eliminar el paquete newrelic-infra-integrations
o cualquiera de las
integraciones empaquetadas (nri-redis, nri-cassandra, nri-apache, nri-nginx,
nri-mysql), agrega newrelic-infra-integrations
como el primer elemento de
nrinfragent_integrations
con el estado absent
.
nrinfragent_integrations:
- name: newrelic-infra-integrations
state: "absent"
Pruebas
El rol infrastructure-agent-ansible
utiliza molecule
para pruebas. Se proporcionan tres escenarios.
- El escenario predeterminado prueba la instalación y configuración del agente y la configuración de los servicios de inicio del SO, todo a través del gestor de paquetes de SO.
- El escenario configurar prueba la configuración en ejecución
del agente solo utilizando la etiqueta
nria_conigure
. Ten en cuenta que para ejecutar esta prueba, se deben ejecutar primero los métodoscreate
yconverge
del escenariopredeterminado
para que el escenarioconfigurar
tenga un agente instalado con el que probar. - El escenario targz prueba la instalación y configuración del agente y la configuración del servicio de inicio del SO utilizando el método de instalación por tarball.
Los escenarios predeterminado
y targz
se pueden ejecutar en su totalidad usando molecule test
.
Ten en cuenta que el comando test
destruirá los contenedores después de probar y verificar el escenario.
Por lo tanto, la mejor manera de ejecutar el escenario configurar
es usar molecule converge && molecule test -s configure && molecule destroy
.
Lanzamiento a Ansible Galaxy
Para lanzar una nueva versión a Ansible Galaxy, sigue estos pasos:
- Actualiza el CHANGELOG.md.
- Crea una nueva versión en GitHub.
- Observa la construcción con el número de versión en Github Actions: https://github.com/newrelic/infrastructure-agent-ansible/actions
- Asegúrate de que la versión esté importada en Ansible Galaxy, si hay algún problema, pregunta a uno de los propietarios del proyecto.
Compatibilidad
Plataformas
- RHEL/CentOS
- RHEL/CentOS 8
- RHEL/CentOS 7
- RHEL/CentOS 6
- RHEL/CentOS 5
- Ubuntu
- 18 Bionic
- 16 Xenial
- 14 Trusty
- 12 Precise
- Debian
- 10 Buster
- 9 Stretch
- 8 Jessie
- 7 Wheezy
- SUSE Linux Enterprise
- 12
- Windows
- Todos
- Descargo de responsabilidad: El soporte de Windows depende del paquete de terceros newrelic-infra Chocolatey que es mantenido por @ripclawffb y @xandrellas. Se distribuye sin ninguna garantía o soporte por parte de New Relic.
Soporte
New Relic alberga y modera un foro en línea donde los clientes pueden interactuar con empleados de New Relic así como otros clientes para obtener ayuda y compartir mejores prácticas. Como todos los proyectos de código abierto oficiales de New Relic, hay un tema comunitario relacionado en el New Relic Explorers Hub. Puedes encontrar el tema/hilos de este proyecto aquí:
- Documentación de New Relic: Guía completa para usar nuestra plataforma.
- Comunidad de New Relic: El mejor lugar para participar en preguntas sobre solución de problemas.
- Desarrollador de New Relic: Recursos para crear aplicaciones personalizadas de observabilidad.
- Universidad de New Relic: Una variedad de capacitación en línea para usuarios de New Relic de todos los niveles.
- Soporte Técnico de New Relic 24/7/365 soporte por tickets. Lee más sobre nuestras ofertas de Soporte Técnico.
Contribuir
¡Fomentamos tus contribuciones para mejorar [el nombre del proyecto]! Ten en cuenta que cuando envíes tu solicitud de extracción, deberás firmar el CLA a través del proceso de clic, utilizando CLA-Assistant. Solo necesitas firmar el CLA una vez por proyecto.
Si tienes alguna pregunta, o para ejecutar nuestro CLA corporativo (que es requerido si tu contribución es en nombre de una empresa), envíanos un correo a opensource@newrelic.com.
Una nota sobre vulnerabilidades
Como se menciona en nuestra política de seguridad, New Relic está comprometido con la privacidad y seguridad de nuestros clientes y sus datos. Creemos que proporcionar una divulgación coordinada por parte de investigadores de seguridad y colaborar con la comunidad de seguridad son medios importantes para lograr nuestros objetivos de seguridad.
Si crees que has encontrado una vulnerabilidad de seguridad en este proyecto o en cualquiera de los productos o sitios web de New Relic, te agradecemos que lo reportes a New Relic a través de HackerOne.
Si deseas contribuir a este proyecto, revisa estas pautas.
¡A todos los contribuyentes, muchas gracias! Sin tu contribución, este proyecto no sería lo que es hoy.
Licencia
infrastructure-agent-ansible está bajo la licencia Apache 2.0.
ansible-galaxy install newrelic.newrelic-infra