參考自:
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上瞧一瞧,應該有數據了
完結撒花
