newrelic.newrelic_java_agent
アーカイブ通知
❗通知:このプロジェクトはそのままアーカイブされており、現在は積極的に保守されていません。
New RelicのJava Ansibleロールは、使用頻度が低いためアーカイブされました。現在の状態でも使用可能です。
Ansibleロール:New Relic Javaエージェント
このロールは、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
必須
アプリケーションが使用するウェブサーバー。可能な値は:tomcat
、jetty
、および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_server
がfalse
に設定されている場合を除く)
ウェブサーバーが実行されるサービス名。エージェントがインストールされた後に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の下でリリースされています。