php agent,linux安装sky-php-agent(skywalking php agent)

商夜洛
2023-12-01

安装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

 类似资料: