🖖 I’m a system architec|

没有猫的猫奴

园龄:4年7个月粉丝:1关注:3

20220320作业分布式链路追踪skywalking

1.skywalking组建简介

skywalking-ui: 前端服务,端口号8080。

skywalking-ops:可观测性分析平台,11800为数据写入端口,12800为查询端口。

es7: 9200为elasticsearch的数据读写端口,skywalking支持的存储有elasticsearch,h2,mysql,tidb,influxdb,postgresql等

agent: app服务器部署skywalking agent,用于收集app中的访问请求

2.部署skywalking

下载软件包:
wget https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm-es7-8.7.0.tar.gz
tar -zxf apache-skywalking-apm-es7-8.7.0.tar.gz
cd apache-skywalking-apm-es7-8.7.0
修改 config/application.yml:
	selector: ${SW_STORAGE:elasticsearch7}
	nameSpace: ${SW_NAMESPACE:"magedu"}
	clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.77:9200,192.168.1.78:9200,192.168.1.80:9200}
	./bin/startup.sh 

3.halo博客实现链路追踪案例

由于halo是java服务,则需要apache-skywalking-java-agent(https://archive.apache.org/dist/skywalking/java-agent/8.8.0/apache-skywalking-java-agent-8.8.0.tgz)
skywalking-agent/config/agent.config  需要修改的地方
	agent.namespace=${SW_AGENT_NAMESPACE:magedu}
	agent.service_name=${SW_AGENT_NAME:halo}
	collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.1.77:11800}
启动命令:
	java -javaagent:/apps/halo/skywalking-agent/skywalking-agent.jar -jar /apps/halo/halo-1.4.7.jar

4.tomcat运行jenkins服务

tar -zxf apache-tomcat-8.5.73.tar.gz
mv jenkins.war /apps/skywalking/tomcat
skywalking-agent/config/agent.config  需要修改的地方同3
vim apache-tomcat-8.5.73/bin/catalina.sh  
	CATALINA_OPTS="$CATALINA_OPTS -javaagent:/apps/skywalking/tomcat/skywalking-agent/skywalking-agent.jar";export CATALINA_OPTS
./apache-tomcat-8.5.73/bin/startup.sh 

5.微服务链路追踪

zk搭建过程忽略
dubbo-demo-provider:修改dubbo.properties 
	dubbo.registry.address=zookeeper://192.168.1.77:2181?backup=192.168.1.78:2181,192.168.1.80:2181
skywalking-agent/config/agent.config  需要修改的地方同3
启动命令:java -javaagent:/apps/dubbo-demo-provider-2.1.5/skywalking-agent/skywalking-agent.jar -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -classpath /apps/dubbo-demo-provider-2.1.5/conf:/apps/dubbo-demo-provider-2.1.5/lib/cache-api-0.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/commons-codec-1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/commons-logging-1.1.1.jar:/apps/dubbo-demo-provider-2.1.5/lib/commons-pool-1.5.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/dubbo-2.1.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/dubbo-demo-2.1.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/dubbo-demo-provider-2.1.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/fastjson-1.1.8.jar:/apps/dubbo-demo-provider-2.1.5/lib/gmbal-api-only-3.0.0-b023.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-core-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-framework-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-portunif-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-rcm-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/hessian-4.0.7.jar:/apps/dubbo-demo-provider-2.1.5/lib/hibernate-validator-4.2.0.Final.jar:/apps/dubbo-demo-provider-2.1.5/lib/httpclient-4.1.2.jar:/apps/dubbo-demo-provider-2.1.5/lib/httpcore-4.1.2.jar:/apps/dubbo-demo-provider-2.1.5/lib/javassist-3.15.0-GA.jar:/apps/dubbo-demo-provider-2.1.5/lib/jedis-2.0.0.jar:/apps/dubbo-demo-provider-2.1.5/lib/jetty-6.1.26.jar:/apps/dubbo-demo-provider-2.1.5/lib/jetty-util-6.1.26.jar:/apps/dubbo-demo-provider-2.1.5/lib/jline-0.9.94.jar:/apps/dubbo-demo-provider-2.1.5/lib/log4j-1.2.16.jar:/apps/dubbo-demo-provider-2.1.5/lib/management-api-3.0.0-b012.jar:/apps/dubbo-demo-provider-2.1.5/lib/mina-core-1.1.7.jar:/apps/dubbo-demo-provider-2.1.5/lib/netty-3.2.5.Final.jar:/apps/dubbo-demo-provider-2.1.5/lib/servlet-api-2.5-20081211.jar:/apps/dubbo-demo-provider-2.1.5/lib/slf4j-api-1.6.2.jar:/apps/dubbo-demo-provider-2.1.5/lib/spring-2.5.6.SEC03.jar:/apps/dubbo-demo-provider-2.1.5/lib/validation-api-1.0.0.GA.jar:/apps/dubbo-demo-provider-2.1.5/lib/zookeeper-3.3.3.jar: com.alibaba.dubbo.container.Main

dubbo-demo-consumer:修改dubbo.properties 
	dubbo.registry.address=zookeeper://192.168.1.77:2181?backup=192.168.1.78:2181,192.168.1.80:2181
