zoukankan      html  css  js  c++  java
  • 记一次部署Skywalking(基于Elasticsearch),并使用 .NET6接入Skywalking

    参考自:

    https://skywalking.apache.org/downloads/

    https://hub.docker.com/

    https://github.com/SkyAPM/SkyAPM-dotnet

    https://www.cnblogs.com/KQNLL/p/13529545.html

    https://www.cnblogs.com/sunyuliang/p/11424848.html

    背景:虚拟机 Centos7(ip:192.168.232.130) 宿主机 Windows10 

    时间:2021-12-15

    Centos7

    1、安装docker 

    Docker version 20.10.11

    2、搜索并拉取elasticsearch镜像(这里搜索只有最新版本,推荐是hub.docker.com进行搜索,再看里面的Tag)

    docker search elasticsearch
    docker pull elasticsearch:7.8.0

    3、看一下镜像(也可以不看),再运行这个镜像

    docker images
    docker run -d --name=es7 -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx512m" -e "discovery.type=single-node" elasticsearch:7.8.0

    【锚标记】启动完后运行 docker ps,看容器是否启动成功,如果没有看到,则表示没有启动成功

    运行docker ps -a查看所有容器,可以看到没有启动成功的容器正安静的躺在里面,可以尝试利用CONTAINER ID进行查看具体错误信息

    docker logs 5176e21fc57a                                      这里是举的粒子

    4、再下载oap-server

    docker search elasticsearch

    docker pull apache/skywalking-oap-server:8.3.0-es7

    5、运行起来

    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=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=es7:9200 apache/skywalking-oap-server:8.3.0-es7

    goto 【锚标记】

    6、再下载ui的镜像

    docker pull apache/skywalking-ui:8.3.0

    7、运行起来

    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:8.3.0

    goto 【锚标记】

    8、访问 192.168.232.130:8088,理论上就可以看到Skywalking的管理界面了

    可能用得到的小技巧

    重启docker     systemctl restart docker

    重启容器   docker restart ContainerId

    停止并删除容器  docker stop ContainerId && docker rm ContainerId

    删除镜像 docker rmi ImageId

    Windows10 

    环境:Visual Studio 2022 + .NET6

    1、新建一个项目

    2、Nuget安装 SkyAPM.Agent.AspNetCore

    3、launchSettings.json中添加环境变量,注意对应的服务器

    {
      "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
          "applicationUrl": "http://localhost:20937",
          "sslPort": 0
        }
      },
      "profiles": {
        "MySkywalking": {
          "commandName": "Project",
          "dotnetRunMessages": true,
          "launchBrowser": true,
          "applicationUrl": "http://localhost:5092",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
            "SKYWALKING__SERVICENAME": "MySkywalking",
            "SKYWALKING__SERVICEINSTANCENAME": "127.0.0.1"
          }
        },
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
    }
    ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 这个环境变量 必须要有
    SKYWALKING__SERVICENAME 这个环境变量表示 服务名,并且优先级高于skyapm.json中的设置
    SKYWALKING__SERVICEINSTANCENAME 这个环境变量表示 实例名,并且优先级高于skyapm.json中的设置

    4、在项目的根目录添加skyapm.json,这是必须的

    {
      "SkyWalking": {
        "ServiceName": "asp-net-sample",
        "ServiceInstanceName": "old-name",
        "Namespace": "",
        "HeaderVersions": [
          "sw8"
        ],
        "Sampling": {
          "SamplePer3Secs": -1,
          "Percentage": -1.0
        },
        "Logging": {
          "Level": "Information",
          "FilePath": "logs/skyapm-{Date}.log"
        },
        "Transport": {
          "Interval": 3000,
          "ProtocolVersion": "v8",
          "QueueSize": 30000,
          "BatchSize": 3000,
          "gRPC": {
            "Servers": "192.168.232.130:11800",
            "Timeout": 10000,
            "ConnectTimeout": 10000,
            "ReportTimeout": 600000
          }
        }
      }
    }

    这里说一个题外话,如果你尝试用 SkyAPM.DotNet.CLI 进行添加配置文件,你可能会遇到错误

    错误 NU1202 包 SkyAPM.DotNet.CLI 1.3.0 与 net6.0 (.NETCoreApp,Version=v6.0) 不兼容。 包 SkyAPM.DotNet.CLI 1.3.0 支持: netcoreapp3.1 (.NETCoreApp,Version=v3.1) 

    因此我就直接在https://github.com/SkyAPM/SkyAPM-dotnet中找了一个skyapm.json

    没有去纠结这个程序包的兼容的问题,因为这并不影响 .NET6正常使用Skywalking

    5、启动程序,然后去SkywalkingUI上瞧一瞧,应该有数据了

    完结撒花

  • 相关阅读:
    memset 还可以这样用
    搜索(DFS)
    搜索(BFS)
    最大流之sap算法
    最大流之sap算法
    String VS Cstring(字符串)
    String VS Cstring(字符串)
    Set 与 Multiset
    deque(双端队列)
    枚举 TODO
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/15693935.html
Copyright © 2011-2022 走看看