Skywalking PHP客户端编译安装 OpenTracing 链路追踪

Skywalking PHP客户端

其实就是一个PHP扩展,按照官方说明来安装就行,
不要相信网上乱七八糟的说法,网上说需要安装report client我搞了半天没明白是啥,
问作者,作者回答不需要这玩意。

本段内容2020-12-30更新:github官方更新了安装方法,跟下文原来的版本大同小异,在此提供一下最新的grpc,链接:https://pan.baidu.com/s/1ZRY3AnM438asyh9dyUHciw 提取码:job7 其他按照官方文档即可;
如不熟悉,可先参考下文旧版的方式

安装skywalking扩展官方文档https://github.com/SkyAPM/SkyAPM-php-sdk/blob/master/docs/install.md
因为墙的原因,下载goole子模块会失败,在此分享Protobuf、GRPC的源码百度网盘地址:链接:https://pan.baidu.com/s/1KA1F0syeVs9aGY_e9HZsQw 提取码:01js 链接:https://pan.baidu.com/s/1XIkohUC3EVTEIyHCCx950w 提取码:7oej,下载完成后,可以scp或者共享文件夹的方式传到Linux机器
(顺便说下windows解压缩工具 7z 很好用)

我的环境

ubuntu 18.04
PHP 7.2.24-0ubuntu0.18.04.7
gcc version 7.5.0
cmake 3.18
swoole 4.5.8
skywalking 4.1.1

注意gcc和cmake的版本,越高越好,太低会失败

安装流程

下文中$符号开始的命令表示需要执行的

Install Protobuf

$ sudo apt-get install autoconf automake libtool curl make g++ unzip
# 先下载protobuf文件,我上文分享到百度网盘的,然后解压执行下面的操作
$ cd protobuf
$ ./autogen.sh
$ ./configure
$ make -j$(nproc) # 此过程耗时
$ make check # 此过程耗时,有一个test FAIL也没问题
$ sudo make install
$ sudo ldconfig # refresh shared library cache.

Install GRPC

$ sudo apt-get install build-essential autoconf libtool pkg-config cmake
# 先下载grpc文件,我上文分享到百度网盘的,然后解压执行下面的操作
$ cd grpc
$ mkdir -p cmake/build
$ cd cmake/build
$ cmake ../.. -DBUILD_SHARED_LIBS=ON -DgRPC_INSTALL=ON
$ make -j$(nproc) # 此过程耗时
$ sudo make install
$ make clean
$ sudo ldconfig

Install PHP Extension

$ cd ~
$ curl -Lo v4.1.1.tar.gz https://github.com/SkyAPM/SkyAPM-php-sdk/archive/v4.1.1.tar.gz
$ tar zxvf v4.1.1.tar.gz
$ cd SkyAPM-php-sdk-4.1.1
$ apt install php7.2-dev # 根据自己的php选择版本
$ apt install libcurl4-gnutls-dev # 当make报错curl不存在时安装即可
$ phpize && ./configure && make && make install

如果报错fatal error: curl/curl.h: No such file or directoryapt-get install libcurl4-openssl-dev

安装cmake3.18(当报错时安装)

如果报错configure: error: wrong gpr lib version or lib not found就重新安装cmake,走上一步重新Install GRPC

$ sudo apt install build-essential libssl-dev
$ sudo apt remove --purge cmake
$ # find last stable release at https://github.com/Kitware/CMake/releases and download the source .tar.gz,eg:
$ wget https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
$ tar -zxvf cmake-3.18.4.tar.gz
$ cd cmake-3.18.4
$ ./bootstrap
$ make 
$ sudo make install
$ cmake --version
cmake version 3.18.4 CMake suite maintained and supported by Kitware (kitware.com/cmake).

修改php配置文件

$ php --ini 查看php配置文件,例如我的是 Loaded Configuration File: /etc/php/7.2/cli/php.ini 修改ini

$ vim /etc/php/7.2/cli/php.ini
; Loading extensions in PHP
extension=skywalking.so
; enable skywalking
skywalking.enable = 1
; Set skyWalking collector version (5 or 6 or 7 or 8)
;跟你的skywalking服务一般是skywalking8+elasticsearch7
skywalking.version = 8
; Set app code e.g. MyProjectName
skywalking.app_code = php-sky
; Set grpc address
skywalking.grpc=127.0.0.1:11800

此时如果php -m | grep s报错curl扩展没安装,则apt install php7.2-curl安装自己PHP版本的,然后就成功看到了

$ php -m | grep sky
skywalking

swoole的链路监控到了 ,撒花

搭建skywalking服务,按照官方文档操作就好,

最简单大概就是
官网下载elasticsearch7的tar.gz包,启动 ./bin/elasticsearch
官网下载skywalking-for-es7的包,修改配置storage为es7,启动./bin/start.sh

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 9

您好,请问从“php -m | grep sky”到skywalking页面有数据还需要什么操作呢?
我这里查看拓展安装完成,服务器上另外一个laravel项目也有运行着
file
-但是页面一直没数据。
file

1年前 评论
becage (楼主) 1年前
请多多指教 (作者) 1年前
请多多指教 (作者) 1年前
becage (楼主) 1年前
岛鬼 10个月前
becage (楼主) 10个月前

楼主您好,目前我已经完成了skywalking的安装,并且在面板上已经看到了这个项目,但是请求了该项目http接口在面板上没有看到链路,在服务器直接curl也没有,请问除了skywalking扩展是还需要什么东西么,用的laravel5.8

file

file

4个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!