注意:
不建议直接下载latest版本,因为latest版本号不明显,需要进一步查看,后面会导致奇奇怪怪的问题【亲身经历】。
2、skywalking单机部署 docker-compose.ymlversion: '3.3' services: elasticsearch: image: elasticsearch:7.14.2 container_name: elasticsearch restart: always ports: - 9200:9200 environment: - "TAKE_FILE_OWNERSHIP=true" #volumes 挂载权限 如果不想要挂载es文件改配置可以删除 - "discovery.type=single-node" #单机模式启动 - "TZ=Asia/Shanghai" # 设置时区 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置jvm内存大小 volumes: - ./elasticsearch/logs:/usr/share/elasticsearch/logs - ./elasticsearch/data:/usr/share/elasticsearch/data - ./elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ulimits: memlock: soft: -1 hard: -1 skywalking-oap-server: image: apache/skywalking-oap-server:8.9.1 container_name: skywalking-oap-server depends_on: - elasticsearch links: - elasticsearch restart: always ports: - 11800:11800 - 12800:12800 environment: SW_STORAGE: elasticsearch # 指定ES版本 SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 TZ: Asia/Shanghai volumes: - ./oap/conf/alarm-settings.yml:/skywalking/config/alarm-settings.yml skywalking-ui: image: apache/skywalking-ui:8.9.1 container_name: skywalking-ui depends_on: - skywalking-oap-server links: - skywalking-oap-server restart: always ports: - 8080:8080 environment: SW_OAP_ADDRESS: http://skywalking-oap-server:12800 TZ: Asia/Shanghai
具体配置可以skywalking官方github
执行命令
docker-compose up -d
等待大约2~3min,在浏览器中输入一下地址进行访问:
http://192.168.28.130:8080/
注意:
1、端口为 skywalking-ui中配置的端口
2、skywalking首次启动后,在浏览器中访问,有可能会出现加载页面不完整的情况,此时只需要耐心等待2~3min后在刷新页面即可。
3、skywalking使用agent代理使用【下载地址】(agent的使用需要将其拷贝至目标服务器,多少项目在一台服务器可以共用一个agent)
agent目录简介
如果想要使用可选插件将其复制到plugins目录即可【需要重启应用程序生效】,不想用只需冲plugins目录中将插件删除【需要重启应用后生效(有的文章说可以不重启生效)】
idea 配置在VM参数中增加如下配置
-javaagent:/Users/admin/software/skywalking-agent/skywalking-agent.jar=agent.service_name=${APPLICATION_NAME},collector.backend_service=192.168.28.130:11800
${APPLICATION_NAME} 应用程序名称
192.168.28.130:11800 skywalking服务器采集地址,端口是docker-compose.yml 中 skywalking-oap-server 配置的端口(默认为11800)
java -jar配置
java -javaagent:/Users/admin/software/skywalking-agent/skywalking-agent.jar=agent.service_name=${APPLICATION_NAME},collector.backend_service=192.168.28.130:11800 -jar SpringBoot-0.0.1-SNAPSHOT.jar
注意:javaagent 需配置在 -jar前面
详细使用请看官网介绍:java-agent使用教程
一切准备就绪后,启动项目 1)仪表盘可以APM 处看见当前服务
注意:
- 如果此处没有出现服务,可以尝试访问项目中的任意接口或者多刷新几次页面)
- 如果还是没有可以查看agent目录下的日志看是否存在报错
访问项目中任意接口
2)拓扑图点击服务本身可以展示各种指标
3)追踪
可以在此处看见刚刚访问的接口以及耗时情况(如果此时搜索不出来,需注意时间范围是否正确)
4、性能剖析如果在追踪中发现了访问异常慢的接口可以通过性能剖析对其进行分析
*** 作步骤
- 新建任务
- 选择服务(如果此处未出现服务名称选择,需要刷新时间)
- 配置端点名称(注意此处最好是从追踪里面获取端点名称,需要加上请求方式,之前由于没有添加请求方式,搞了好几天都不行,刚开始以为是部署的问题,反反复复搞了很久都没有解决,最后加上了请求方式,才搞定主要网上的资料都没有添加请求方式,此处还有一点需要注意的是,接口的请求路径是全路径,需要加上项目的contex-path才行)
- 设置监控时间
- 采样数
- 点击新建任务请求配置的接口
出现如下页面(如果Sampled Traces未出现注意刷新时间【这是skywalking唯一一个不友好的地方,不管访问任务页面都要注意时间的影响】)
点击分析按钮出现堆栈信息
可以看见耗时最下最长的信息。
5、日志采集日志采集需要配合TraceId一起做,有一定的侵入性
在项目中引入jar包
注意此处由于我使用的日志框架是logback,如果使用其他日志框架需引入对应的jar包
目前支持的日志框架有:log4j、log4j2和 logback。
org.apache.skywalking apm-toolkit-logback-1.x${apm-toolkit.version} org.apache.skywalking apm-toolkit-trace${apm-toolkit.version}
日志数据格式化
%d{yyyy-MM-dd HH:mm:ss.SSS} [%ip] [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - [%tid] - %msg%n UTF-8
日志采集
%d{yyyy-MM-dd HH:mm:ss.SSS} [%ip] %thread %logger %level - [%tid] %msg %n
完整配置文件
logback-spring.xml
${CONSOLE_LOG_PATTERN} UTF-8 %d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - [%tid] - %msg%n UTF-8 ${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}-%i.log 31 30MB %d{yyyy-MM-dd HH:mm:ss.SSS} %thread %logger %level - [%tid] %msg %n
待一切配置好后(重启项目)需要等待3~5min就可以看见日志信息了
注意时间范围
TraceId获取配置了一个全局异常处理器,如果发生异常则返回TraceId,然后用该TraceId去查找相应的日志与链路信息
@ExceptionHandler(value = Exception.class) @Trace public ResponseModel handleException(Exception e) { log.error("异常堆栈=>", e); return ResponseModel.errorMsg(RepCodeEnum.BLANK_ERROR, TraceContext.traceId()); }
定位链路
点击相关日志进入日志详情
注意:日志的上传需要时间,不能立马获取到实时日志
参考Skywalking官方文档
Skywalking UI介绍
Skywalking GitHub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)