今天給你們給你們介紹一下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
本次安裝是在Linux環境下進行,如需docker下安裝請查閱其餘文章github
Linux環境:centos7web
安裝SkyWalking的環境要求docker
首先咱們先肯定下是否安裝JDK1.8apache
#javajson
如顯示上圖則已安裝過jdkvim
而後再輸入#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 配置文件, 在最後添加以下內容:
修改 /etc/security/limits.d/90-nproc.conf 配置文件:
修改 /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項目
這裏咱們須要用到.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