はじめに
このドキュメントでは、サンプルアプリケーションを使用してRed Hat Enterprise LinuxシステムにAppDynamics Apache Web Server Agentをインストールする方法について説明します。
前提条件
要件
-
RHEL上で実行中のApache HTTP Server(httpd)またはコンテナ化されたApacheサービス
-
インストールおよび設定のためのrootまたはsudoアクセス
-
AppDynamicsコントローラー(SaaSまたはオンプレミス)
-
アクセスクレデンシャル(アカウント名、アクセスキー、コントローラホスト)
使用するコンポーネント
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
AppDynamics Apache Agentは、受信するHTTP要求を可視化し、トランザクション相関ヘッダーをJavaまたはNode.jsエージェントなどのバックエンド層に伝播します。この設定は、分散アーキテクチャで完全なトランザクショントレーサビリティを確認する場合に特に便利です。
設定
ステップ1:エージェントのインストール
- AppDynamicsのダウンロードをご覧ください。
- Web Server Agent for Linux 64-bitの順に選択します。
- ターゲットサーバーまたはDockerビルドコンテキストに.tgzアーカイブをダウンロードします。
ステップ2:設定をApacheに組み込む
ヒント:コードスニペットの詳細を正しい値に変更してください。
# Loading AppD agent SDK
LoadFile /opt/appdynamics-sdk-native/sdk_lib/lib/libzmq.so.5
LoadFile /opt/appdynamics-sdk-native/sdk_lib/lib/libappdynamics_native_sdk.so
# Loading the AppD agent shared library for Apache 2.4
LoadModule appdynamics_module /opt/appdynamics-sdk-native/WebServerAgent/Apache/libmod_appdynamics.so
# Set agent settings here
# Hostname or IP of the AppD controller (using provided controller)
AppDynamicsControllerHost "XXXX"
# AppD account name
AppDynamicsAccountName "XXXX"
# AppD access key
AppDynamicsAccessKey "XXXX"
# Application name
AppDynamicsApplication "XXXX"
# Tier name
AppDynamicsTier "XXXX"
# Node name
AppDynamicsNode "XXXX"
# Enabling web server monitoring
AppDynamicsEnabled ON
# Port to connect with the controller
AppDynamicsControllerPort 443
# Setting SSL on
AppDynamicsControllerSSL ON
# Enabling auto-launch of the appD proxy
AppDynamicsLaunchProxy ON
次に、Apacheのメイン設定を更新して次のファイルを含めます。
echo "Include conf.d/appdynamics_agent.conf" >> /etc/httpd/conf/httpd.conf
ヒント: Dockerfileのサンプル。「関連情報」からサンプルアプリの詳細については、Githubのリンクを参照してください。他のバージョンのApache AppDynamicsエージェントを使用している場合は、それに応じてDockerfileを変更する必要があります。
#Sample Dockerfile
# Start from the Red Hat Universal Base Image with Apache httpd 2.4
FROM --platform=linux/amd64 registry.access.redhat.com/ubi8/httpd-24
# installed required software
USER root
RUN dnf -y update
RUN dnf -y install tar wget nano net-tools procps
# (Optional) Copy your custom web content into the default document root.
COPY index.html /var/www/html/index.html
# Disable the SSL configuration for testing currently. Import the certificate if using SSL
#(rename it so it won't be loaded)
RUN mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.disabled
# Add ServerName directive to suppress the warning
RUN echo "ServerName localhost" >> /etc/httpd/conf/httpd.conf
# AppDynamics configuration
# Copying the custom config file for AppD agent
COPY ./appdynamics_agent.conf /etc/httpd/conf/appdynamics_agent.conf
# Expose HTTP port 8080
EXPOSE 8080
WORKDIR /appd
#Copy the agent files
COPY ./appdynamics-sdk-native-nativeWebServer-64bit-linux-24.11.0.2449.tgz ./
# Extracting the file downloaded
RUN tar -xzvf appdynamics*.tgz -C /opt
# Specifying the path for the required libraries
#ENV LD_LIBRARY_PATH="/opt/appdynamics-sdk-native/sdk_lib/lib/"
ENV LD_LIBRARY_PATH="/opt/appdynamics-sdk-native/sdk_lib/lib/:$LD_LIBRARY_PATH"
# Including the appdynamics config file into the original httpd configuration
RUN echo "Include /etc/httpd/conf/appdynamics_agent.conf" >> /etc/httpd/conf/httpd.conf
# Running apache agent installation script
RUN /opt/appdynamics-sdk-native/install.sh
# Running the httpd server in foreground
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
ステップ3:HTTPDを再起動します
サーバ上で実行している場合はhttpdプロセスを再起動します。Dockerの場合は、エージェントでapacheを起動する際にコンテナを起動することで対処します。
sudo systemctl restart httpd
確認
ステップ1:アプリを起動する
ブラウザでApacheサーバにアクセスします。
http://:80/
またはDocker経由
http://localhost:8080/
ステップ2: AppDynamicsダッシュボードに移動

トラブルシュート
問題
|
考えられる原因
|
解決方法
|
Apacheが再起動しない
|
mod_appdynamics.soへのパスが正しくありません
|
ファイルパスとアクセス許可の検証
|
AppDynamicsにメトリックスがありません
|
コントローラ設定の誤り
|
アクセスキー、ホスト、アカウント名の再確認
|
Apacheログにエージェントアクティビティが表示されない
|
モジュールがロードされない
|
httpdエラーログを確認し、LoadModule行を確認します。
|
ログが生成されない
|
ログ/ディレクトリまたはアクセス許可がありません
|
<agent_install_directory>/logsを確認します。
|
関連情報
サポートが必要な場合
質問がある場合、または問題が発生した場合は、次の詳細情報を含むasupport チケットを作成してください。
- エラーの詳細またはスクリーンショット:特定のエラーメッセージまたは問題のスクリーンショットを提供します。
- 使用するコマンド:問題が発生したときに実行していたコマンドを正確に指定します。
- Apacheエージェントログ:<agent_install_directory>/logsからのエージェントログ(生成されている場合)を提供します。