newrelic.newrelic_java_agent
存档通知
❗通知:该项目已被存档,并且不再积极维护。
New Relic Java Ansible 角色由于使用率低而被存档。它在当前状态下仍然可以使用。
Ansible 角色:New Relic Java 代理
此角色安装和配置 New Relic Java 代理。它应该可以在 Tomcat、Jetty 或 Wildfly 下的应用程序中使用,且需要的配置最少。我们计划随着时间的推移支持最受欢迎的 Java Web 服务器。
要求
目标主机上必须可以使用 unzip
命令。
安装
推荐的安装方式是使用 Ansible Galaxy:
$ ansible-galaxy install newrelic.new_relic_java_agent
如果您想为该角色贡献代码,可以克隆此仓库并进行更改,然后通过运行以下命令将其本地安装:
sh examples/install_role.sh
根据您系统上 Ansible 的安装方式,您可能需要在上述命令前加上 sudo
。
配置
此角色使用变量有两个目的:角色配置和代理配置。
角色配置变量 描述了主机的设置,以便角色可以将代理文件安装到正确的位置,并设置您的 Java 环境以运行代理。
代理配置变量 可以在您的剧本中全局设置,也可以在您的清单文件中按主机或组进行设置。它们用于创建 Java 代理使用的 newrelic.yml
文件,以确定其配置。
角色配置变量
server_type
必填
您的应用程序使用的 Web 服务器。可能的值有:tomcat
、jetty
和 wildfly
(仅限独立模式)。
server_root
必填 主机上 Web 服务器的位置。代理的 JAR 文件、配置文件和日志文件将存放在此目录的子目录中。
jvm_conf_file
必填
用于引用 New Relic Java 代理的 Web 服务器配置文件的路径。例如,对于 Tomcat,它是 setenv.sh
。如果不存在,将创建该文件。
server_user
/ server_group
必填
Web 服务器运行的用户和组。用于设置 newrelic.jar
和 newrelic.yml
文件的所有权。
restart_web_server
可选 - 默认值: true
如果设置为 false,则角色在安装代理后 不会 重启 Web 服务器。
注意,代理在 Web 服务器重启之前不会激活。
service_name
必填(除非 restart_web_server
被设置为 false
)
Web 服务器运行的服务名称。用于 Ansible 在安装代理后重启 Web 服务器。
custom_instrumentation_files
可选 XML 文件列表,以通过 Java 代理启用自定义仪器。有关更多详细信息,请参见 自定义仪器部分。
代理配置变量
代理配置放在 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 收集器,可以使用这些值配置您的代理设置。有关更多详细信息,请参见 New Relic 配置 Java 代理文档。
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 代理的每个主机。您也可以通过在清单中按主机级别指定变量,或者通过在 group_vars
目录中的文件按组级别指定变量,来为不同的主机安装不同的文件。
有关管理主机和组变量的更多详细信息,请参见 Ansible 文档关于清单和变量。您可以查看此仓库中有关如何在 custom_instrumentation_playbook.yml 和 custom_instrumentation_inventory.yml 文件中指定自定义仪器的示例。
开发
测试
此角色使用 molecule 进行测试。您需要 Docker 和 Python 3.6 或更高版本。如果尚未安装 molecule,请安装它及其 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 发布。