ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记一次部署Skywalking(基于Elasticsearch),并使用 .NET6接入Skywalking

2021-12-15 18:02:52  阅读:272  来源: 互联网

标签:es7 skywalking -- oap Elasticsearch SkyAPM NET6 Skywalking docker


参考自:

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上瞧一瞧,应该有数据了

 

完结撒花

标签:es7,skywalking,--,oap,Elasticsearch,SkyAPM,NET6,Skywalking,docker
来源: https://www.cnblogs.com/jianghaidong/p/15693935.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有