Linux下安装 SkyWalking 分布式追踪系统

https://skywalking.apache.org/downloads/    官网地址

1、SkyWalking简介

1.1 SkyWalking介绍

SkyWalking项目是由华为大牛吴晟开源的个人项目,目前已经加入Apache孵化器。 SkyWalking项目的核心目标是针对微服务、Cloud Native、容器化架构提供应用性能监控和分布式调用链追踪功能,目前链路追踪和监控应用支持的组件包括主流框架和容器,如dubbo、motan、spring boot、spring cloud等。 Skywalking分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

整个架构,分成上、下、左、右四部分:

  • 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
  • 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
  • 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
  • 左部分 SkyWalking UI :负责提供控台,查看链路等等。

1.3 SkyWalking主要功能

  • 多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
  • 多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
  • 轻量高效。无需大数据平台,和大量的服务器资源。
  • 模块化。UI、存储、集群管理都有多种机制可选。
  • 支持告警。
  • 优秀的可视化解决方案。

 

  • Skywalking agent和业务端绑定在一起,负责收集各种监控数据
  • Skywalking oapservice是负责处理监控数据,接受agent的数据并存储在数据库中,接受来自UI的请求,查询监控数据。
  • Skywalking UI提供给用户,展现各种监控数据和告警。

2、部署SkyWalking

2.1 部署前准备工作

1.关闭selinux

[root@skywalking ~]#sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

[root@skywalking ~]#sed -i 's/SELINUXTYPE=targeted/#&/' /etc/selinux/config
[root@skywalking ~]#setenforce 0
 
2.安装需要用的工具
[root@skywalking ~]#yum -y install vim wget java
 
3.在线下载SkyWalking和elasticsearch
[root@skywalking /usr/local/src]#cd
[root@skywalking ~]#cd /usr/local/src/
[root@skywalking /usr/local/src]#wget http://archive.apache.org/dist/skywalking/6.4.0/apache-skywalking-apm-6.4.0.tar.gz
[root@skywalking /usr/local/src]#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
[root@skywalking /usr/local/src]#ls
apache-skywalking-apm-6.4.0.tar.gz   elasticsearch-6.6.2.tar.gz
 
4.关闭防火墙
[root@skywalking ~]#systemctl stop firewalld
[root@skywalking ~]#systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon Loaded:
  loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  Active: inactive (dead) since Wed 2022-11-16 15:09:01 CST; 8s ago
  Docs: man:firewalld(1)
  Process: 939 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
  Main PID: 939 (code=exited, status=0/SUCCESS)

2.2 部署elasticsearch

1.解压

[root@skywalking /usr/local/src]#tar -zxf elasticsearch-6.6.2.tar.gz

 

2.修改配置文件

[root@skywalking ~]#vim /usr/local/src/elasticsearch/config/elasticsearch.yml ...

只需要修改这个 network.host: 0.0.0.0

 

3.创建用户
# es不能用root用户启动
[root@skywalking ~]#useradd es -p es
[root@skywalking ~]#chown -R es:es /usr/local/src/elasticsearch
 
4.修改limit数量
[root@skywalking ~]#vim /etc/security/limits.conf
## 每个进程最大打开文件数
* soft nofile 65536
* hard nofile 131072
## 每个进程最大进程个数
* soft nproc 4096
* hard nproc 4096
[root@skywalking ~]#vim /etc/sysctl.conf
...
vm.max_map_count=655360
#执行该命令使配置生效
[root@skywalking ~]#sysctl -p
 
5.启动
[root@skywalking ~]#su - es
上一次登录:三 11月 16 15:22:33 CST 2022pts/0 上
[es@skywalking ~]$cd /usr/local/src/elasticsearch/bin/
[es@skywalking /usr/local/src/elasticsearch/bin]$./elasticsearch -d
 
6.测试是否安装成功

2.3 部署skywarking

1.解压

[root@skywalking /usr/local/src]#tar -xzf apache-skywalking-apm-6.4.0.tar.gz

2.修改配置文件

 3.启动

[root@skywalking /usr/local/src]#cd skywalking/bin/

[root@skywalking /usr/local/src/skywalking/bin]#./startup.sh

4.验证是否安装成功

安装完毕后,应用采集上报数据操作

应用采集并且上报数据,直接使用agent探针方式。分为以下3步:

agent在安装包内存在.

 添加启动参数,应用如果是jar命令启动,则直接添加启动参数即可

java -javaagent:/自定义path/skywalking-agent.jar -Dskywalking.collector.backend_service={{agentUrl}} -jar xxxxxx.jar

自定义path:为安装包的绝对路径

agentURL:是SkyWalking服务端安装的地址,再加上11800端口。比如:10.20.0.55:11800

 

应用如果是Docker镜像的部署方式,则需要将skywalking-agent.jar打到镜像里,类似下图:

3、启动项目后,即可看到监控数据,如下图:

总结

本文主要从3个方面入手:原理、搭建、使用,介绍如何快速集成使用SkyWalking。核心重点:

  • SkyWalking其实就4部分组成:探针采集上报、数据分析和逻辑处理、数据存储、数据展示。安装使用简单、易上手。
  • 探针技术是SkyWalking的基石,说白了就是:在类加载时进行字节码转换增强,然后去拦截请求,采集上报数据。
  • UI页面的使用,多用用就熟悉了

 

 

 

 

 

 

 
 

 

posted @ 2025-06-30 17:40  疯狂的米粒儿  阅读(164)  评论(0)    收藏  举报