SkyWalking+Asp.Net Core 分布式追踪系统
-
SkyWalking 是一套(APM)分布式追踪系统,SkyWalking提供了很多数据存储列如:Mysql,H2,Elasticsearch7 等,我这里用的是Elasticsearch7 ,SkyWalking默认H2,H2是内存数据库,数据文件一旦损坏oapservice就启动不了,所以我这里用的是Elasticsearch7 。
SkyWalking下载地址
Elasticsearch下载地址
-
SkyWalking 安装的环境要求
CentOS7
JDK8+
Elasticsearch7 做数据存储,9200端口不被占用
SkyWalking 8080,10800,11800,12800 端口不被占用 -
接下来安装
yum -y list java* yum install java-1.8.0-openjdk.x86_64 java -version wget SkyWalking下载连接 wget Elasticsearch下载连接 tar -zxvf SkyWalking和Elasticsearch
-
Elasticsearch需要创建用户不允许ROOT运行 参考
sudo useradd es sudo passwd es #设置用户权限 sudo chown -R es [Elasticsearch tar 包目录]
-
SkyWalking 安装修改配置文件application.yml,在config文件夹下
vi application.yml selector: ${SW_STORAGE:H2}把h2改成selector: ${SW_STORAGE:Elasticsearch7} 保存
- SkyWalking 启动SkyWalking bin目录下的startup.sh,启动包括两部分,oapService和webappService,查看日志文件在logs文件夹下
./startup.sh
- 正常的情况下就可以访问了端口8080,记得开放防火墙
- 接下来接入 .net 项目
Install-Package SkyAPM.Agent.AspNetCore
设置环境变量ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
- 在根目录下创建skyapm.json配置,下面是官网的配置
{
"SkyWalking": {
"ServiceName": "[服务名字]",
"Namespace": "",
"HeaderVersions": [
"sw6"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0
},
"Logging": {
"Level": "Information",
"FilePath": "logs/skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v6",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "[IP]:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}
运行即刻,目前Dapper和SmartSql等ORM框架都支持SkyWalking 探针