SkyWalking學習筆記(CentOS環境)

基於 CentOS 環境使用 SkyAPM-dotnet 來介紹一下 SkyWalking, SkyAPM-dotnet 是 SkyWalking 的 .NET Agent

環境要求

  1. JDK8+

  2. Elasticsearch

  3. 8080,9200,10800,11800,12800 端口不被佔用

Elasticsearch安裝

Elasticsearch下載安裝(CentOS為例) 參考官方教程.

  1. 下載並安裝公共簽名密鑰

    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  2. yum添加安裝源倉庫修改/etc/yum.conf文件,添加源

    [elasticsearch]
    name=Elasticsearch repository for 7.x packages
    baseurl=https://artifacts.elastic.co/packages/7.x/yum

    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=0
    autorefresh=1
    type=rpm-md
  3. 安裝Elasticsearch

    sudo yum install --enablerepo=elasticsearch elasticsearch

修改配置

安裝完成後需要對 /etc/elasticsearch.yml 做如下修改

# 修改
# 如果 cluster.name 不設置為 CollectorDBCluster ,則需要修改 SkyWalking 的配置文件
cluster.name: CollectorDBCluster
# IP端口
network.host: 0.0.0.0
http.host: 0.0.0.0
http.port: 9200
# 節點
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

更多配置參考官方文檔

Elasticsearch 的端口默認綁定到 127.0.0.1 上,對外開放 http 端口就配置
http.host,對外開放 tcp 端口就配置 network.host
關於網絡配置參考官方

啟動

要將Elasticsearch配置為在系統啟動時自動啟動

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

啟動和停止可以使用以下命令

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

你可以通過發送一個HTTP請求到本地主機端口9200來測試你的Elasticsearch節點是否正在運行

 curl "http://localhost:9200/"

應該會顯示如下消息

{
"name" : "XXXX",
"cluster_name" : "CollectorDBCluster",
"cluster_uuid" : "JVNBpkf1TjeFJUjiPdD5dQ",
"version" : {
"number" : "7.5.1",

"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
"build_date" : "2019-12-16T22:57:37.835892Z",
"build_snapshot" : false,
"lucene_version" : "8.3.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

SkyWalking安裝

http://skywalking.apache.org/downloads/)

(Linux可以下載Binary Distribution for ElasticSearch 7 (Linux))

解壓之後重命名為SkyWalking-ES7(看個人愛好)

修改配置

文件位於/home/SkyWalking-ES7/config/application.yml

默認數據存儲開啟是的 h2,這裡我們需要修改數據存儲為 Elasticsearch7(在啟動 SkyWalking 之前,確保 Elasticsearch 已啟動)

啟動

SkyWalking (bin目錄)的啟動包括兩部分,一個是 SkyWalking Collector(oapService) ,一個是 SkyWalking UI(webapp

Service).

bat 為 windows 環境使用,sh 為 linux 環境使用,我們可以分別啟動 oapService 和 webappService,也可以通過 startup 一次性全部啟動,從 startup 中的命令可以知道其實就是分別啟動 oapService 和 webappService。

# cd /home/SkyWalking-ES7/bin --SkyWalking解壓的bin目錄
# ./startup.sh

出現如下消息 表示成功

SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!

如果啟動成功訪問(如果失敗參考快速入門) 可以打開鏈接http://localhost:8080查看SkyWalking UI

配置SkyWalking UI(可選)

文件位於/home/SkyWalking-ES7/webapp/webapp.yml

collector的訪問服務名稱(與config/application.yml中naming.jetty配置保持相同) 且若是多個 collector 服務名稱用’,’分隔

ConfigDescription
server.port默認監聽8080端口
collector.ribbon.listOfServers
collector.pathCollector 查詢uri地址. 默認是/graphql
collector.ribbon.ReadTimeout查詢超時時間,默認是10秒

.NET 項目接入

參考官方鏈接SkyAPM-dotnet sample目錄下的Demo

  1. 新建一個 .net core api項目 ,安裝Nuget包

Install-Package SkyAPM.Agent.AspNetCore
  1. 添加環境變量(參考)

    set ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
  2. 項目根目錄下添加 skyapm.json 文件,添加 SkyWalking 的配置信息(更多默認配置參考)

    也可以直接在appsettings.json中添加以及cs代碼添加

  3. 啟動程序,請求的追蹤結果就會被記錄下來,通過 SkyWalking UI 查看

以上部分配置文件可參考快速入門
https://github.com/apache/skywalking/blob/5.x/docs/cn/Deploy-backend-in-cluster-mode-CN.md

如果喜歡作者的文章,請關注

【麥扣聊技術】訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


分享到:


相關文章: