cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Robert.Kane
AppDynamics Team

This article is intended for anyone installing the Apache Agent.  Please make sure the following 11 prerequisites are in place before installing the agent:

  1. Ensure that SELinux is not active. Issue the command sestatus at the host command prompt. If SELinux is active and in enforcing mode, you will need to disable it before continuing. Use the command sudo setenforce 0 to temporarily disable SELinux. 

NOTE | If your system uses SELInux, you will need to create an appropriate policy file in order to allow the Agent and Proxy task to access the necessary log and configuration files.

  1. Determine what the Apache mode is. Apache can be configured with a number of different modes, including Event, PreFork, or Worker mode. See here for more details on determining the mode your system is configured for: https://www.tecmint.com/check-apache-modules-enabled/ 

  2. If you are running in Worker mode, make sure the ServerLimit and ThreadsPerChild directives are valid. The product of the two (when you multiple the two directive settings together) must be less than 4033. Update the httpd.conf (or the apache2.conf file) to reflect this.

  3. The last line of the httpd.conf file must include the appdynamics_agent.conf file explicitly.  DO NOT RELY on metacharacters or global matching; the file must not be located where other include statements might apply.

  4. Determine the Apache worker process userid. With the Apache server running, issue the command ps -ef | grep httpd (use apache2 if httpd is not the name of the server binary). You will see a "root" process id and several "worker" child processes listed in the output.  The userid associated with the children of the parent process is the Apache worker process id. This can be set explicitly with the Apache User directive.  See here for more details: https://httpd.apache.org/docs/2.4/mod/mod_unixd.html#user 

  5. Make sure that the number of available file descriptors is at least 10000 (10K) for both the Proxy and the Apache worker process userids. Edit the /etc/security/limits.conf Edit the file to verify that this is the case.  There should be both a hard and soft setting for the nofiles entries for the appropriate userid(s).

  6. Ensure that the Apache tier has not been previously registered as the incorrect type. If there is already a tier that matches the AppDynamicsTierName value, and its type is not WebServer (i.e. the icon shown isn't a green and blue globe in front of a gray server rack) then most likely the Machine Agent has incorrectly registered the tier. Stop the Machine Agent & Proxy task, delete the tier at the Controller UI, then restart the Proxy to allow it to register the tier as the appropriate type (Apache). Once the tier is registered, restart the Machine Agent. You will want to make sure that the Apache tiers are first registered before using the Machine Agent, but once the tier is registered, you can start both agents in any order.

  7. The default (OOTB) match rule for BTs will be in effect, which creates BTs based on the first two segments of the URL. Once the Agent begins reporting and there is load on the server, you will see BTs register. To avoid BT Overflow, you'll want to make sure that you create the appropriate custom match rules for the Apache agent. For more details on avoiding BT Overflow, please see the KB article here: https://community.appdynamics.com/t5/Knowledge-Base/How-do-I-avoid-quot-BT-OverFlow-quot-within-the-...

  8. Make sure that the Proxy command has been issued. Use the command ps -ef | grep proxy | grep WEB_SERVER | grep -v grep to make sure that there is only one Proxy active. Our best practices suggest you run the Proxy as the same userid as the Apache server worker process. At a minimum, the Proxy task should be started at host boot-up and remain active throughout the life of the host. There should be no need to restart the Proxy task unless the appdynamics_agent.conf file changes. It is possible to stop/start the webserver without affecting it. Please see here for more details about launching the Proxy: https://docs.appdynamics.com/display/PRO45/Install+the+Apache+Agent#InstalltheApacheAgent-LaunchtheP...

  9. The default (OOTB) match rule for BTs will be in effect, which creates BTs based on the first two segments of the URL. Once the Agent begins reporting, and there is load on the server, you will see BTs register.  To avoid BT Overflow, you'll want to make sure that you create the appropriate custom match rules for the Apache agent.  For more details on avoiding BT Overflow, pleas see the KB article here: https://community.appdynamics.com/t5/Knowledge-Base/How-do-I-avoid-quot-BT-OverFlow-quot-within-the-...

  10. Apply load to the system. Note that there is a several-minute delay between the Agent and the Controller. Make sure the time limit is set to "Last 5 minute" and that you wait at least several minutes for information to be reflected. Any changes made to the configuration or Controller UI will require some time to propagate through the system. 
Comments

I have installed the apache agent on server running apache2.2, however I am getting error when trying to restart apache, Cannot load ..../libappdynamics_native_sdk.so into server: libcrypt.so.2: cannot open shared object file: No such file or directory.   Path to libappdynamics_native_sdk.so is fine in the appdynamics_agent.conf file, and using libmod_appdynamics22.so.

Has anyone seen this behavior with apach2.2?

Claudia.Landivar
Community Manager

Hello, @Marcie.Sirbaugh

Have you had luck chasing down the root of the issue with Apache 2.2? I'm looking for someone to weigh in. In the meantime, I thought I'd post this documentation link for reference in this conversation:
Configure the Apache Server for AppDynamics 

Claudia Landivar, Community Manager & Editor

Yes, we were able to create a link to fix the issue: ln -s libcrypt-2.17.so libcrypt.so.2, able to stop and start apache successfully.

Claudia.Landivar
Community Manager

Great news, @Marcie.Sirbaugh!

Version history
Last update:
‎10-24-2022 08:42 AM
Updated by: