newrelic.newrelic_java_agent
Aviso de Archivo
❗Aviso: Este proyecto ha sido archivado tal como está y ya no se mantiene activamente.
El Rol de Ansible de New Relic Java ha sido archivado debido a su bajo uso. Aún se puede utilizar en su estado actual.
Rol de Ansible: Agente Java de New Relic
Este rol instala y configura el Agente Java de New Relic. Debe funcionar con configuración mínima para aplicaciones que se ejecutan bajo Tomcat, Jetty o Wildfly. Nuestro objetivo es soportar los servidores web Java más populares con el tiempo.
- Requisitos
- Instalación
- Configuración
- Ejemplo de uso
- Comunidad
- Problemas / Solicitudes de Mejora
- Licencia
Requisitos
El comando unzip
debe estar disponible en los hosts de destino.
Instalación
La forma recomendada para instalar el rol es usar Ansible Galaxy:
$ ansible-galaxy install newrelic.new_relic_java_agent
Si deseas contribuir al rol, puedes clonar este repositorio y hacer cambios, luego instalarlo localmente ejecutando:
sh examples/install_role.sh
Dependiendo de cómo esté instalado Ansible en tu sistema, es posible que debas anteponer el comando anterior con sudo
.
Configuración
Este rol utiliza variables para dos propósitos: configuración del rol y configuración del agente.
Las variables de configuración del rol describen cómo están configurados tus hosts para que el rol pueda instalar los archivos del agente en la ubicación correcta y configurar tu entorno Java para ejecutar el agente.
Las variables de configuración del agente se pueden establecer globalmente en tu libro de jugadas o por host o grupo en tu archivo de inventario. Se utilizan para crear el archivo newrelic.yml
que el agente Java utiliza para determinar su configuración.
Variables de configuración del rol
server_type
Requerido
Servidor web utilizado por tu aplicación. Los valores posibles son: tomcat
, jetty
, y wildfly
(solo en modo independiente).
server_root
Requerido Ubicación del servidor web en el host. El JAR del agente, los archivos de configuración y los registros estarán en un subdirectorio de este directorio.
jvm_conf_file
Requerido
Ruta del archivo de configuración del servidor web para hacer referencia al agente Java de New Relic. Por ejemplo, para Tomcat, es setenv.sh
. Si no existe, se creará el archivo.
server_user
/ server_group
Requerido
Usuario y grupo bajo los cuales se ejecuta el servidor web. Se utilizan para establecer la propiedad de los archivos newrelic.jar
y newrelic.yml
.
restart_web_server
Opcional - Predeterminado: true
Si se establece en falso, el rol no reinicia el servidor web después de instalar el agente.
Ten en cuenta que el agente no se activa hasta que el servidor web se reinicia.
service_name
Requerido (a menos que restart_web_server
esté establecido en false
)
Nombre del servicio bajo el cual se ejecuta el servidor web. Utilizado por Ansible para reiniciar el servidor web después de que se instala el agente.
custom_instrumentation_files
Opcional Lista de archivos XML para habilitar la instrumentación personalizada por el agente Java. Consulta la sección de Instrumentación personalizada para más detalles.
Variables de configuración del agente
La configuración del agente se coloca en el diccionario nr_java_agent_config
y se agrega al archivo de configuración del agente Java - newrelic.yml
. Los ajustes más comunes se pueden especificar a través de este rol. Los ejemplos se pueden encontrar en examples/agent_install.yml.
Para especificar ajustes para hosts específicos en tu inventario, utiliza el diccionario nr_java_agent_host_config
. Para ejemplos, consulta examples/inventory.yml. Los valores de host sobrescriben los del nr_java_agent_config
.
Si necesitas configurar ajustes que no se enumeran a continuación, debes proporcionar tu propio archivo newrelic.yml
preconfigurado (ver Usando tu propio archivo de configuración de agente).
license_key
Requerido Tu clave de licencia de New Relic.
app_name
Requerido Nombre de la aplicación que se está instrumentando. Para más detalles, consulta la documentación de New Relic sobre nombrar aplicaciones.
proxy_host
/ proxy_port
/ proxy_user
/ proxy_password
, / proxy_scheme
Opcional Si te conectas al colector de New Relic a través de un proxy, puedes configurar tus ajustes de proxy con estos valores. Para más detalles, consulta la documentación de New Relic sobre la configuración del agente Java.
labels
Opcional
Etiquetas personalizables por el usuario para el agente. Las etiquetas son pares nombre-valor. Los nombres y valores están limitados a 255 caracteres y no pueden contener dos puntos (:
) ni puntos y comas (;
). El valor debe ser una lista de pares clave-valor separados por punto y coma. Por ejemplo:
nr_java_agent_config:
...
labels: Servidor:Uno;Centro de Datos:Primario
collector_host
Opcional
Si necesitas especificar un host colector, puedes usar la variable collector_host
. Consulta la documentación de New Relic sobre los puntos finales del colector para más detalles.
Otra configuración específica del agente
Además de las mencionadas anteriormente, puedes configurar los siguientes ajustes a través de este rol de Ansible:
agent_enabled
high_security
enable_auto_app_naming
log_level
audit_mode
log_file_count
log_limit_in_kbytes
log_daily
log_file_name
log_file_path
max_stack_trace_lines
attributes
:enabled
,include
,exclude
transaction_tracer
:enabled
,transaction_threshold
,record_sql
,log_sql
,stack_trace_threshold
,explain_enabled
,explain_threshold
,top_n
error_collector
:enabled
,ignore_errors
,ignore_status_codes
transaction_events
:enabled
,max_samples_stored
distributed_tracing
:enabled
cross_application_tracer
:enabled
thread_profiler
:enabled
browser_monitoring
:auto_instrument
labels
Consulta la documentación de configuración del agente Java para más detalles sobre estas configuraciones y otras. Si necesitas configurar ajustes que no están en la lista, deberás proporcionar un newrelic.yml
completamente especificado. Para detalles, consulta la sección Usando tu propio archivo de configuración de agente.
Usando tu propio archivo de configuración de agente
Si necesitas especificar configuraciones de agente que vayan más allá de las listadas anteriormente, deberás proporcionar tu propio archivo newrelic.yml
. Cualquier configuración en el diccionario nr_java_agent_config
será ignorada. Establece la variable nr_java_agent_config_file
en la ruta de tu archivo, por ejemplo:
nr_java_agent_config_file: /ruta/a/tu/newrelic.yml
Si este archivo está en los hosts de destino en lugar de en el sistema que ejecuta Ansible, establece nr_java_agent_config_file_is_remote
en verdadero:
nr_java_agent_config_file_is_remote: true
Ejemplo de uso
Los archivos examples/agent_install.yml y examples/inventory.yml proporcionan un ejemplo de cómo utilizar el rol.
Después de configurar tus variables en examples/agent_install.yml
y tu inventario en examples/inventory.yml
, puedes probar el rol ejecutando Ansible:
ansible-playbook -i examples/inventory.yml examples/agent_install.yml
Instrumentación personalizada
Si deseas habilitar instrumentación personalizada con XML, puedes proporcionar una lista de archivos XML en la variable custom_instrumentation_files
. Estos archivos se copiarán a cada host donde se esté instalando el agente Java, si especificas la variable en tu libro de jugadas. También puedes instalar diferentes archivos en diferentes hosts especificando la variable a nivel de host en tu inventario, o diferentes archivos para diferentes grupos de hosts especificando la variable a nivel de grupo, ya sea a través de tu inventario o a través de archivos en el directorio group_vars
.
Consulta la documentación de Ansible sobre inventario y variables para más detalles sobre cómo gestionar variables de host y grupo. Puedes ver algunos ejemplos en este repositorio sobre cómo especificar instrumentación personalizada en los archivos custom_instrumentation_playbook.yml y custom_instrumentation_inventory.yml.
Desarrollo
Pruebas
Este rol utiliza molecule para pruebas. Necesitarás Docker y Python 3.6 o posterior. Instala molecule con el módulo de docker, si aún no lo has hecho:
$ pip install molecule[docker]
Esto también instalará ansible, si es necesario. Para ejecutar las pruebas, llama a molecule test
desde el directorio principal.
$ git clone https://github.com/newrelic/newrelic-java-agent-ansible-role
$ cd newrelic-java-agent-ansible-role
$ molecule test
--> Matriz de prueba
└── default
├── dependencia
├── lint
├── limpieza
...
Comunidad
New Relic alberga y modera un foro en línea donde los clientes pueden interactuar con empleados de New Relic y 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 relacionado en el Hub de Exploradores de New Relic. Puedes encontrar el tema/hilos del proyecto aquí:
https://discuss.newrelic.com/t/ansible-role-for-new-relic-java-agent/99654
Problemas / Solicitudes de Mejora
Los problemas y solicitudes de mejora pueden ser enviados en la pestaña de Problemas de este repositorio. Por favor, busca y revisa los problemas abiertos existentes antes de enviar un nuevo problema.
Licencia
El proyecto se publica bajo la versión 2.0 de la licencia Apache.
Role to install New Relic APM Java agent
ansible-galaxy install newrelic.newrelic_java_agent