安装php扩展
cd /data
curl -Lo v3.3.2.tar.gz https://github.com/SkyAPM/SkyAPM-php-sdk/archive/v3.3.2.tar.gz
tar zxvf v3.3.2.tar.gz
cd SkyAPM-php-sdk-3.3.2
/www/server/php/73/bin/phpize && ./configure --with-php-config=/www/server/php/73/bin/php-config && make && make install
我这里用的是宝塔,所以这里的路径是宝塔安装的PHP的路径
安装go解析器和依赖
因为sky-php-agent目前8.0版本,使用了go,默认情况下,linux系统没有安装go,所以需要先进行安装。我这里用的是centos7,其他系统可以用相应的命令进行安装
yum install go
因为目前go的grpc依赖的地址发生了变化,所以,如果此时直接进行后续的安装,会出现错误
go: google.golang.org/grpc@v1.21.1: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
所以,我们需要先变更一下依赖安装的方式
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOPRIVATE=.gitlab.com,.gitee.com
go env -w GOSUMDB=off
go env -w GOSUMDB="sum.golang.google.cn"
安装sky-php-agent
go build -o sky-php-agent cmd/main.go
chmod +x sky-php-agent
cp sky-php-agent /usr/local/bin
修改php.ini配置,并重启php-fpm
在php.ini的最下面增加如下内容
; 加载skywalking扩展
extension=skywalking.so
; 启用skywalking
skywalking.enable = 1
; 设置skywalking的版本 (5 or 6 or 7 or 8)
skywalking.version = 8
; 设置当前受控端服务器在skywalking的标识
skywalking.app_code = MyProjectName
; 默认sock文件路径为 /tmp/sky-agent.sock
; 无论是不是变更默认路径,都要确保php对该路径有可读写权限*
skywalking.sock_path=/www/server/php/73/var/run/sky-agent.sock
添加sky-php-agent启动服务
cd /usr/lib/systemd/system
vim sky-php-agent.service
将如下内容复制进去,并保存
[Unit]
Description=The SkyWalking PHP-Agent Process Manager
After=syslog.target network.target
[Service]
Type=simple
# grpc的地址是skywalking服务地址,且确保受控服务器能够访问。socket路径为php.ini配置文件中的sock文件路径
ExecStart=/usr/local/bin/sky-php-agent --grpc=172.18.89.134:11800 --sky-version=8 --socket=/www/server/php/73/var/run/sky-agent.sock
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用刚刚添加的服务
systemctl enable sky-php-agent.service
启动服务
systemctl start sky-php-agent
查看服务状态
systemctl status sky-php-agent -l
停止服务
systemctl stop sky-php-agent