PHP エージェント(Alpine)

前提条件

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

ソースからのエージェントのインストール

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

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

note

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

GRPC_RELEASE_TAG=ss-php-agent
GIT_SSL_NO_VERIFY=1
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64
LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib:/usr/local/lib64
set -ex && apk --update add --no-cache git ca-certificates autoconf automake libtool g++ make file linux-headers file re2c pkgconf openssl openssl-dev curl-dev cmake
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 && git config --global url.https://github.com/.insteadOf git://github.com/
cd /var/local/git/grpc && git submodule update --init --recursive
cd /var/local/git/grpc/third_party/protobuf && ./autogen.sh
cd /var/local/git/grpc/third_party/protobuf && ./configure
cd /var/local/git/grpc/third_party/protobuf && make -j$(nproc)
cd /var/local/git/grpc/third_party/protobuf && make install
# RUN cd /var/local/git/grpc/third_party/protobuf && ldconfig
cd /var/local/git/grpc && mkdir -p cmake/build && cd cmake/build && cmake ../.. -DBUILD_SHARED_LIBS=ON -DgRPC_INSTALL=ON && make -j$(nproc) && make install
# add #include <limit> header in c++ file if we are getting error related to max function
./sixthsense-php-agent.tar /var/local/git/
# add apk boost boost-dev if u r getting error related to no such file or directory
cd /var/local/git/sixthsense-php-agent && phpize && ./configure && make && make install
cd /var/local/git/sixthsense-php-agent && cp php.ini /usr/local/etc/php/conf.d/ext-skywalking.ini

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

  1. エージェントをビルドしてインストールするため、SixthSense エージェントを /tmp ディレクトリにコピーします。
  2. phpize コマンドが動作していることを確認します。動作していない場合は、PHP バージョン用の php-devel をインストールします。
scl enable devtoolset-7 bash # (to change gcc version to v7)
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 ファイルの設定

sixthsense.ini ファイルを開き、以下のフィールドを更新します(php --ini で ini ファイルを表示します)。

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 url>
skywalking.log_enable = 1
skywalking.proxy = http://35.200.147.154:3128
skywalking.http = https://http-collector-observability.sixthsense.rakuten.com/oap
skywalking.segmentSize = 3000
skywalking.httpTimeout = 30
skywalking.segmentFlushInterval = 3
skywalking.proxy= <proxy url >

OneCloud Platform の場合は、次のコマンドを使用します。

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.log_enable = 1
In case of restricted environment, set the following parameters in the config.ini file:
skywalking.proxy = <proxy used for your internet access>
skywalking.http = https://sixthsense-backend.jpe2-caas1-prod1.caas.jpe2b.r-local.net/oap/
skywalking.segmentSize = 3000
skywalking.httpTimeout = 30
skywalking.segmentFlushInterval = 3
skywalking.proxy= <proxy url >

php-fpm を実行するには、以下のコマンドを使用します。

sudo php-fpm --nodaemonize & (won't work without the nodaemonize option)

systemctl を使用して実行中 にlibprotobuf.so.3.12.2.0 ファイルが見つからずエラーが表示された場合は、次のコマンドを実行してください。

ln /usr/local/lib64/libprotobuf.so.3.12.2.0 /usr/lib64/libprotobuf.so.3.12.2.0