首頁 > 軟體

php鏈路追蹤框架skywalking介紹

2022-08-25 14:01:37

Skywalking介紹

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的地址

由於公司要上微服務,和異構購語言進行鏈路的追蹤和問題定位選擇了skywalking

目前是5.0.1,由於5.0.1暫不支援swoole,官方說需要等5.1,暫時降級到4.2.0

4.2.0支援swoole

下面是部署檔案

由於4.2採用的是rpc需要安裝rpc元件需要梯子下載,付下載好免費的地址grpc

下載伺服器端
wget https://github.com/apache/skywalking/archive/refs/tags/v8.9.1.tar.gz
tar -zxvf v8.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功能介紹

  • 多種監控手段,可以通過語言探針和service mesh獲得監控的資料
  • 支援多重語言的自動探針,包括JAVA, .NET Core和NodeJS
  • 輕量高效,無需巨量資料平臺和大量的伺服器資源
  • 模組化,UI ,儲存,叢集管理都有多種機制可選
  • 支援告警
  • 優秀的視覺化解決方案

到此這篇關於php鏈路追蹤框架skywalking的使用的文章就介紹到這了,更多相關php skywalking內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com