Access to this feature depends on your subscription level. Requires Infrastructure Pro.
New Relic Infrastructure's on-host integrations include an Apache integration that instruments your Apache web server. This document explains how to install and configure the Apache integration, and describes the data collected.
Features
New Relic's Apache integration sends performance metrics and inventory data from your Apache web server to New Relic products, including Infrastructure and Insights. You can view pre-built dashboards of your Apache metric data, create alert policies, and create your own custom queries and charts in Insights.
The integration works by gathering data from Apache's status module, so that module must be enabled and configured for your Apache instance (more details in Requirements).
Compatibility and requirements
To use the Apache integration, ensure your system meets these requirements:
- New Relic Infrastructure installed on host
- Linux distribution compatible with New Relic Infrastructure
- Apache versions 2.2 or 2.4
- Apache status module enabled and configured for Apache instance
- Apache status module endpoint (default
server-status
) available from host containing Apache integration
Install and activate
On-host integrations do not automatically update. For best results, you should occasionally update the integration package and update the Infrastructure agent.
To install the Apache integration:
- Follow the instructions for installing an integration, using the file name
nri-apache
. -
Via the command line, change directory to the integration's folder:
cd /etc/newrelic-infra/integrations.d
-
Create a copy of the sample configuration file by running:
sudo cp apache-config.yml.sample apache-config.yml
-
Edit the configuration file
apache-config.yml
using the configuration settings described below. - Restart the Infrastructure agent.
Configuration
This integration can monitor only one Apache server instance per host.
The Apache integration's config file gives you control over how data is collected. Here are some values you may want to change:
metrics
: This command captures the metrics of a particular Apache server. This takes a single argument:status_url
: The URL set up to provide the metrics using the Apache status info module. Default value:http://127.0.0.1/server-status?auto
. If you have customized your setup to use a different endpoint, you will need to set this value.
inventory
: This command captures the modules loaded by Apache as inventory data, using Apache's binary file. To disable the collection of inventory data, delete the inventory command from the config file.-
labels
: Theenv
label controls theenvironment
attribute in Insights. The default value isproduction
.
For general information about the config file structure, see the SDK documentation.
Environment variable passthroughs
Environment variables can be used to control config settings, and are then passed through to the Infrastructure agent. For instructions on how to use this feature, see Configure the Infrastructure agent.
- STATUS_URL
-
The URL set up to provide the metrics using the Apache status info module.
Type String Default http://127.0.0.1/server-status?auto Example:
STATUS_URL='http://your.ip.address:8080/server-status?auto'
- CA_BUNDLE_FILE
-
Alternative file to use for custom SSL certificate.
Type String Default (none) Example:
CA_BUNDLE_FILE='/etc/ssl/certs/custom-ca.crt'
- CA_BUNDLE_DIR
-
Alternative path to use to find SSL certificate bundle file.
Type String Default (none) Example:
CA_BUNDLE_DIR='/etc/ssl/certs/custom/'
Find and use data
To find your integration data in Infrastructure, go to infrastructure.newrelic.com > Integrations > On-host integrations and select one of the Apache integration links.
In New Relic Insights, Apache data is attached to the ApacheSample
event type.
For more on how to find and use your data, see Understand integration data.
Metric data
The Apache integration collects the following metric data attributes. Each metric name is prefixed with a category indicator and a period, such as net.
or server.
.
Name | Description |
---|---|
net.bytesPerSecond |
Rate of the number of bytes served, in bytes per second. |
net.requestsPerSecond |
Rate of the number of client requests, in requests per second. |
server.busyWorkers |
Current number of busy workers. |
server.idleWorkers |
Current number of idle workers. |
server.scoreboard.closingWorkers |
Current number of workers closing TCP connection after serving the response. |
server.scoreboard.dnsLookupWorkers |
Current number of workers performing a DNS lookup. |
server.scoreboard.finishingWorkers |
Current number of workers gracefully finishing. |
server.scoreboard.idleCleanupWorkers |
Current number of idle workers ready for cleanup. |
server.scoreboard.keepAliveWorkers |
Current number of workers maintaining a keep-alive connection. |
server.scoreboard.loggingWorkers |
Current number of workers that are logging. |
server.scoreboard.readingWorkers |
Current number of workers reading requests (headers or body). |
server.scoreboard.startingWorkers |
Current number of workers that are starting up. |
server.scoreboard.totalWorkers |
Total number of workers available. Workers that are not needed to process requests may not be started. |
server.scoreboard.writingWorkers |
Current number of workers that are writing. |
Inventory data
Inventory data captures the version numbers from running Apache and from all loaded Apache modules, and adds those version numbers under the config/apache
namespace. For more about inventory data, see Understand integration data.
System metadata
Besides the standard attributes collected by the Infrastructure agent, the integration collects inventory data associated with the ApacheSample
Insights event type:
Name | Description |
---|---|
software.version |
The version of the Apache server. Example: Apache/2.4.7 (Ubuntu) . |
Troubleshooting
- Problem accessing HTTPS endpoint for Apache
-
If you are having issues accessing the HTTPS endpoint for Apache, here are two possible solutions:
-
Although you cannot ignore the SSL certification, you can set the config file parameters
ca_bundle_file
andca_bundle_dir
to point to an unsigned certificate in the Apache config file. Example:instances: - name: apache-server-metrics command: metrics arguments: status_url: http://127.0.0.1/server-status?auto ca_bundle_file: /etc/newrelic-infra/integrations.d/ssl/b2b.ca-bundle
An example using
ca_bundle_dir
:ca_bundle_dir: /etc/newrelic-infra/integrations.d/ssl
- Alternatively, you can use HTTP instead of HTTPS.
-