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

1、SkyWalking简介

1.1 SkyWalking介绍

SkyWalking项目是由华为大牛吴晟开源的个人项目,目前已经加入Apache孵化器。

SkyWalking项目的核心目标是针对微服务、Cloud Native、容器化架构提供应用性能监控和分布式调用链追踪功能,目前链路追踪和监控应用支持的组件包括主流框架和容器,如dubbo、motan、spring boot、spring cloud等。

Skywalking分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

1.2 Skywalking架构

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

  • 上部分 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、存储、集群管理都有多种机制可选。
  • 支持告警。
  • 优秀的可视化解决方案。

1.4 环境搭建

  • 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.修改配置文件

# 将h2内容注释掉,启用elasticsearch存储方案
[root@skywalking /usr/local/src]#vim /usr/local/src/skywalking/config/application.yml
...
storage:
elasticsearch:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
# trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
# trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
# user: ${SW_ES_USER:""}
# password: ${SW_ES_PASSWORD:""}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# # Those data TTL settings will override the same settings in core module.
# recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
# otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
# monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
# # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
# h2:
# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
# user: ${SW_STORAGE_H2_USER:sa}
# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
...

3.启动

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

4.验证是否安装成功

Linux下安装 SkyWalking 分布式追踪系统的更多相关文章

  1. .NetCore从零开始使用Skywalking分布式追踪系统

    本文将从0开妈搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间.开发环境为VisualStudio2019 1:安装Skywalking,可参考:https://w ...

  2. SkyWalking 分布式追踪系统

    随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个 ...

  3. Linux下安装SkyWalking 6.1版本 以及.NETCore项目集成

    SkyWalking和APM介绍 今天给大家给大家介绍一下SkyWalking,那什么是SkyWalking Skywalking 是 Apache 基金会下面的一个开源 APM 项目 ,那什么又是A ...

  4. Nginx入门篇-基础知识与linux下安装操作

    我们要深刻理解学习NG的原理与安装方法,要切合实际结合业务需求,应用场景进行灵活使用. 一.Nginx知识简述Nginx是一个高性能的HTTP服务器和反向代理服务器,也是一个 IMAP/POP3/SM ...

  5. Linux下安装python,mysql,redis

    linux 安装Python3 1.python下载 请在终端输入如下命令: cd /home wget http://cdn.npm.taobao.org/dist/python/3.6.5/Pyt ...

  6. [业界方案] 用SOFATracer学习分布式追踪系统Opentracing

    [业界方案] 用SOFATracer学习分布式追踪系统Opentracing 目录 [业界方案] 用SOFATracer学习分布式追踪系统Opentracing 0x00 摘要 0x01 缘由 &am ...

  7. [业界方案]用Jaeger来学习分布式追踪系统Opentracing

    [业界方案]用Jaeger来学习分布式追踪系统Opentracing 目录 [业界方案]用Jaeger来学习分布式追踪系统Opentracing 0x00 摘要 0x01 缘由 & 问题 1. ...

  8. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  9. Linux下安装cmake

    cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...

  10. 分布式追踪系统dapper

    http://www.cnblogs.com/LBSer/p/3390852.html 最近单位需要做自己的分布式监控系统,因此看了一些资料,其中就有google的分布式追踪系统dapper的论文:h ...

随机推荐

  1. 简单的java代码审计

    描述 很简单的代码审计 java安全--Fastjson反序列化 java安全--SQL注入 Fastjson 反序列化 首先看一下配置文件,对于Maven项目,我们首先从pom.xml文件开始审计引 ...

  2. Netty整合STOMP

    1.STOMP协议简介 常用的WebSocket协议定义了两种传输信息类型:文本信息和二进制信息.类型虽然被确定,但是他们的传输体是没有规定的,也就是说传输体可以自定义成什么样的数据格式都行,只要客户 ...

  3. Zookeeper及基于Zookeeper的分布式锁总结

    1. Zookeeper ZooKeeper 内部存储的数据结构 / +-- node1 +-- node2 | +-- sub_node21 -> "I am sub_node21& ...

  4. python中使用数组作为索引

    链接:https://blog.csdn.net/yzlh2009/article/details/114118470 情况一,索引数组为整数值 情况二,索引数组为bool值

  5. Jenkins+Gitlab实现持续集成持续部署

    一.GITLAB安装与使用 官网:https://about.gitlab.com/ 1.GITLAB安装要求 (1)中文文档地址 ​ https://docs.gitlab.cn/jh/instal ...

  6. 在工作组的环境中配置Windows 2012 R2的远程桌面服务

    在工作组的环境中配置Windows 2012 R2的远程桌面服务 How to configure Remote Desktop Service in Windows 2012 R2 workgrou ...

  7. 算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。

    [题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左 ...

  8. k8s 中的 Pod 细节了解

    k8s中Pod的理解 基本概念 k8s 为什么使用 Pod 作为最小的管理单元 如何使用 Pod 1.自主式 Pod 2.控制器管理的 Pod 静态 Pod Pod的生命周期 Pod 如何直接暴露服务 ...

  9. vue this.$router.push query传递对象方法

    this.$router.push({ path: '/home', query: { params: JSON.stringify({ name: 'lokka', age: 18 }) } }); ...

  10. STM32F10x SPL V3.6.2 集成 FreeRTOS v202112

    STM32F10x SPL 集成 FreeRTOS 在整理 GCC Arm 工具链的Bluepill代码示例, 常用外设都差不多了, 接下来是 FreeRTOS, 网上查到的基本上都是基于旧版本的集成 ...