Linux下安裝SkyWalking 6.1版本 以及.NETCore項目集成


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

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

如顯示上圖則已安裝過jdk

然后再輸入#java -version

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

這里我們看到已經安裝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修改配置文件

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成


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

:wq保存即可

然后我們創建 elasticsearch用戶 
useradd elk #用戶名自定義

#切換用戶
su elk

編輯 /etc/security/limits.conf 配置文件, 在最后添加如下內容:

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

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

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

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

  • soft nproc 4096
    root soft nproc unlimited

修改 /etc/sysctl.conf 配置:

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

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

最后開啟9200端口號訪問

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

然后切換到bin目錄下執行 
./elasticsearch -d

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

出現如上則安裝成功
如果有錯誤可以去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

不修改也是可以使用的

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

SkyWalking的默認端口 8080.10800.11800.12800
我這里UI界面的8080端口沖突所以我修改了一下
用戶名和密碼也可以在這里修改

啟動skywalking 
切換到SkyWalking的bin目錄

#啟動Collector、WebUI

./startup.sh

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

然后我們打開ui界面http://127.0.0.1:8090

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

這樣就安裝成功了

 集成Asp.net core項目

我們這里是需要集成Asp.net core項目

這里我們需要用到.NET探針

那么什么是探針呢:
為了能夠讓APM的服務端正確的收集到追蹤及分析所需的指標,就需要有客戶端程序附屬到你的應用程序上進行數據的上報,那么這個附屬的程序就叫做探針(Agent)。

Skywalking 使用 Java 程序開發,默認提供了 Java 探針,那么在 .NET 系統中,就需要有 .NET 相關的探針才能夠正確的將數據上報的服務端,所以 skywalking-netcore 這個項目就是專門為 .NET 開發的探針 
這個是.Net探針項目的地址:
https://github.com/SkyAPM/SkyAPM-dotnet 
新的技術手冊在里面寫的也很詳細

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

現在的SkyWalking同時支持.netcore和.netframework以及更高的應用

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

在前一版本版本的 Skywalking .NET Agent 中,我們實現了對 ASP.NET Core 應用程序無入侵的集成方式,這使得你可以更加方便的開啟或者關閉探針數據的收集而不用修改任何代碼。
比如你可以在生產環境遇到性能問題時候啟動它快速的定位問題,而在問題處理完成之后再關掉,非常的方便,下面我們來說一下集成的步驟。 
這個實例相對舊一點,大家僅供參考,優先選擇上面圖片的方法。

1.在Linux環境下首先要確定你的dotnet環境是否安裝
#dotnet
若無反應則需要安裝
https://dotnet.microsoft.com/download 
選擇Linux進行命令安裝即可
安裝成功如下

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

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文件,里面是配置信息,你可以酌情修改,如下: 

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

然后我們進入項目 使用dotnet run進行運行

Linux下安裝SkyWalking 6.x版本 以及.NETCore項目集成

成功界面如上圖所示

 

 

參考文章

skywalking分布式鏈路追蹤監控系統部署
https://blog.51cto.com/536410/2318051?mType=Group

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM