Apache monitoring integration

Our Apache integration sends performance metrics and inventory data from your Apache web server to the New Relic platform. You can view pre-built dashboards of your Apache metric data, create alert policies, and create your own custom queries and charts.

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).

Read on to install the integration, and to see what data we collect.

Compatibility and requirements

Our integration is compatible with Apache versions 2.2 or 2.4.

Before installing the integration, make sure that you meet the following requirements:

Install and activate

To install the Apache integration, follow the instructions for your environment:

ECS

See Monitor service running on ECS.

Kubernetes

See Monitor service running on Kubernetes.

Linux
  1. Follow the instructions for installing an integration, using the file name nri-apache.
  2. Change directory to the integration's folder:

    cd /etc/newrelic-infra/integrations.d
    
  3. Copy of the sample configuration file:

    sudo cp apache-config.yml.sample apache-config.yml
    
  4. Edit the apache-config.yml file as described in the configuration settings.

  5. Restart the infrastructure agent.

Additional notes:

Configure the integration

The Apache integration configuration is how you can set required login credentials and configure how data is collected. Which options you change depend on your setup and preference.

There are several ways to configure the integration, depending on how it was installed:

Configuration options include:

  • 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.
    • status_url: The URL is used to attach the inventory data to the same Apache instance for which we collect metrics data.
  • labels: The env label controls the environment attribute. The default value is production.

For more about general configuration structure, see Configuration.

Activate remote monitoring

The remote_monitoring parameter enables remote monitoring and multi-tenancy for this integration.

Activating remote_monitoring may change some attributes and/or affect your configured alerts. For more information, see remote monitoring in on-host integrations.

Infrastructure agent version 1.2.25 or higher is required to use remote_monitoring.

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.

With secrets management, you can configure on-host integrations with New Relic infrastructure's agent to use sensitive data (such as passwords) without having to write them as plain text into the integration's configuration file. For more information, see Secrets management.

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

Data from this service is reported to an integration dashboard.

Apache data is attached to the ApacheSample event type. You can query this data for troubleshooting purposes or to create charts and dashboards.

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 data.

System metadata

Besides the standard attributes collected by the infrastructure agent, the integration collects inventory data associated with the ApacheSample 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 and ca_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.

Check the source code

This integration is open source software. That means you can browse its source code and send improvements, or create your own fork and build it.

For more help

If you need more help, check out these support and learning resources: