首页 > 其他分享 >SkyWalking 单机部署

SkyWalking 单机部署

时间:2023-02-22 14:36:42浏览次数:63  
标签:name skywalking 部署 单机 elasticsearch apache docker SkyWalking

本文参考:

https://blog.csdn.net/OptimusPP/article/details/106425807

1. 概述

1.1 概念

Skywalking是什么?

FROM http://skywalking.apache.org

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

1.2 功能列表

SkyWalking 有哪些功能?

FROM http://skywalking.apache.org/

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

1.3 整体架构

SkyWalking 整体架构如何?

FROM http://skywalking.apache.org/

image-20230221145801039

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

  • 上部分 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 :负责提供控台,查看链路等等。

2. 搭建 SkyWalking 单机环境

搭建一个 SkyWalking 单机环境,步骤如下:

image-20230221151409219

  1. 搭建一个 elasticsearch 服务;
  2. 下载 skywalking 软件包;
  3. 搭建一个 skywalking OAP 服务;
  4. 启动一个 Spring Boot 应用,并配置 SkyWalking Agent;
  5. 搭建一个 SkyWalking UI 服务。

主机信息:

OS: centos7.9
IP: 192.168.199.101
docker server版本:20.10.7

2.1 拉取镜像

docker pull elasticsearch:7.5.1
docker pull apache/skywalking-oap-server:6.6.0-es7
docker pull apache/skywalking-ui:6.6.0

注意:使用最新版本的es和skywalking会存在问题,必须使用上述版本。

下载源代码包,下面会使用 agent

https://archive.apache.org/dist/skywalking/6.6.0/apache-skywalking-apm-6.6.0.tar.gz

2.2 Elasticsearch搭建

2.2.1 修改系统参数

cat << 'EOF' >> /etc/sysctl.conf
vm.max_map_count=262144
EOF

sysctl -p 

2.2.2 启动 es

docker run -d --name=es7 \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" elasticsearch:7.5.1

等待30秒左右,查看docker日志,有如下记录:

{"type": "server", "timestamp": "2023-02-21T08:16:37,977Z", "level": "INFO", "component": "o.e.c.s.MasterService", "cluster.name": "docker-cluster", "node.name": "29de38aae9c9", "message": "elected-as-master ([1] nodes joined)[{29de38aae9c9}{5XhcKzyZSDySlB7Vk-fE9A}{1DpxpZ9dTDyLShNZRx6GmQ}{172.17.0.2}{172.17.0.2:9300}

通过 curl 访问返回:

> curl localhost:9200
{
  "name" : "29de38aae9c9",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "_7Nk6CLpRtCjkv50eQa7eA",
  "version" : {
    "number" : "7.5.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
    "build_date" : "2019-12-16T22:57:37.835892Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

即为启动成功。

2.2.3 持久保存es数据

持久化 elasticsearch 方案:

mkdir -p /data/elasticsearch
docker cp es7:/usr/share/elasticsearch/data /data/elasticsearch/
docker cp es7:/usr/share/elasticsearch/logs /data/elasticsearch/
docker rm -f es7
docker run -d --name=es7 \
  --restart=always \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  -v /data/elasticsearch/data:/usr/share/elasticsearch/data \
  -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
elasticsearch:7.5.1

2.3 安装 SkyWalking OAP

注意:等待 elasticsearch 启动完成,再启动 OAP

2.3.1 以容器启动

docker run --name oap --restart always -d \
--restart=always \
-e TZ=Asia/Shanghai \
-p 12800:12800 \
-p 11800:11800 \
--link es7:es7 \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=es7:9200 \
apache/skywalking-oap-server:6.6.0-es7

2.4 安装 SkyWalking UI

2.4.1 以容器启动

docker run -d --name skywalking-ui \
--restart=always \
-e TZ=Asia/Shanghai \
-p 8088:8080 \
--link oap:oap \
-e SW_OAP_ADDRESS=oap:12800 \
apache/skywalking-ui:6.6.0

3. spring-boot实例部署

3.1 项目地址

项目地址:https://github.com/solochen84/SpringBootDemo

3.2 制作jar包

需要安装 jdk1.8 和 maven的支持,使用 maven打包:

mvn clean package

3.3 启动jar包

原来的启动方式为:

java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar

那么使用skywalking agent,启动命令为:

java -javaagent:apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=spring-boot-demo -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar spring-boot-demo-0.0.1-SNAPSHOT.jar

说明:

  • -javaagent - 指定agent包位置。这里我将apache-skywalking-apm-6.6.0.tar.gz解压到/opt目录了,因此路径为:/opt/apache-skywalking-apm-bin/agent/skywalking-agent.jar
  • -Dskywalking.agent.service_name - 指定服务名,服务名会在skywalking UI中显示
  • -Dskywalking.collector.backend_service - 指定skywalking oap地址,由于在本机,地址为:127.0.0.1:11800
  • -jar - 指定jar包的路径,这里我直接放到/opt/目录了。

4. 访问UI

http://192.168.199.101:8088/

image-20230221165831791

因为机制为懒加载,所以当只有你调用该java接口时,页面上才有显示。所以第一次访问时,数据是没有的。

5. 访问demo接口

SpringBootDemo启动端口为:8080,api接口有3个:

GET /
GET /?name=hukey
GET /random

页面多刷新几次接口:

http://192.168.199.101:8080/
http://192.168.199.101:8080/?name=hukey
http://192.168.199.101:8080/random

6. 仪表盘

刷新UI页面,选择最近 15 分钟或者近1天的。

image

拓扑图:

image

7. 追踪

同样,可查看最近15分钟或1天

image

8. 告警

image

9. 指标

这里可选三个指标进行对比。

image



--- EOF ---

标签:name,skywalking,部署,单机,elasticsearch,apache,docker,SkyWalking
From: https://www.cnblogs.com/hukey/p/17144217.html

相关文章

  • 65-CICD持续集成工具-Jenkins分布式架构及部署全过程
    Jenkins分布式相关概念Jenkins官方提供了Jenkins分布式构建,将众多job分散运行到不同的Jenkinsslave节点,大幅提高并行job的处理能力。除此之外,还可以针对不同的开发环......
  • K8S部署&DevOps
    一、k8s集群部署1、k8s快速入门1)、简介Kubernetes简称k8s。是用于自动部署,扩展和管理容器化应用程序的开源系统。中文官网:https://kubernetes.io/zh/中文社区:https......
  • 部署堡垒机4——编译安装redis-6.0.9以上版本
    一、环境准备Redis官网:https://redis.io/历史版本:http://download.redis.io/releases/1、安装依赖yum-yinstallgccgcc-c++makecmakelrzsz复制2、解压re......
  • Jenkins安装部署
    一、Jenkins安装说明:官网:https://www.jenkins.io/zh/download/清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/Jenkins是开源CI&......
  • k8s服务端二进制部署-kubectl
    本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。二进制下载地址压缩包下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG......
  • 部署堡垒机2——安装MySQL8.0.32或8.0.28+
    MySQL的三大版本a)MySQLEnterpriseEdition:企业版本(付费)b)MySQLClusterCGE:高级集群版(收费)c)MySQLCommunityServer:社区版(开源) 登录MySQL官网https://www.mysql.com/d......
  • k8s多节点二进制部署以及Dashboard UI
    一、多Maser集群架构的了解Kubernetes作为容器集群系统,通过健康检查+重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失效......
  • 基于kubeasz的Kubernetes部署最佳实践
    一、环境准备1、三台8核/16G内存/500G高速硬盘服务器和三台16核/32G内存/500G高速硬盘服务器2、CentOS73、关闭selinux和关闭防火墙4、升级系统内核(......
  • 京东开源热key探测(JD-hotkey)中间件单机qps 提升17倍实战
    京东hotkey框架(JD-hotkey)是京东app后台研发的一款高性能热数据探测中间件,用来实时探测出系统的热数据,并将热数据毫秒内推送至系统的业务集群服务器的JVM内存。以下统称为"热......
  • k8s之keepalive+nginx高可用集群部署
    1、安装nginx、keepalivedyuminstallnginxkeepalived-y2、更新nginx配置文件stream{log_formatmain'$remote_addr$upstream_addr-[$time_local]$status$up......