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

SkyWalking和APM介紹

今天給你們給你們介紹一下SkyWalking,那什麼是SkyWalkingphp

Skywalking 是 Apache 基金會下面的一個開源 APM 項目 ,那什麼又是APM呢?html

APM 全稱是 (Application Performance Monitor)應用性能監測軟件,主要是用來處理以及追蹤分佈式系統中的應用程序的性能問題,從而快速找出問題的根源,進而可讓開發者定位問題從而提高應用程序性能。java

Skywalking 是一個APM系統,爲微服務架構和雲原生架構系統設計,它經過客戶端探針自動收集追蹤性能所需的指標,並進行分佈式追蹤。經過這些調用鏈路以及指標,Skywalking 能夠感知應用間關係和服務間關係,並進行相應的指標統計及展現 。 
目前主要的一些 鏈路追蹤 工具備: Cat、Zipkin、Pinpoint、SkyWalking,等等....這裏主要介紹 SkyWalking 。
SkyWalking官方GitHub地址:
https://github.com/apache/skywalkinggit

SkyWalking安裝

本次安裝是在Linux環境下進行,如需docker下安裝請查閱其餘文章github

Linux環境:centos7web

安裝SkyWalking的環境要求docker

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

首先咱們先肯定下是否安裝JDK1.8apache

#javajson

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

如顯示上圖則已安裝過jdkvim

而後再輸入#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

相關文章
相關標籤/搜索