安装php扩展
1 2 3 4 5 | 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,其他系统可以用相应的命令进行安装
1 | yum install go |
因为目前go的grpc依赖的地址发生了变化,所以,如果此时直接进行后续的安装,会出现错误
go: google.golang.org/[email protected]: 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)
所以,我们需要先变更一下依赖安装的方式
1 2 3 4 | 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
1 2 3 | 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的最下面增加如下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ; 加载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启动服务
1 2 | cd /usr/lib/systemd/system vim sky-php-agent.service |
将如下内容复制进去,并保存
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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 |
启用刚刚添加的服务
1 | systemctl enable sky-php-agent.service |
启动服务
1 | systemctl start sky-php-agent |
查看服务状态
1 | systemctl status sky-php-agent -l |
停止服务
1 | systemctl stop sky-php-agent |