SkyWalking环境搭建(elasticsearch7)

主要有部分内容
oap服务:接收和保存采集的数据,同时个UI展示
SkyWalking Website:展示oap服务的数据
SkyWalking agent:采集应用数据

下载安装包

下载地址:https://skywalking.apache.org/downloads/
备注:因为我数据是存储在elasticsearch7,需要下载对应的版本,否则启动报错。
我下的版本如下:wget https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm-es7-8.7.0.tar.gz

解压

tar -xzvf apache-skywalking-apm-es7-8.7.0.tar.gz

修改配置

cd apache-skywalking-apm-bin-es7/config
vi application.yml
  1. 存储类型改为elasticsearch7
storage:
  selector: ${SW_STORAGE:elasticsearch7}
  1. 修改elasticsearch7配置
 elasticsearch7:
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}  #es7机器地址
 	#略,其他配置不用动
    user: ${SW_ES_USER:"es账号"}  #如果es开启认证,需要填账号密码,否则不动即可
    password: ${SW_ES_PASSWORD:"es密码"} #如果es开启认证,需要填账号密码,否则不动不动即可

备注:如果开启了认证,es账号需要给对应的权限。我给了用户集群权限monitor和manager权限,索引* all的权限

启动

cd apache-skywalking-apm-bin-es7/bin
./oapServiceInit.sh

备注:启动完成后可以进入log目录检查是否异常或者通过jps 查看是否存在 4567 OAPServerStartUp 进程

修改SkyWalking Website的配置

因为默认是8080端口,容易冲突,因此改个端口,我用了18082。

cd apache-skywalking-apm-bin-es7/webapp
vi webapp.yml

修改端口如下:

server:
  port: 18082

启动 SkyWalking Website

cd apache-skywalking-apm-bin-es7/bin
./webappService.sh 
 

这个时候可以打开:http://10.0.169.41:18082/

SkyWalking agent

安装包有agent
data/apache-skywalking-apm-bin-es7/agent
可以把他们复制到java程序所在的机器上,启动脚本增加如下配置

-javaagent:本地目录别配错了/skywalking-agent.jar -Dskywalking.agent.service_name=服务名 -Dskywalking.collector.backend_service=上边安装的服务器ip:11800 

例如

java -javaagent:/data/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.namespace=dev -Dskywalking.agent.service_name=service-gateway -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dspring.profiles.active=dev -jar /demo.jar

备注:我安装的apache-skywalking-apm-bin-es7下的agent存在问题,单独下了一个。下面有详细说明。

agent碰到的问题:

  1. apm包中带的agent发现不能上报日志(看日志默认grpc连的是127.0.0.1:11800,不是我配置的ip和端口),单独下了最新版本agent(8.10.0)后解决
    备注:我下的是 https://dlcdn.apache.org/skywalking/java-agent/8.10.0/apache-skywalking-java-agent-8.10.0.tgz
  2. spring cloud gateway 不在调用链路里。把安装目录下optional-plugins中的apm-spring-cloud-gateway-2.1.x-plugin-8.10.0.jar和apm-spring-webflux-5.x-plugin-8.10.0.jar复制到plugin总解决
    备注:optional-plugin是支持但是没激活的插件。plugin中是激活的,启动应用时会加载。
  3. 日志上报
    我是logback的,添加依赖
<dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.9.0</version>
        </dependency>

logback-spring.xml 修改如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 ...............
    <!-- 彩色日志格式   [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n  -->
    <property name="CONSOLE_LOG_MDC_PATTERN" value="${CONSOLE_LOG_MDC_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [%X{tid}] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

    <!-- 控制台输出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${CONSOLE_LOG_MDC_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>
  ...............
    <appender name="grpcLog" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>info</level>
        </filter>
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>${FILE_LOG_PATTERN}</Pattern>
            </layout>
        </encoder>
    </appender>
 
    <!-- 日志输出级别 -->
    <root level="INFO"> 
    ...............
        <appender-ref ref="infoFile" /> 
        <appender-ref ref="grpcLog" />
    </root>
</configuration>


  1. 调用链路中存在太多不想监控的url
    通过optional-plugins中的插件apm-trace-ignore-plugin-8.10.0解决,同样复制到.plugins中。同时在aggent的config目录下添加配置文件apm-trace-ignore-plugin.config,内容如下

#多个逗号分隔
trace.ignore_path=/actuator/**,GET:/actuator/**,Lettuce/**,/Lettuce/**,/actuator,GET:/actuator
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值