AspNetCore利用Skywalking监控性能
SkyWalking开源项目由吴晟于2015年创建,同年10月在GitHub上作为个人项目开源。
SkyWalking项目的核心目标,是针对微服务、Cloud Native、容器化架构,提供应用性能监控(APM)和分布式调用链追踪能力。
2017年11月,SkyWalking社区正式决定,寻求加入Apache基金会,希望能使项目成为更为开放、全球化和强大的APM开源产品,并加强来自社区的合作和交流。最终实现构建一款功能强大、简单易用的开源APM产品。
2017年12月8日,Apache软件基金会孵化器项目管理委员会 ASF IPMC宣布“SkyWalking全票通过,进入Apache孵化器”。
** 软件环境**
1 | CentOS7 |
Docker安装ElasticSearch5.X
新建docker-compose.yml文件:
1 | touch docker-compose.yml |
编辑,填入以下内容:
1 | version: '2.2' |
注:需要使用xpack.security.enabled=false,关闭xpack身份验证。
启动:
1 | docker-compose up -d |
部署skywalking
官网:https://github.com/apache/incubator-skywalking/releases
解压:
1 | tar -xzvf apache-skywalking-apm-incubating-5.0.0-beta.tar.gz |
** 修改配置**
(1) 修改/bin目录下webappService.sh
–collector.ribbon.listOfServers=192.168.0.110:10800
修改localhost为本地IP地址:
localhost=>192.168.0.110
(2) 修改config目录下application.yml
修改localhost为本地IP地址:
localhost=>192.168.0.110
进入解压后的目录,运行:
1 | ./bin/startup.sh |
结果:
1 | SkyWalking Collector started successfully! |
查看主机监控的端口:
1 | netstat -ntlp |
结果:
1 | tcp6 0 0 192.168.0.110:12800 :::* LISTEN 4147/java |
其中8080,10800,11800,12800为skywalking程序使用的端口,
8083,8084为AspDotNetCore使用端口
9200,9300为EalsticSearch使用端口
运行dotnetcore应用
1.获取AspDotNetCore项目
1 | git clone https://github.com/syxdevcode/SkyWalking.Sample.git ## 克隆项目 |
2.使用docker-compose命令启动
1 | docker-compose up -d --build |
注:运行可能遇到问题:
1 | Unable to load the service index for source https://api.nuget.org/v3/index.json |
可能因为镜像服务问题:
解决:
1 | vim /etc/docker/daemon.json |
修改前:
1 | { |
修改后:
1 | { |
重启docker服务:
1 | sudo systemctl daemon-reload |
之后继续执行docker-compose命令,同时,不要忘记将elasticsearch容器启动。
查看容器IP:
1 | docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' skywalkingsample_skywalkingfrontend_1 |
3.firewalld添加端口
在docker容器内部无法访问宿主机-No route to host问题,需要在宿主机防火墙添加端口,或者关闭防火墙(不推荐)
(1) 关闭/启动防火墙:
1 | systemctl start firewalld |
(2) 添加端口
1 | firewall-cmd --zone=public --add-port=8080/tcp --permanent |
4.测试AspDotNetCore程序接口
(1) Backend项目Put接口
1 | curl --header "Content-Type: application/json" \ |
(2) Backend项目Get接口
1 | curl http://localhost:8084/api/apps |
5.查看skywalking
访问:http://localhost:8080/#/monitor/dashboard
参考: