Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。
Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。
skywalking php的地址 github入口
由于公司要上微服务,和异构购语言进行链路的追踪和问题定位选择了skywalking
目前是5.0.1,由于5.0.1暂不支持swoole,官方说需要等5.1,暂时降级到4.2.0

4.2.0支持swoole
下面是部署文档
由于4.2采用的是rpc需要安装rpc组件需要梯子下载,付下载好免费的地址grpc
- 下载服务端
- wget https://archive.apache.org/dist/skywalking/8.9.1/apache-skywalking-apm-8.9.1.tar.gz
-
- tar -zxvf apache-skywalking-apm-8.9.1.tar.gz
-
- cd apache-skywalking-apm-bin
- #启动
- bin/startup.sh
-
-
-
- 安装php的扩展
- yum install boost-devel
- #先安装grpc 必须要安装cmake
- $ git clone --depth 1 -b v1.34.x https://github.com/grpc/grpc.git /var/local/git/grpc
- $ cd /var/local/git/grpc
- $ git submodule update --init --recursive
- $ mkdir -p cmake/build
- $ cd cmake/build
- $ cmake ../..
- $ make -j$(nproc)
-
- #下载扩展
- wget https://github.com/SkyAPM/SkyAPM-php-sdk/archive/v4.2.0.tar.gz
- tar zxvf v4.2.0.tar.gz
- cd SkyAPM-php-sdk-4.2.0
- phpize
- ./configure --with-grpc="/var/local/git/grpc"
- make
- sudo make install
-
- 添加配置到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.version = 8
-
- ; Set app code e.g. MyProjectName
- skywalking.app_code = php_hyperf_agent
-
- ; Set grpc address
- skywalking.grpc=127.0.0.1:11800
-
- skywalking.log_level = enable
- skywalking.log_path = /tmp/skywalking-php.log
- 重启php
- systemctl restart php8-fpm
-
- 安装elastic7
- cd /mnt/tools
-
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-linux-x86_64.tar.gz
-
- tar -zvxf elasticsearch-7.17.4-linux-x86_64.tar.gz
-
- cd elasticsearch-7.17.4/
-
- vim config/elasticsearch.yml
-
- + network.host: 0.0.0.0
- + http.port: 9200
- + node.name: node-1
-
- + discovery.seed_hosts: ["node-1"]
- + cluster.initial_master_nodes: ["node-1"]
- + ingest.geoip.downloader.enabled: false
-
- vim /etc/sysctl.conf
- #添加
- vm.max_map_count=655360
-
- vim config/jvm.options
- + -Xms1g
- + -Xmx1g
-
- vim /etc/security/limits.conf
- * soft nproc 4096
- * hard nproc 4096
-
- 执行:sysctl -p
-
- #添加用户
- useradd elastic
- passwd elastic
- #密码 123456
-
- vim /etc/sudoers
- #新增
- elastic ALL=(ALL) ALL
-
- chown -R elastic:elastic elasticsearch-7.17.4
-
- 切换用户启动
-
- bin/elasticsearch
-
- # 后台启动
- bin/elasticsearch -d
- 加入supervisorctl
- vim /etc/supervisord.d/elastic.ini
-
-
- [program:elastic]
- command=su -c "/www/tools/elasticsearch-7.17.4/bin//elasticsearch" elastic
- directory=/www/tools/elasticsearch-7.17.4/
- autorestart=true
- startsecs=3
- startretries=3
- stdout_logfile=/www/tools/elasticsearch-7.17.4/logs/elastic.out.log
- stderr_logfile=/www/tools/elasticsearch-7.17.4/logs/elastic.err.log
- stdout_logfile_maxbytes=2MB
- stderr_logfile_maxbytes=2MB
- user=root
- priority=999
- numprocs=1
- supervisorctl update



Skywalking功能介绍