newrelic.newrelic_java_agent

アーカイブ通知

❗通知:このプロジェクトはそのままアーカイブされており、現在は積極的に保守されていません。

New RelicのJava Ansibleロールは、使用頻度が低いためアーカイブされました。現在の状態でも使用可能です。

Ansibleロール:New Relic Javaエージェント

Molecule Test

このロールは、New Relic Javaエージェントをインストールおよび設定します。Tomcat、Jetty、またはWildflyで動作するアプリケーションに対して最小限の設定で動作するはずです。私たちは、時間をかけて最も人気のあるJavaウェブサーバーをサポートすることを目指しています。

要件

unzipコマンドがターゲットホストにインストールされている必要があります。

インストール

ロールをインストールする推奨方法はAnsible Galaxyを使用することです:

$ ansible-galaxy install newrelic.new_relic_java_agent

ロールに貢献したい場合は、このリポジトリをクローンして変更を加え、次のコマンドでローカルにインストールできます:

sh examples/install_role.sh

Ansibleがシステムにどのようにインストールされているかによっては、上記のコマンドの前にsudoを付ける必要があるかもしれません。

設定

このロールは2つの目的で変数を使用します:ロール設定とエージェント設定。

ロール設定変数は、エージェントファイルを適切な場所にインストールし、Java環境をセットアップするためにホストがどのように設定されているかを説明します。

エージェント設定変数は、プレイブックでグローバルに設定することも、インベントリファイルのホストやグループごとに設定することもできます。これらは、Javaエージェントが構成を決定するために使用するnewrelic.ymlファイルを作成するために使用されます。

ロール設定変数

server_type

必須 アプリケーションが使用するウェブサーバー。可能な値は:tomcatjetty、およびwildfly(スタンドアロンモードのみ)。

server_root

必須 ホスト上のウェブサーバーの場所。このディレクトリのサブディレクトリにエージェントのJAR、設定ファイル、ログファイルが格納されます。

jvm_conf_file

必須 New Relic Javaエージェントを参照するためのウェブサーバー設定ファイルのパス。Tomcatの場合はsetenv.shです。存在しない場合は、ファイルが作成されます。

server_user / server_group

必須 ウェブサーバーが実行されるユーザーおよびグループ。newrelic.jarおよびnewrelic.ymlファイルの所有権を設定するために使用されます。

restart_web_server

オプション - デフォルト: true falseに設定すると、エージェントをインストールした後にロールはウェブサーバーを再起動しません。

ウェブサーバーが再起動されるまでエージェントはアクティブ化されないことに注意してください。

service_name

必須(ただし、restart_web_serverfalseに設定されている場合を除く) ウェブサーバーが実行されるサービス名。エージェントがインストールされた後にAnsibleがウェブサーバーを再起動するために使用されます。

custom_instrumentation_files

オプション Javaエージェントによるカスタム計測を有効にするためのXMLファイルのリスト。詳細はカスタム計測セクションを参照してください。

エージェント設定変数

エージェント設定はnr_java_agent_config辞書に入れられ、Javaエージェントの構成ファイル - newrelic.ymlに追加されます。このロールを通じて最も一般的な設定を指定できます。例はexamples/agent_install.ymlにあります。

インベントリ内の特定のホストの設定を指定するには、nr_java_agent_host_config辞書を使用します。例はexamples/inventory.ymlにあります。ホストの値はnr_java_agent_config内の値を上書きします。

以下にリストされていない設定を構成する必要がある場合は、独自の事前設定されたnewrelic.ymlファイルを提供する必要があります(詳細は独自のエージェント設定ファイルを使用するを参照)。

license_key

必須 あなたのNew Relicライセンスキー

app_name

必須 計測されるアプリケーションの名前。詳細はNew Relicのアプリ命名に関するドキュメントを参照してください。

proxy_host / proxy_port / proxy_user / proxy_password, / proxy_scheme

オプション New Relicコレクターにプロキシ経由で接続する場合、これらの値を使用してプロキシ設定を構成できます。詳細はJavaエージェントの構成に関するNew Relicのドキュメントを参照してください。

labels

オプション エージェント用のユーザー設定可能なカスタムラベル。ラベルは名前と値のペアで構成されます。名前と値は255文字以内で、コロン(:)やセミコロン(;)を含むことはできません。値はキーバリューペアのセミコロンで区切られたリストであるべきです。例:

nr_java_agent_config:
  ...
  labels: Server:One;Data Center:Primary

collector_host

オプション コレクターホストを指定する必要がある場合は、collector_host変数を使用できます。詳細はコレクターエンドポイントに関するNew Relicのドキュメントを参照してください。

その他のエージェント特有の設定

上記に加えて、次の設定をこの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

これらの設定や他の詳細については、Javaエージェントの設定ドキュメントをご覧ください。これ以外の設定を構成する必要がある場合は、完全に指定されたnewrelic.ymlを提供する必要があります。詳細は独自のエージェント設定ファイルを使用するを参照してください。

独自のエージェント設定ファイルを使用する

上記にリストされている以外のエージェント設定を指定する必要がある場合は、独自のnewrelic.ymlファイルを提供する必要があります。その場合、nr_java_agent_config辞書内の設定は無視されます。変数nr_java_agent_config_fileをファイルのパスに設定します。例えば:

nr_java_agent_config_file: /path/to/your/newrelic.yml

このファイルがAnsibleを実行しているシステムの代わりにターゲットホスト上にある場合は、nr_java_agent_config_file_is_remoteをtrueに設定します:

nr_java_agent_config_file_is_remote: true

使用例

examples/agent_install.ymlおよびexamples/inventory.ymlファイルには、ロールの使用例が提供されています。

examples/agent_install.ymlに変数を設定し、examples/inventory.ymlにインベントリを設定した後、Ansibleを実行してロールを試すことができます:

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

カスタム計測

XMLを使用したカスタム計測を有効にしたい場合は、custom_instrumentation_files変数にXMLファイルのリストを提供できます。これらのファイルは、プレイブックでこの変数を指定した場合、Javaエージェントがインストールされる各ホストにコピーされます。また、インベントリでホストレベルで変数を指定することで異なるホストに異なるファイルをインストールしたり、グループレベルで指定することで異なるファイルを異なるホストグループにインストールすることも可能です。

ホストおよびグループ変数を管理する詳細については、Ansibleのドキュメントをご覧ください。カスタム計測の指定方法については、custom_instrumentation_playbook.ymlおよびcustom_instrumentation_inventory.ymlファイルでいくつかの例を確認できます。

開発

テスト

このロールはモレキュールを使用してテストします。DockerとPython 3.6以降が必要です。まだインストールしていない場合は、dockerモジュールを含むモレキュールをインストールしてください:

$ pip install molecule[docker]

これにより、必要に応じてansibleもインストールされます。テストを実行するには、トップレベルディレクトリからmolecule testを呼び出します。

$ git clone https://github.com/newrelic/newrelic-java-agent-ansible-role
$ cd newrelic-java-agent-ansible-role
$ molecule test
--> テストマトリックス

└── default
    ├── 依存関係
    ├── リント
    ├── クリーンアップ
...

コミュニティ

New Relicはオンラインフォーラムをホストおよび運営しており、顧客はNew Relicの従業員や他の顧客と対話し、支援を受けたりベストプラクティスを共有したりすることができます。すべての公式なNew Relicのオープンソースプロジェクトと同様に、New Relic Explorers Hubに関連するコミュニティトピックがあります。プロジェクトのトピック/スレッドはここで見つけることができます:

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

問題 / 機能追加リクエスト

問題や機能追加リクエストは、このリポジトリのIssuesタブに提出できます。新しい問題を投稿する前に、既存のオープンな問題を検索してレビューしてください。

ライセンス

このプロジェクトは、Apacheライセンスのバージョン2.0の下でリリースされています。

プロジェクトについて

Role to install New Relic APM Java agent

インストール
ansible-galaxy install newrelic.newrelic_java_agent
ライセンス
apache-2.0
ダウンロード
12k
所有者