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


    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.验证是否安装成功


    __EOF__

  • 本文作者: Alone-林
  • 本文链接: https://www.cnblogs.com/Alone-8712/p/16896242.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    Word的只读模式和限制编辑有区别吗?如何设置和取消?
    8.1.1 创建空数据表
    每天一个设计模式之观察者模式+发布订阅模式(Observer Pattern)
    MP157-0-遇见的问题及解决办法
    word 毕业论文格式调整
    【LeetCode回溯算法#08】递增子序列,巩固回溯算法中的去重问题
    Gartner发布2022-2023年八大网络安全趋势预测,零信任是起点,法规覆盖更广
    C语言之网络编程(一)域名解析
    [附源码]java毕业设计双学位在线考试系统
    面试题: Spring中Bean的实例化和Bean的初始化有什么区别?
  • 原文地址:https://www.cnblogs.com/Alone-8712/p/16896242.html