newrelic.newrelic-infra

Encabezado de New Relic Community Plus

: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 test_ansible release_ansible

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én present.
  • '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.

  1. 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.
  2. 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étodos create y converge del escenario predeterminado para que el escenario configurar tenga un agente instalado con el que probar.
  3. 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:

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í:

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.

Acerca del proyecto

Role to install New Relic Infrastructure agent

Instalar
ansible-galaxy install newrelic.newrelic-infra
Licencia
apache-2.0
Descargas
1.4M
Propietario