本文将为您介绍如何使用 Skywalking 协议上报 PHP 应用数据。
说明
操作前提
gcc/g++ 编译器:大于 4.9 版本。
PHP:大于 7.0 版本。
Cmake 编译器:安装大于 3.20.0 版本的 cmake ,操作如下:
wget https://cmake.org/files/v3.20/cmake-3.20.0.tar.gztar -zxvf cmake-3.20.0.tar.gzcd cmake-3.20.0./bootstrapmakemake install
说明
yum 安装的版本也较低,因此采用从源码安装方式。
操作步骤
步骤1:获取接入点和 Token
进入 应用性能监控控制台 应用监控 > 应用列表页面,单击接入应用,在接入应用时选择 PHP 语言与 SkyWalking 的数据采集方式。在选择接入方式步骤获取您的接入点和 Token,如下图所示:
步骤2:安装 GRPC
wget https://apm-php-depend-src-1258344699.cos.ap-guangzhou.myqcloud.com/grpc.submodule.tar.gztar -xzf grpc.submodule.tar.gzcd grpc/mkdir -p cmake/buildcd cmake/buildcmake ../..make -j$(nproc)ldconfig# protobufcd third_party/protobuf/./autogen.sh./configuremake -j$(nproc)make installldconfig
步骤3:编译 skywalking.so 扩展
1. 编译 skywalking.so 扩展需要提前安装依赖库。(已安装可以忽略)
# yum install boost-devel# yum install autoconf
2. 配置境变量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib:/usr/local/lib64
3. 编译 skywalking.so 扩展:
wget https://apm-php-depend-src-1258344699.cos.ap-guangzhou.myqcloud.com/SkyAPM-php-sdk.tar.gzcd SkyAPM-php-sdk//usr/local/services/php7/bin/phpize./configure --with-grpc-src="/本机路径/grpc" --with-php-config="/本机路径/php7/bin/php-config"makemake install
说明
步骤4:修改 php.ini 配置文件
修改 php.ini 如下配置项:
[skywalking]; 添加扩展extension=skywalking.so; 设置应用名称skywalking.app_code = php_misterli_test; 开启收集器skywalking.enable = 1; 设置skyWalking服务版本skywalking.version = 8; 设置skyWalking服务地址skywalking.grpc = ap-guangzhou.apm.tencentcs.com:11800; 设置鉴权的tokenskywalking.authentication = jnNURCx*******biKzguskywalking.error_handler_enable = 0
说明
步骤5:重启 php-fpm
方法一:将修改 php-fpm.conf 的配置项中启动方式为 daemonize = no 。
方法二:使用 nohup 命令重启 php-fpm:
nohup /usr/local/services/php7/sbin/php-fpm > /usr/local/services/php7/log/php-fpm-output.log 2>&1 &
步骤6:请求后端服务验证是否接入成功
1. 请求您的服务,下列以用 Laravel 框架部署了一个简单的 HTTP 服务为例:
# curl "http://test.skywalking.com/getHelloWorld"hello, skywalking
2. 使用 tcpdump 命令查看 11800 端口是否有数据包发送:
# tcpdump -i any -A -s0 -n -nn -l port 11800dropped privs to tcpdumptcpdump: verbose output suppressed, use -v or -vv for full protocol decode 262144 bytes
3. 在 应用性能监控控制台 应用监控 > 应用列表和应用详情查看是否有上报数据。