PHP エージェント(CentOS)

前提条件

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

エージェントのダウンロードとインストール

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

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

依存関係のインストール

yum install boost-devel
yum install php-curl

RPM パッケージのインストール

rpm -i <sixthsense-agent-name>.rpm

RPM パッケージの削除

rpm -e ss-php-agent
note
  • このパッケージは、PHP 拡張機能 (.so ファイル) および GRPC/protobuf .so ファイルを /usr/local/lib ディレクトリにインストールします。
  • 既存の GRPC、protobuf の .so ファイルは上書きされます。パッケージを削除すると、インストールされたすべてのファイルが削除されます。
  • PHP エージェント RPM パッケージを削除した後、構成用の ini ファイルを削除します。

パッケージによって追加されたファイルの一覧を表示するには、次のコマンドを実行します。

rpm -qlp <rpm-file-name>

環境変数:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64

エージェントの確認には、以下のコマンドを実行します。

ldd <path-to-php-extension>/skywalking.so

不足している共有ライブラリがないか確認し、PHP エージェントの ini ファイルを構成します。

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

ソースからエージェントをインストールする

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

CentOS に gPRC とプロトコルバッファをインストールする

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
sudo yum install -y git make openssl unzip curl libcurl-devel autoconf gcc-c++ automake libtool openssl-devel epel-release cmake3
sudo yum install -y centos-release-scl && yum install -y devtoolset-7 scl-utils # (this is to change gcc version to 7)
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 cmake3 ../.. -DBUILD_SHARED_LIBS=ON -DgRPC_INSTALL=ON && sudo make -j$(nproc) && sudo make install && sudo make clean && sudo ldconfig

CentOS に 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 ファイルの設定

sixsense.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