Ubuntu における PHP エージェント

SixthSense 用の PHP エージェントにより、以下の機能が提供されます。

  • アプリケーションを監視し、パフォーマンスの問題の根本原因を特定して見つけやすくします。
  • ビジネスデータを収集および分析することで、エージェントのパフォーマンスを拡張し、顧客体験の向上を支援します。
  • データ主導のビジネス上の意思決定を支援します。

前提条件

  • エージェントのインストールに必要な事前準備については、「エージェントのインストールに必要な事前準備の確認」を参照してください。
  • SixthSense エージェント:カスタマーサポートから提供されます。
  • SixthSense コレクターの URL/IP(カスタマーサポートから提供されるテナント URL)
  • SixthSense ポータルからのアクセス トークン。トークンへのアクセスについては 「SixthSense ポータルを利用開始する」にある アクセス トークンの取得 を参照してください。
  • 変数: SixthSenseポータルからのアクセストークン。 「SixthSense ポータルを利用開始する」の アクセストークンへのアクセス を参照してください。
note

エージェントがリクエストを傍受できるように、リクエストは php-fpm で処理する必要があります。

Debian パッケージからのインストール

  1. エージェントをセットアップするマシンに Debian パッケージをダウンロードします(ファイルはカスタマーサポートと共有されます)。 Debian パッケージは、PHP のバージョンと OS に依存します。同様の環境(アーキテクチャ、OS、PHP のバージョンの詳細を共有)でビルドされたパッケージをインストールする必要があります。
  2. 依存関係をインストールします。

apt install libboost-all-dev

apt install php<php-version>-curl

  1. Debianパッケージをインストールします。

dpkg -i <sixthsense-agent-name>.deb

Debian パッケージの削除

dpkg -r ss-php-agent

note

パッケージにより、php 拡張(.so ファイル)と GRPC/protobuf (.so) ファイルが /usr/local/lib ディレクトリにインストールされます。既存の GRPC、protobuf .so ファイルは上書きされます。パッケージを削除すると、インストールされたすべてのファイルが削除されます。

上記の方法でうまくいかない場合は、以下の手順にてソースからインストールします。

PHP エージェントのダウンロード

  1. カスタマーサポートから提供される PHP エージェントをダウンロードします。
  2. Ubuntu に gPRC と Protobuf をインストールします。

PHP エージェントのインストール

PHP エージェントは PHP 拡張モジュールとしてインストールされ、システムからのすべての着信および発信コールのインストルメンテーションを担当します。そのため、ソースファイルから PHP 拡張モジュールをビルドする必要があります。以下の手順は、エージェントのビルドに有用です。

Ubuntu に gPRC と Protobuf をインストールする

note

cmake のバージョン3.13 以降が必要です。

cmakeのバージョンが満たされていない場合は、次のコマンドを使用して手動でインストールします。

curl -L -o cmake-3.19.1.tar.gz https://github.com/Kitware/CMake/releases/download/v3.19.1/cmake-3.19.1.tar.gz \
&& tar zxf cmake-3.19.1.tar.gz \
&& cd cmake-3.19.1 && ./bootstrap && make -j$(nproc) && make install
GRPC_RELEASE_TAG=ss-php-agent
GIT_SSL_NO_VERIFY=1
sudo apt-get update && sudo apt-get install -y \
autoconf automake libtool curl make g++ unzip \
build-essential libtool pkg-config \
git ca-certificates cmake libcurl4-openssl-dev re2c
sudo git clone --depth 1 -b ${GRPC_RELEASE_TAG} https://artifacts-observability.sixthsense.rakuten.com/sixthsense-repositories/grpc.git /var/local/git/grpc
cd /var/local/git/grpc && sudo git config --global url.https://github.com/.insteadOf git://github.com/
cd /var/local/git/grpc && sudo git submodule update --init --recursive
cd /var/local/git/grpc/third_party/protobuf && sudo ./autogen.sh && sudo ./configure && sudo make -j$(nproc) && sudo make install && sudo make clean && sudo ldconfig
cd /var/local/git/grpc && sudo mkdir -p cmake/build && cd cmake/build && sudo cmake ../.. -DBUILD_SHARED_LIBS=ON -DgRPC_INSTALL=ON && sudo make -j$(nproc) && sudo make install && sudo make clean && sudo ldconfig

Protobuf をインストールした後、以下の操作を行います。

  • LD_LIBRARY_PATH をエクスポートします。エクスポート先は、$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64 とします。
  • LD_RUN_PATH をエクスポートします。エクスポート先は、$LD_RUN_PATH:/usr/local/lib:/usr/local/lib64 とします。

Ubuntu に SixthSense エージェントをインストールする

  • SixthSense エージェントを /tmp ディレクトリにコピーし、以下のコマンドを使用してエージェントをビルドおよびインストールします。
cd /tmp/sixthsense-php-agent && sudo phpize && sudo ./configure && sudo make && sudo make install
sudo cp php.ini/Php extension directory base/conf.d/ext-skywalking.ini
  • $PHP_INI_DIR/conf.d/ext-skywalking.ini ファイルを開き、以下のフィールドを更新します。
PHP
;;;;;;;;;;;;;;;;;;;
; About php.ini ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.
skywalking
extension=skywalking.so
skywalking.app_code = <Your_service_name>
skywalking.authentication = <Your_auth_token>
skywalking.teamID = <Your_team_id>
skywalking.enable = 1
skywalking.version = 8
skywalking.grpc = grpc-collector-observability.sixthsense.rakuten.com:443 (Not applicable for OneCloud Platform)
skywalking.log_enable = 1
skywalking.grpc_tls_enable = 1
skywalking.grpc_tls_pem_root_certs=
skywalking.grpc_tls_pem_private_key=
skywalking.grpc_tls_pem_cert_chain=
skywalking.proxy= <proxy url >

以上の手順にて、エージェントがインストールおよび初期化されます。これにより、アプリケーションに流れるトラフィックがキャプチャされ、SixthSense ダッシュボードで表示できるようになります。