SkyWalking和APM介绍

今天给大家给大家介绍一下SkyWalking,那什么是SkyWalking

Skywalking 是 Apache 基金会下面的一个开源 APM 项目 ,那什么又是APM呢?

APM 全称是 (Application Performance Monitor)应用性能监测软件,主要是用来处理以及追踪分布式系统中的应用程序的性能问题,从而快速找出问题的根源,进而可以让开发者定位问题从而提升应用程序性能。

Skywalking 是一个APM系统,为微服务架构和云原生架构系统设计,它通过客户端探针自动收集追踪性能所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking 可以感知应用间关系和服务间关系,并进行相应的指标统计及展示 。 
目前主要的一些 链路追踪 工具有: Cat、Zipkin、Pinpoint、SkyWalking,等等....这里主要介绍 SkyWalking 。
SkyWalking官方GitHub地址:
https://github.com/apache/skywalking

SkyWalking安装

本次安装是在Linux环境下进行,如需docker下安装请查阅其他文章

Linux环境:centos7

安装SkyWalking的环境要求

  1. JDK8+
  2. Elasticsearch 6.X (目前SkyWalking已支持 Elasticsearch 6.X版本

首先我们先确定下是否安装JDK1.8

#java

如显示上图则已安装过jdk

然后再输入#java -version

这里我们看到已经安装JDK1.8

一般的Linux都是预安装了jdk1.8的,如未安装我们运行以下

JDK1.8下载:
yum -y install java

接下来我们安装Elasticsearch
我这里安装的是6.4版本的 Elasticsearch 
最新版本已经更新到7.1.0版本
大家可以选择安装
这里以6.4.0来举例

安装 Elasticsearch 
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz

解压 Elasticsearch 安装包
#解压到指定目录 
tar -zxvf ./elasticsearch-6.4.0.tar.gz -C /usr/local/ 
#最终结果/usr/local/elasticsearch-6.4.0 
#改变权限 
chown -R elk:elk /usr/local/elasticsearch-6.4.0/

然后我们进入 elasticsearch-6.4.0/config文件夹内,vim修改配置文件

定位到#http.port:9200位置,在下面增加:network.host: 0.0.0.0

:wq保存即可

然后我们创建 elasticsearch用户 
useradd elk #用户名自定义

#切换用户
su elk

编辑 /etc/security/limits.conf 配置文件, 在最后添加如下内容:

  • elk soft nofile 65536
  • elk hard nofile 65536
  • soft nproc 4096
  • hard nproc 4096

修改 /etc/security/limits.d/90-nproc.conf 配置文件:

  • soft nproc 4096
    root soft nproc unlimited

修改 /etc/sysctl.conf 配置:

#添加下面配置: vm.max_map_count=655360 
#并执行命令: sysctl -p

最后开启9200端口号访问

/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT

然后切换到bin目录下执行 
./elasticsearch -d

出现如上则安装成功
如果有错误可以去logs下面查看日志

接下来我们安装 SkyWalking

我们用到的SkyWalking的6.1新版本,使用了全新UI....

我们可以去看下Apache官方提供的镜像,有清华的国内镜像还是很方便的 
https://www.apache.org/dyn/closer.cgi/skywalking/6.1.0/apache-skywalking-apm-6.1.0.tar.gz

下载skywalking
#wget http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.1.0/apache-skywalking-apm-6.1.0.tar.gz

解压skywalking

tar -xf apache-skywalking-apm-6.1.0.tar.gz

重新命名

mv apache-skywalking-apm-incubating skywalking

修改 skywalking/webapp/webapp.yml  信息,将127.0.0.1修改成本地真实ip

不修改也是可以使用的

SkyWalking的默认端口 8080.10800.11800.12800
我这里UI界面的8080端口冲突所以我修改了一下
用户名和密码也可以在这里修改

启动skywalking 
切换到SkyWalking的bin目录

#启动Collector、WebUI

./startup.sh

然后我们打开ui界面http://127.0.0.1:8090

这样就安装成功了

集成Asp.net core项目

我们这里是需要集成Asp.net core项目

这里我们需要用到.NET探针

那么什么是探针呢:
为了能够让APM的服务端正确的收集到追踪及分析所需的指标,就需要有客户端程序附属到你的应用程序上进行数据的上报,那么这个附属的程序就叫做探针(Agent)。

Skywalking 使用 Java 程序开发,默认提供了 Java 探针,那么在 .NET 系统中,就需要有 .NET 相关的探针才能够正确的将数据上报的服务端,所以 skywalking-netcore 这个项目就是专门为 .NET 开发的探针 
这个是.Net探针项目的地址:
https://github.com/SkyAPM/SkyAPM-dotnet 
新的技术手册在里面写的也很详细

现在的SkyWalking同时支持.netcore和.netframework以及更高的应用

在前一版本版本的 Skywalking .NET Agent 中,我们实现了对 ASP.NET Core 应用程序无入侵的集成方式,这使得你可以更加方便的开启或者关闭探针数据的收集而不用修改任何代码。
比如你可以在生产环境遇到性能问题时候启动它快速的定位问题,而在问题处理完成之后再关掉,非常的方便,下面我们来说一下集成的步骤。 
这个实例相对旧一点,大家仅供参考,优先选择上面图片的方法。

1.在Linux环境下首先要确定你的dotnet环境是否安装
#dotnet
若无反应则需要安装
https://dotnet.microsoft.com/download 
选择Linux进行命令安装即可
安装成功如下

2.然后使用dotnet的CLI命令来进行 Agent 的安装

dotnet tool install -g SkyWalking.DotNet.CLI

// 注意需要在管理员权限下运行 
dotnet skywalking install

3.我们需要在环境变量加两个参数
Linux:
export DOTNET_ADDITIONAL_DEPS=/usr/local/share/dotnet/x64/additionalDeps/skywalking.agent.aspnetcore 
export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyWalking.Agent.AspNetCore

4.我们给集成的应用取个名字,以下为示例
dotnet new mvc -n mvcdemo

以上命令会生成一个名为 mvcdemo 默认的 ASP.NET MVC 项目,我们需要给项目搞一个代号以便让服务端识别,就取代号名为 mvc_sample 吧,然后把这个代号使用下面的命令也添加到环境变量里面。

Linux:
export SKYWALKING__APPLICATIONCODE=mvc_sample

5. 最后一步就是我们需要第一步的 CLI 工具生成一个配置文件,从而配置各种参数,使用以下命令生成一个配置文件:
// mvc_sample 为上面 第3 个项目的代号, localhost:12800 为 Skywalking 服务端的地址 
dotnet skywalking config mvc_sample localhost:12800 
上面的命令会在你的项目文件夹下生成一个名为 skywalking.json 的json文件,里面是配置信息,你可以酌情修改,如下:

然后我们进入项目 使用dotnet run进行运行

成功界面如上图所示

参考文章

skywalking分布式链路追踪监控系统部署
https://blog.51cto.com/536410/2318051?mType=Group

在 ASP.NET Core 中集成 Skywalking 
https://www.cnblogs.com/savorboard/p/asp-net-core-skywalking.html

Linux下安装SkyWalking 6.1版本 以及.NETCore项目集成的更多相关文章

  1. linux下安装memcache(php版本5.3)

    1.安装之前需要的准备:所需软件 libevent-1.4.6这个版本网上没找到,所以安装最新的版本libevent-2.0.22 libevent-1.4.6-stable.tar.gz (http ...

  2. Linux下安装pj Navicat121 x64版本

    一,先在官网下载https://www.navicat.com.cn/download/navicat-premium Linux 64位版本(说是Linux,其实就是Windows+Wine版本)[ ...

  3. linux下安装mongodb(php版本5.3)

    转:原文出处忘记了. 1. 下载MongoDB 2. 解压文件到某目录下,然后重命名: [root@localhost var]# tar -xzvf mongodb-linux-i686-2.0.1 ...

  4. linux下安装多个jdk版本的切换问题

    下载地址: https://www.azul.com/downloads/zulu/ 解压: [root@localhost java]# tar -zxvf /usr/java/zulu8.38.0 ...

  5. 关于在linux下安装git,以及在idea上将项目部署到码云上

    GIT 基于对linux感兴趣,并且也考虑到以后从事开发后也会用到linux,着实在闲余之际学学linux.最近在用VM虚拟机环境下学做一个项目,在git上卡了一点时间,但同时也收获  了不少,下面写 ...

  6. Linux下安装 Posgresql 并设置基本参数

    在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...

  7. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  8. Linux 下安装中文 ctex 指南

    大家在用 $\LaTeX$ 进行中文排版时相信会遇到不少问题,而$\textbf{ctex}$套装的出现则有效的解决了这一问题,只要安装了$\textbf{ctex}$那么在文中不用进行引用设置就可以 ...

  9. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

随机推荐

  1. Aspose.Words转换为PDF的时候字体丢失的问题解决

    系统中明明有字体的,Word中显示也正常,就是转换为PDF以后不正常,字体丢失,被替换成了等线字体 好一番研究,终于找到原因 ,原因是Windows\Fonts下的文件,有些只是虚拟的路径,真正的字体 ...

  2. 使用python+ffmpeg批量转换格式

    需求:  给定一个文件夹路径,遍历该文件夹内的所有文件以及子文件夹内的文件,当所有后缀名为wav格式的文件转换为ogg格式的文件. import os # 获取目录下的所有文件列表 import fn ...

  3. ajax请求的原生js实现

    我们使用ajax请求一般都用的jQuery, axios封装好了的api, 那么如果只能用原生js, 我们该如何操作了? 上代码. 我们在同目录下写好一个json文件(data.json)用于请求测试 ...

  4. Windows win32 API 类库 硬件

    // 硬件 Win32_Processor, // CPU 处理器 Win32_PhysicalMemory, // 物理内存条 Win32_Keyboard, // 键盘 Win32_Pointin ...

  5. noip2007 tg day1t1 统计数字

    题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...

  6. 【SVN】提交报错:×××文件is not under version control

    解决方法:1.删除出错的文件,然后在出错文件所在文件夹执行还原操作 2.VS中可将文件先排除在项目外,再包含在项目内,即可正常提交

  7. spring中的web上下文,spring上下文,springmvc上下文区别(超详细)

    web上下文(Servlet context),spring上下文(WebApplication Context),springmvc上下文(mlWebApplicationCont)之间区别. 上下 ...

  8. ICPC Asia Nanning 2017 F. The Chosen One (高精度运算)

    题目链接:The Chosen One 比赛链接:ICPC Asia Nanning 2017 题意 \(t\) 组样例,每组给出一个整数 \(n(2\le n\le 10^{50})\),求不大于 ...

  9. MyBatis-Spring(二)--SqlSessionTemplate实现增删改查

    SqlSessionTemplate是个线称安全的类,每运行一个SqlSessionTemplate时,它就会重新获取一个新的SqlSession,所以每个方法都有一个独立的SqlSession,这意 ...

  10. 实验报告&总结

    Java实验报告 班级计科二班 学号 20188429 姓名 罗璇哲 完成时间 评分等级 实验三 String类的应用 一. 实验目的 (1) 掌握类String类的使用: (2) 学会使用JDK帮助 ...