Docker環境インストール
Dockerコンテナベースで実行するPHPアプリケーションに、WhaTapモニタリングエージェントを適用し、コンテナイメージをパッケージングする過程を次のように案内します。
EKS Fargateは、対応予定です。
エージェントダウンロード
PHPアプリケーションのDockerイメージビルド時、whatap-phpパッケージをインストールしてください。
- Red Hat/CentOS
- Debian/Ubuntu
- Amazon Linux
- Alpine Linux
RUN rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
RUN yum install -y whatap-php
RUN wget https://repo.whatap.io/debian/release.gpg -O -| apt-key add -
RUN wget https://repo.whatap.io/debian/whatap-repo_1.0_all.deb
RUN dpkg -i whatap-repo_1.0_all.deb
RUN apt-get update
RUN apt-get install -y whatap-php
RUN rpm --import https://repo.whatap.io/centos/release.gpg
RUN echo "[whatap]" | tee /etc/yum.repos.d/whatap.repo > /dev/null
RUN echo "name=whatap packages for enterprise linux" | tee -a /etc/yum.repos.d/whatap.repo > /dev/null
RUN echo "baseurl=https://repo.whatap.io/centos/latest/\$basearch" | tee -a /etc/yum.repos.d/whatap.repo > /dev/null
RUN echo "enabled=1" | tee -a /etc/yum.repos.d/whatap.repo > /dev/null
RUN echo "gpgcheck=0" | tee -a /etc/yum.repos.d/whatap.repo > /dev/null
RUN yum install -y whatap-php
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-php.tar.gz
RUN tar -xvzf whatap-php.tar.gz -C /
エージェント設定
-
次のコマンドを使用してインストールスクリプトを設定してください。 WhaTapアクセスキー、サーバーIP情報を入力すると、PHP環境情報を自動的に収集します。
RUN (echo "[アクセスキー]"; echo "[サーバーIP]")|/usr/whatap/php/install.sh
-
次のような方法で、PHP環境情報を直接入力することもできます。
# RUN /usr/whatap/php/install.sh -l [アクセスキー] -s [サーバーIP] -v [PHPバージョンx.x] -i [php.iniのフルパス] -p [プロセス名] -z [thread safety]
RUN /usr/whatap/php/install.sh -l xxxxx -s 1.1.1.1/2.2.2.2 -v 7.0 -i /etc/php.ini -p httpd [-z]
アクセスキーがDocker Public状態のイメ ージにさらされないように注意してください。
コンテナ環境変数の設定
Dockerビルド後、Kubernetes環境内のコンテナ環境変数を設定してください。 アプリケーションリリーズyamlファイルに次の内容を追加してください。
env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
次の例を参照してください。
apiVersion: v1
kind: Pod
metadata:
name: # Pod Name
labels: # Pod Labels
spec:
containers:
env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
環境変数の役割
-
NODE_IP
: 現在のPodがホストされているノード(Node)のIPアドレスを収集します。 -
NODE_NAME
: 現在Podが実行中のノードの名前を収集します。 -
POD_NAME
: 現在のPodの名前を収集します。
エージェント実行
- Command
- Supervisor
アプリケーション開始コマンドの前にwhatap-php開始コマンドを追加してください。
sh -c "/usr/whatap/php/whatap-php start && [アプリケーション開始コマンド]"
Supervisorでアプリケーションを起動する場合は、次のコードを参考してwhatap-phpサービスを追加してください。
RUN echo "[program:whatap-php]" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "command = /usr/whatap/php/whatap-php start" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "user = root" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "startsecs = 0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autostart = true" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autorestart = false" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile = /dev/stdout" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile = /dev/stderr" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
次のコマンドを実行して、WhaTapサービスが正常に実行されているかを確認してください。 アプリケーションサーバーが実行されると、エージェントがモニタリング情報を収集し始めます。
ps -ef | grep whatap_php
エージェントのインストール確認
エージェントが正常にインストールされたかを確認するには、ダッシュボード > ダッシュボードメニューへ移動してください。
ダウンロードしたファイルをインストールした後にダッシュボードメニューからエージェントが表示されない場合は、次の事項を確認してください。
-
コンテナで
ps -ef | grep whatap
コマンドを実行し、エージェントオプションを適用されていることを確認してください。 -
該当コンテナ内の_/usr/whatap/php/logs_経路の内容を確認してください。 エージェントログは、logs/whatap-
{boot、またはinstall}
-yyyymmdd.log 形式のファイル名として出力されます。