newrelic.newrelic_java_agent

Archivierungsmitteilung

❗Hinweis: Dieses Projekt wurde wie es ist archiviert und wird nicht mehr aktiv gewartet.

Die New Relic Java Ansible Rolle wurde aufgrund geringer Nutzung archiviert. Sie kann jedoch weiterhin in ihrem aktuellen Zustand verwendet werden.

Ansible Rolle: New Relic Java Agent

Molecule Test

Diese Rolle installiert und konfiguriert den New Relic Java Agent. Sie sollte mit minimaler Konfiguration für Anwendungen unter Tomcat, Jetty oder Wildfly funktionieren. Wir haben das Ziel, im Laufe der Zeit die beliebtesten Java-Webserver zu unterstützen.

Anforderungen

Der Befehl unzip muss auf den Zielhosts verfügbar sein.

Installation

Der empfohlene Weg zur Installation der Rolle ist die Verwendung von Ansible Galaxy:

$ ansible-galaxy install newrelic.new_relic_java_agent

Wenn Sie zur Rolle beitragen möchten, können Sie dieses Repository klonen und Änderungen vornehmen. Installieren Sie es dann lokal, indem Sie Folgendes ausführen:

sh examples/install_role.sh

Je nachdem, wie Ansible auf Ihrem System installiert ist, müssen Sie möglicherweise den obigen Befehl mit sudo beginnen.

Konfiguration

Diese Rolle verwendet Variablen für zwei Zwecke: Rollen-Konfiguration und Agenten-Konfiguration.

Variablen für die Rollen-Konfiguration beschreiben, wie Ihre Hosts eingerichtet sind, damit die Rolle die Agenten-Dateien am richtigen Ort installieren und Ihre Java-Umgebung zum Ausführen des Agenten einrichten kann.

Variablen für die Agenten-Konfiguration können global in Ihrem Playbook oder pro Host oder Gruppe in Ihrer Inventardatei festgelegt werden. Sie werden verwendet, um die newrelic.yml-Datei zu erstellen, die der Java-Agent verwendet, um seine Konfiguration zu bestimmen.

Variablen für die Rollen-Konfiguration

server_type

Erforderlich Webserver, der von Ihrer Anwendung verwendet wird. Mögliche Werte sind: tomcat, jetty und wildfly (nur im Standalone-Modus).

server_root

Erforderlich Standort des Webservers auf dem Host. Die JAR-, Konfigurations- und Protokolldateien des Agenten befinden sich in einem Unterverzeichnis dieses Verzeichnisses.

jvm_conf_file

Erforderlich Pfad der Konfigurationsdatei des Webservers für den New Relic Java-Agenten. Für Tomcat beispielsweise ist es setenv.sh. Wenn es nicht existiert, wird die Datei erstellt.

server_user / server_group

Erforderlich Benutzer und Gruppe, unter denen der Webserver läuft. Verwendet, um den Besitz der Dateien newrelic.jar und newrelic.yml festzulegen.

restart_web_server

Optional - Standard: true Wenn auf false gesetzt, wird der Webserver nach der Installation des Agenten nicht neu gestartet.

Hinweis: Der Agent ist erst aktiviert, nachdem der Webserver neu gestartet wurde.

service_name

Erforderlich (es sei denn, restart_web_server ist auf false gesetzt) Dienstname, unter dem der Webserver läuft. Wird von Ansible verwendet, um den Webserver nach der Installation des Agenten neu zu starten.

custom_instrumentation_files

Optional Liste von XML-Dateien, um die benutzerdefinierte Instrumentierung durch den Java-Agenten zu aktivieren. Weitere Details finden Sie im Abschnitt Benutzerdefinierte Instrumentierung.

Variablen für die Agent-Konfiguration

Die Konfiguration des Agenten erfolgt im Wörterbuch nr_java_agent_config und wird zur Konfigurationsdatei des Java-Agenten - newrelic.yml - hinzugefügt. Die häufigsten Einstellungen können über diese Rolle angegeben werden. Beispiele finden Sie in examples/agent_install.yml.

Um Einstellungen für bestimmte Hosts in Ihrem Inventar anzugeben, verwenden Sie das Wörterbuch nr_java_agent_host_config. Für Beispiele siehe examples/inventory.yml. Hostwerte haben Vorrang vor denen in nr_java_agent_config.

Wenn Sie Einstellungen konfigurieren müssen, die nicht aufgeführt sind, müssen Sie Ihre eigene, vorkonfigurierte Datei newrelic.yml bereitstellen (siehe Verwendung Ihrer eigenen Konfigurationsdatei für den Agenten).

license_key

Erforderlich Ihrer New Relic Lizenzschlüssel.

app_name

Erforderlich Name der instrumentierten Anwendung. Weitere Details finden Sie in der New Relic-Dokumentation zur App-Benennung.

proxy_host / proxy_port / proxy_user / proxy_password, / proxy_scheme

Optional Wenn Sie über einen Proxy mit dem New Relic-Collector verbinden, können Sie Ihre Proxy-Einstellungen mit diesen Werten konfigurieren. Weitere Details finden Sie in der New Relic-Dokumentation zur Konfiguration des Java-Agenten.

labels

Optional Benutzerkonfigurierbare benutzerdefinierte Labels für den Agenten. Labels sind Namens-Wert-Paare. Namen und Werte sind auf 255 Zeichen begrenzt und dürfen keine Doppelpunkte (:) oder Semikolons (;) enthalten. Der Wert sollte eine durch Semikolons getrennte Liste von Schlüssel-Wert-Paaren sein. Zum Beispiel:

nr_java_agent_config:
  ...
  labels: Server:One;Datacenter:Primary

collector_host

Optional Wenn Sie einen Collector-Host angeben müssen, können Sie die Variable collector_host verwenden. Weitere Details finden Sie in der New Relic-Dokumentation zu Collector-Endpunkten.

Weitere agentenspezifische Konfiguration

Neben den oben aufgeführten können Sie die folgenden Einstellungen über diese Ansible-Rolle konfigurieren:

  • 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

Siehe die Dokumentation zur Java-Agent-Konfiguration für weitere Details zu diesen Einstellungen und anderen. Wenn Sie andere Einstellungen konfigurieren müssen, müssen Sie eine vollständig angegebene Datei newrelic.yml bereitstellen. Weitere Informationen finden Sie im Abschnitt Verwendung Ihrer eigenen Konfigurationsdatei für den Agenten.

Verwendung Ihrer eigenen Konfigurationsdatei für den Agenten

Wenn Sie Agenten-Konfigurationseinstellungen angeben müssen, die über die oben aufgeführten hinausgehen, müssen Sie Ihre eigene Datei newrelic.yml bereitstellen. Alle Einstellungen im Wörterbuch nr_java_agent_config werden dann ignoriert. Setzen Sie die Variable nr_java_agent_config_file auf den Pfad zu Ihrer Datei, zum Beispiel:

nr_java_agent_config_file: /pfad/zu/Ihrer/newrelic.yml

Wenn sich diese Datei auf den Zielhosts und nicht auf dem System befindet, das Ansible ausführt, setzen Sie nr_java_agent_config_file_is_remote auf true:

nr_java_agent_config_file_is_remote: true

Beispielnutzung

Die Dateien examples/agent_install.yml und examples/inventory.yml bieten ein Beispiel, wie man die Rolle verwenden kann.

Nachdem Sie Ihre Variablen in examples/agent_install.yml und Ihr Inventar in examples/inventory.yml festgelegt haben, können Sie die Rolle testen, indem Sie Ansible ausführen:

ansible-playbook -i examples/inventory.yml examples/agent_install.yml

Benutzerdefinierte Instrumentierung

Wenn Sie benutzerdefinierte Instrumentierung mit XML aktivieren möchten, können Sie eine Liste von XML-Dateien in der Variable custom_instrumentation_files bereitstellen. Diese Dateien werden auf jeden Host kopiert, auf dem der Java-Agent installiert wird, wenn Sie die Variable in Ihrem Playbook angeben. Sie können auch unterschiedliche Dateien auf unterschiedliche Hosts installieren, indem Sie die Variable auf der Host-Ebene in Ihrem Inventar oder unterschiedliche Dateien für unterschiedliche Hostgruppen angeben, entweder über Ihr Inventar oder durch Dateien im Verzeichnis group_vars.

Siehe die Ansible-Dokumentation zu Inventar und Variablen für weitere Informationen zur Verwaltung von Host- und Gruppenvariablen. In diesem Repository finden Sie einige Beispiele, wie man die benutzerdefinierte Instrumentierung in den Dateien custom_instrumentation_playbook.yml und custom_instrumentation_inventory.yml angibt.

Entwicklung

Tests

Diese Rolle verwendet molecule für Tests. Sie benötigen Docker und Python 3.6 oder später. Installieren Sie Molecule mit dem Docker-Modul, falls Sie dies noch nicht getan haben:

$ pip install molecule[docker]

Dies wird auch Ansible installieren, falls notwendig. Um die Tests auszuführen, rufen Sie molecule test im obersten Verzeichnis auf.

$ git clone https://github.com/newrelic/newrelic-java-agent-ansible-role
$ cd newrelic-java-agent-ansible-role
$ molecule test
--> Testmatrix

└── standard
    ├── Abhängigkeit
    ├── Lint
    ├── Aufräumen
...

Gemeinschaft

New Relic veranstaltet und moderiert ein Online-Forum, in dem Kunden mit New Relic-Mitarbeitern sowie anderen Kunden interagieren können, um Hilfe zu erhalten und bewährte Verfahren auszutauschen. Wie bei allen offiziellen Open Source-Projekten von New Relic gibt es ein zugehöriges Community-Thema im New Relic Explorers Hub. Sie finden das Thema/die Threads des Projekts hier:

https://discuss.newrelic.com/t/ansible-role-for-new-relic-java-agent/99654

Probleme / Verbesserungsvorschläge

Probleme und Verbesserungsvorschläge können im Issues-Tab dieses Repositorys eingereicht werden. Bitte suchen Sie nach bestehenden offenen Problemen und überprüfen Sie diese, bevor Sie ein neues Problem einreichen.

Lizenz

Das Projekt wird unter Version 2.0 der Apache-Lizenz veröffentlicht.

Über das Projekt

Role to install New Relic APM Java agent

Installieren
ansible-galaxy install newrelic.newrelic_java_agent
Lizenz
apache-2.0
Downloads
12k
Besitzer