Skywalking安装部署
skykwalking: 一个开放源代码的可观察性平台,用于收集,分析,聚合和可视化来自服务和云本机基础结构的数据。SkyWalking提供了一种简便的方法,即使在整个Cloud中,也可以使您清晰地了解分布式系统。它更像是一个现代APM,专为云原生,基于容器和分布式系统而设计。
skykwalking 被用于追踪、监控和诊断分布式系统,特别是使用微服务架构,云原生或容积技术。提供以下主要功能:
- 分布式追踪和上下文传输
- 应用、实例、服务性能指标分析
- 根源分析
- 应用拓扑分析
- 应用和服务依赖分析
- 慢服务检测
- 性能优化
SkyWalking架构:
- Agent(探针):Java/Go/Node.js/PHP 等多语言无侵入字节码注入,<1% CPU 损耗
- OAP(Observability Analysis Platform):流式分析 Agent 上报的 Trace & Metric,数据写入 ES/MySQL/TiDB等存储中
- UI:即用 Web 控制台,拓扑图、追踪、告警、指标一键查看
环境准备:
系统:centos7 (已部署docker)
软件:elasticsearch8.15.2、apache-skywalking-apm-10.1.0.tar.gz、apache-skywalking-java-agent-9.4.0.tgz
包以及agent下载地址:
https://skywalking.apache.org/downloads/
安装:
1、首先安装java基础环境,可使用yum或者本地二进制安装都行
2、拉取 elasticsearch镜像,将内部数据拷出来再挂进去,如下:
#docker pull docker.elastic.co/elasticsearch/elasticsearch:8.15.2
#先启动下临时容器,将数据配置等copy出来
#docker cp es:/usr/share/elasticsearch/data .
#docker cp es:/usr/share/elasticsearch/config .
#docker cp es:/usr/share/elasticsearch/plugins .
3、vim config/elasticsearch.yml 文件,修改安全认证为false,注释掉ssl相关配置和cluster.initial_master_nodes(如果不注释就要配置证书否则报错),如图:

执行命令启动elasticsearch ,如下:
docker run -itd --name elasticsearch \--restart=always \-p 9200:9200 \-p 9300:9300 \-v /data/elasticsearch/data:/usr/share/elasticsearch/data \-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /data/elasticsearch/config:/usr/share/elasticsearch/config \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" elasticsearch:8.15.2
4、部署OAP服务和ui服务,oap服务这里以为10.1.0为例子,下载包,包中同时也包含了ui界面,如下:

解压,进入config目录中,修改配置文件application.yml,将存储修改为elasticsearch,默认情况下为h2,并修改es的IP地址,如图:

最后进入到bin目录下执行脚本启动,如下:
start startup.sh #windows下需要执行startup.bat
5、设置完成后,在bin目录下执行命令./startup.sh,启动skywalking,通过浏览器打开如图:

默认端口是11800和12800,可以根据需要自行修改,主要功能:
- 11800:grpc端口,主要是agent向oap发送数据使用
- 12800: http端口,ui界面与oap服务进行通信使用
6、部署agent,同样的下载页面,这里以Java agent为例子,如图:

解压后是一个skywalking-agent,目录下内容如图:

编辑config目录下的agent.config文件,修改oap的服务IP和端口,如图:

在java启动参数中添加agent参数和服务名,如下:
-javaagent:/data/java/skywalking-agent/skywalking-agent.jar -DSW_AGENT_NAME=test
启动java应用后,可以看到ui界面已经出现了服务名,如图:

访问业务后能看到数据已经上报过来,如图:



