如何安装与使用skywalking链路追踪

介绍

  • skywalking和zipkin(zipkin使用教程)一样,也分为服务端和客户端,服务端负责收集日志数据并且展示,架构如下:
    在这里插入图片描述
  • 上面的Agent:负责收集日志数据,并且传递给中间的OAP服务器
  • 中间的OAP:负责接收 Agent 发送的 Tracing 和Metric的数据信息,然后进行分 析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
  • 左面的UI:负责提供web控制台,查看链路,查看各种指标,性能等等。
  • 右面Storage:负责数据的存储,支持多种存储类型。

看了架构图之后,思路很清晰了,Agent负责收集日志传输数据,通过GRPC的方式传递给OAP进行分析并且存储到数据库中,最终通过UI界面将分析的统计报表、服务依赖、拓扑关系图展示出来。

准备工作

  • 若用虚拟机操作,需要右键虚拟机->设置内存 将内存调到3072 , 处理器设置处理器数量为2
    在这里插入图片描述

  • 为了兼容es 对创建文件和线程等的要求 做以下处理编辑配置文件

vi /etc/security/limits.conf
  • 将以下内容 编写在limits.conf文件最下方
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
  • 编辑sysctl.conf文件,让es能开辟相应的虚拟内存
vi /etc/sysctl.conf
  • 将以下内容 放在sysctl.conf 文件最下方
vm.max_map_count=262144
  • 输入命令让系统控制权限配置生效
sysctl -p

安装与启动

  • skywalking 存储库可用es或者mysql 搭配使用
  • 创建目录
mkdir /usr/local/skywalking
  • 去对应官网下载并将elasticsearch和skywalking压缩包(后缀为.tar.gz) 放入该目录下
  • 解压es压缩包 和 skywalking
tar -zxvf   elasticsearch压缩包/skywalking压缩包

启动elasticsearch

  • es要求linux不能使用root用户启动es进程,所以必须使用其他用户启动es进程
useradd es
passwd es
chown -R es   elasticsearch目录名     //到该目录路径下输入该命令
su es    //切换到es用户
  • 进入到es目录下的 bin目录 启动es
./elasticsearch -d //后台运行
  • 校验是否启动成功
curl http://localhost:9200

启动es可能遇到的问题

  • 本地需要配置jdk环境变量 才能启动 可参考如何在linux配置java环境变量
  • 若使用的es 是7版本以上, 则需要使用jdk11,可用es自身自带的jdk11解决,如下
  • 到es目录下 执行以下编辑命令
vi bin/elasticsearch
  • 将以下内容 放在elasticsearch文件最下方
# 指定jdk11
export JAVA_HOME=/opt/software/jdk/jdk-11.0.1
export PATH=$JAVA_HOME/bin:$PATH


# 添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/opt/software/jdk/jdk-11.0.1/bin/java"
else
        JAVA=`which java`
fi

启动skywalking

  • 进入skywalking目录
  • 进入config目录
  • 若要使用es 作为存储库, 则找到application.yml文件内容中storage以下的elasticsearch相关的注释给放开(若用Mysql作为存储库则注释)
  • 修改cluster下的selector:${SW_CLUSTER:xxxx}中的xxxx改为nacos, 并在cluster下的nacos下的hostPort填写自身项目的nacos地址
  • 若用mysql作为存储库 找到该文件内容mysql下的参数,配置对应的连接数据库地址和账号密码并且 在storage下的selector: ${SW_STORAGE:xxxx}中的xxxx改为mysql
vi application.yml

在这里插入图片描述

  • 进入webapp目录 修改skywalking的启动端口
  • 在文件内容中找到server下的port 修改端口号
vi webapp.yml
  • 进入bin目录 启动skywalking服务
./startup.sh
  • 开启sky的端口给予探针那边项目启动访问,以及ui访问的端口
firewall-cmd --zone=public --add-port=11800/tcp --permanent
firewall-cmd --zone=public --add-port=ui的端口/tcp --permanent
firewall-cmd --reload
  • 打开该Ip地址的 对应的端口 ,即可打开网页ui图 查看链路追踪的信息

停用服务

  • 通过netstat -tpln 命令查看两个端口,一个11800端口,和一个对应UI网址的端口,找到他们的进程id, 通过kill-9 进程id删除

使用

  • 进入agent目录里的config目录 修改为自定义的服务名称
  • 找到文件内容中agent.service_name=${SW_AGENT_NAME:xxxx} 在该xxxx修改为自己自定义的名称(也可以不这样配置,直接启动命令编写好即可)
vi agent.config
  • 在自己的微服务的启动(java -jar xxx那个脚本)脚本(一般后缀是.sh)最上方加入以下命令 即可关联该链路追踪(若原来命令是java -jar xxx , 则拼接该命令变为, java -jar - javaagent: /xx/xx/skywalking-agent-jar xxx)
  • 指定到agent目录下的jar包
 -javaagent: /usr/local/skywalking/skywalking的目录/agent/skywalking-agent.jar

探针

  • 若项目各个微服务放在不同服务器,则拷贝agent文件到各个服务器当中去(对应不同服务器的项目启动命令也要拼接-javaagent命令指定到自身服务器的agent目录中的skywalking-agent.jar)

配置覆盖命令

  • 指定项目被skywalking所对应的服务名, 则无需进入配置文件去修改名称 (拼接启动命令)
  • -javaagent:/xxx/skywalking-agent.jar -Dskywalking.agent.service.name=xxxx
-Dskywalking.agent.service.name= xxxxx
  • 指定oap服务绑定的地址,并且oap服务默认的端口是11800(注意若是探针则不是本地地址)
-Dskywalking.collector.backend_service=127.0.0.1:11800

综合启动拼接命令

  • java- jar + 拼接以下命令 + xxx.jar(微服务项目jar包)
-javaagent:skywalking目录\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=自定义对应在skywalking的服务名
-Dskywalking.collector.backend_service=启动skywalking的服务器ip:11800
  • 自测方式: idea启动项目配置(事先拷贝skywlking服务器上的agent目录文件在本地)
    在这里插入图片描述
  • 在此处添加相应命令后 启动项目即可
    在这里插入图片描述
  • 打开skywalking的ui网即可查看该项目服务的相关数据
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值