skywalking-agent/config/agent.config  需要修改的地方同3
启动命令:java -javaagent:/apps/skywalking/dubbo-demo-consumer/skywalking-agent/skywalking-agent.jar -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -classpath /apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/conf:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/cache-api-0.4.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/commons-codec-1.4.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/commons-logging-1.1.1.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/commons-pool-1.5.5.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/dubbo-2.1.5.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/dubbo-demo-2.1.5.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/dubbo-demo-consumer-2.1.5.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/fastjson-1.1.8.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/gmbal-api-only-3.0.0-b023.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/grizzly-core-2.1.4.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/grizzly-framework-2.1.4.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/grizzly-portunif-2.1.4.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/grizzly-rcm-2.1.4.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/hessian-4.0.7.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/hibernate-validator-4.2.0.Final.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/httpclient-4.1.2.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/httpcore-4.1.2.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/javassist-3.15.0-GA.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/jedis-2.0.0.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/jetty-6.1.26.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/jetty-util-6.1.26.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/jline-0.9.94.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/log4j-1.2.16.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/management-api-3.0.0-b012.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/mina-core-1.1.7.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/netty-3.2.5.Final.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/servlet-api-2.5-20081211.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/slf4j-api-1.6.2.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/spring-2.5.6.SEC03.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/validation-api-1.0.0.GA.jar:/apps/skywalking/dubbo-demo-consumer/dubbo-demo-consumer-2.1.5/lib/zookeeper-3.3.3.jar: com.alibaba.dubbo.container.Main

6.python手动注册

安装
yum install -y python3-pip
pip3 install "apache-skywalking" 报错:distutils.errors.CompileError: command 'gcc' failed with exit status 1
	解决:
	pip3 install --upgrade pip
	python3 -m pip install --upgrade setuptools
	pip3 install --no-cache-dir  --force-reinstall -Iv grpcio==1.23.0
注册:
python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from skywalking import agent, config
>>> config.init(collector_address='192.168.1.77:11800', service_name='pytohn-test')
>>> agent.start()

7.python自动注册

安装依赖模块:
yum install -y python3-pip
[root@192-168-1-78-elk02 django-test]# cat requirements.txt 
apache-skywalking==0.7.0
asgiref==3.4.1
backports.zoneinfo==0.2.1
Django==3.2.12
grpcio==1.43.0
grpcio-tools==1.43.0
packaging==21.3
protobuf==3.19.3
PyMySQL==1.0.2
pyparsing==3.0.6
six==1.16.0
sqlparse==0.4.2
wrapt==1.13.3

pip3 install -r requirements.txt 
centos 自带sqlite3版本太低,运行Django需要升级,升级参考:https://blog.csdn.net/zhongliang415/article/details/117516050
创建Django项目mysite
django-admin startproject mysite
创建应用
cd mysite
python3 manage.py startapp myapp
初始化数据库:
python3 manage.py makemigrations
python3 manage.py migrate
创建管理员,用于登录admin
python3 manage.py createsuperuser
skywalking环境环境变量
export SW_AGENT_COLLECTOR_BACKEND_SERVICES='192.168.1.77:11800'
export SW_AGENT_NAMESPACE='magedu'
export SW_AGENT_NAME='python-django'
修改配置:
vim mysite/settings.py 
ALLOWED_HOSTS = ["*"]
启动:
sw-python -d run python3 manage.py runserver 192.168.1.78:80

8.skywalking告警系统

指标:
#服务的响应时间
service_resp_time = from(Service.latency).longAvg();
#服务的http请求成功率SLA,比如99%
service_sla = from(Service.*).percent(status == true);
#表示每分钟的吞吐量
service_cpm = from(Service.*).cpm();
#指定最近多少数据范围内的响应时间百分比,即p99,p95,p90,p75,p50在内的数据统计结果
service_percentile = from(Service.latency).percentile(10); // Multiple values including p50, p75, p90, p95, p99
#应用性能指数是0.*
service_apdex = from(Service.latency).apdex(name, status);
#端点的每分钟的吞吐量
endpoint_relation_cpm = from(EndpointRelation.*).filter(detectPoint == DetectPoint.SERVER).cpm();
#端点的响应时间
endpoint_relation_resp_time = from(EndpointRelation.rpcLatency).filter(detectPoint == DetectPoint.SERVER).longAvg();
#端点的http请求成功率SLA,比如99%等
endpoint_relation_sla = from(EndpointRelation.*).filter(detectPoint == DetectPoint.SERVER).percent(status == true);
#端点指定最近多少数据范围内的响应时间百分比,即p99,p95,p90,p75,p50在内的数据统计结果
endpoint_relation_percentile = from(EndpointRelation.rpcLatency).filter(detectPoint == DetectPoint.SERVER).percentile(10); // Multiple values including p50, p75, p90, p95, p99
告警:
rules :
   #规则唯一名称,必须以 `_rule` 结尾。
  endpoint_percent_rule :
     # Metrics 值需要是 long、double 或 int 
    metrics-name : endpoint_percent 
    threshold : 75 
    op : < 
    #评估指标的时间长度
    period : 10 
    #指标匹配条件后多少次触发告警
    count : 3 
    #检测多少次,报警触发后报警保持静音,默认与 period 相同。
    静默期:10
    #指定规则是否可以发送通知或仅作为复合规则的条件
    only-as-condition : false 
    tags :
       level : WARNING 
配置钉钉告警
webhooks : 
    - url : https://oapi.dingtalk.com/robot/send?access_token=dummy_token

本文作者:没有猫的猫奴

本文链接:https://www.cnblogs.com/cat1/p/16038614.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   没有猫的猫奴  阅读(4)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
展开
点击右上角即可分享
微信分享提示
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.