Linux Skywalking部署与集成

版本
名称版本说明
apache-skywalking-apm9.5.0skywalking
skywalking-agent9.0.0Java代理包版本
安装
# 下载地址
wget https://archive.apache.org/dist/skywalking/9.5.0/apache-skywalking-apm-9.5.0.tar.gz
# 解压  
tar -zxvf apache-skywalking-apm-bin.tar.gz
# 全部启动
sh apache-skywalking-apm-bin/bin/startup.sh
# 单独启动服务
sh apache-skywalking-apm-bin/bin/oapService.sh
# 单独启动ui
sh apache-skywalking-apm-bin/bin/webappService.sh
# 查看
jps
ES存储配置
vim apache-skywalking-apm-bin/config/application.yml
storage:
  # 选择ES存储
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
  	# 命名空间
    namespace: ${SW_NAMESPACE:""}
    # ip 节点地址,多个用,逗号间隔
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    # 用户
    user: ${SW_ES_USER:""}
    # 密码
    password: ${SW_ES_PASSWORD:""}
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
UI 配置
vim apache-skywalking-apm-bin/webapp/webapp.yml
# 访问ui
http://ip:port
# SkyWalking UI 服务端口
serverPort: ${SW_SERVER_PORT:-8080}
Agent脚本
# SkyWalking Agent 配置
# SkyWalking Agent jar 地址。
# 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
# 配置 Collector 地址 127.0.0.1:11800。
# 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕 2000。
# Jar 启动
nohup java -javaagent:/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=applicationName -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar demo.jar >nohup.out 2>&1 & 
控制面板
  1. 服务列表
    在这里插入图片描述

  2. 拓扑图
    在这里插入图片描述

  3. 链路追踪

    在这里插入图片描述

项目集成(可选)
  1. logback日志集成TraceId

            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-logback-1.x</artifactId>
                 <version>9.0.0</version>
            </dependency>
    
        <!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 -->
        <property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    
    	<!-- 控制台 Appender -->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">     
            <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                    <pattern>${PATTERN_DEFAULT}</pattern>
                </layout>
            </encoder>
        </appender>
    
  2. 方法加入链路跟踪

            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-trace</artifactId>
                <version>9.0.0</version>
            </dependency>
    
    	// 方法上添加@Trace注解,SkyWalking通过AOP实现跟踪,静态方法添加@Trace无效,只能用于实例方法.
    	// 链路跟踪只记录方法名,不记录参数值,可通过代码添加,在当前span上添加tag(必须是被SkyWalking跟踪的方法)
    	ActiveSpan.tag("userId", userId);
    	ActiveSpan.tag("account", account);
    	// 通过注解添加
        @Tag(key = "userId", value = "userId]")
    	@Tag(key = "account", value = "account")
    
  3. 自定义追踪

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-opentracing</artifactId>
            <version>9.0.0</version>
        </dependency>
    
        Tracer tracer = new SkywalkingTracer();
        Tracer.SpanBuilder spanBuilder = tracer.buildSpan("/request/path");
        Span span = spanBuilder.withTag("userId", userId).withTag("account", account).startManual();
        span.finish();
    
  4. grpc日志收集

    # skywalking-agent的config文件夹下的agent.config添加配置
    # 指定要向其报告日志数据的GRPC服务器主机
    plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:skywalking服务所在机器的ip}
    # 指定要向其报告日志数据的GRPC服务器端口
    plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
    # 指定GRPC客户端要报告的日志数据的最大大小
    plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
    # 客户端向上游发送数据时将超时多长时间,单位是秒
    plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
    
          <!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 -->
        <property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} | %highlight(${LOG_LEVEL_PATTERN:-%5p} ${PID:- }) | %boldYellow(%thread [%tid]) %boldGreen(%-40.40logger{39}) | %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    
    	<!-- SkyWalking GRPC 日志收集,实现日志中心。注意:SkyWalking 8.4.0 版本开始支持 -->
        <appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
            <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                    <pattern>${PATTERN_DEFAULT}</pattern>
                </layout>
            </encoder>
        </appender>
    
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值