SkyWalking Liunx 環境搭建&NetCore接入

背景

前兩天看見有小哥介紹windows下安裝skywalking的介紹地址在這。 正好最近也在搭建linux環境的SkyWalking,順便把linux環境搭建的經驗分享下,幫助下使用linux部署DotNetCore項目的同窗。html

介紹

SkyWalking是開源的apm工具,服務器端使用java編寫,客服端支持java,DotNetCore,NodeJs,Php接入。java

詳細點擊進入官方介紹:SkyWalkingnode

服務部署環境

Linux Centos7 3.10.0-862.11.6.el7.x86_64mysql

說明

SkyWalking 6x版本能夠選擇h2,es,mysql等存儲。這裏選擇es進行搭建。爲了減小下載各個環境依賴的麻煩,使用docker安裝存儲。linux

Es能夠使用集羣方式搭建,能夠不與Skywalking主程序放在一塊git

端口開放訪問問題

我是使用itpables進行端口管理,編輯iptables文件加入想要的開放端口配置github

編輯文件

vi /etc/sysconfig/iptables

加入以下配置web

# Web端口
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
# es地址,能夠查詢es,若是創建
-A INPUT -p tcp -m tcp --dport 9200 -j ACCEPT
#grpc端口
-A INPUT -p tcp -m tcp --dport 11800 -j ACCEPT

docker安裝

centos安裝官網地址:點這裏 按照步驟便可安裝完成docker環境sql

拉取es

SkyWalking 6x版本依賴的es是6.6.2docker

# 拉取es,版本:6.6.2
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.2
# 運行 docker ,映射http端口及tcp端口,能夠使用-v參數進行目錄掛載
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.6.2

若是須要修改es配置文件,好比修改跨域問題,能夠進行以下操做

docker exec -it es /bin/bash
cd /config
vi elasticsearch.yum

加入以下參數

http.cors.enabled: true
http.cors.allow-origin: "*"

而後重啓docker服務

sudo docker restart es

若是需對es進行管理,能夠安裝head插件,參照上方端口開放說明開放端口說明

head安裝

docker pull mobz/elasticsearch-head:5
## 運行head
docker run -d --name es_head -p 9100:9100 mobz/elasticsearch-head:5

若是對docker容器進行可視化管理的話,拉取dockerui

docker run -d -p 5000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

SkyWalking 安裝

skywalking 是java編寫,因此運行以來java,能夠參照以下安裝java

java安裝

項目獲取

地址:github

以最新6.0.0-GA爲例

# 下載文件
wget -O SkyWalking6.0.0 https://github.com/apache/incubator-skywalking/archive/v6.0.0-GA.tar.gz

# 進行配置
tar -zxvf SkyWalking6.0.0
cd  ./SkyWalking6.0.0/config

# 編輯配置文件,將es配置開放
vim application.yum

默認是使用h2,將h2註釋掉,將es配置開放出來。ES使用集羣的話,能夠將clusterNodes配置進行替換

storage:
#  h2:
#    driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
#   url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
#  user: ${SW_STORAGE_H2_USER:sa}
  elasticsearch:
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000} # Execute the bulk every 2000 requests
    bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mb
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests

保存後啓動服務

../bin/startup.sh

服務啓動後,以下地址進行訪問

ui地址

http://{ip}:8080

grp地址

{ip}:11800

ui默認啓動帳號密碼:admin,admin

這個能夠在webapp目錄下webapp.yum進行設置

DotNetCore 接入

說了半天,終於到正文了

6x版本已經實現無代碼侵入接入,能夠使用SkyAPM.CLI進行生成配置文件。

假如DotNetCore項目名稱是SWTest, grpc地址是127.0.0.1:11800 執行以下命令

# 安裝cli工具
dotnet tool install -g SkyAPM.DotNet.CLI
# 生成配置文件
dotnet skyapm config SWTest 127.0.0.1:11800

生成文件skyapm.json,配置以下

{
  "SkyWalking": {
    "ServiceName": "WSTest",
    "Namespace": "",
    "HeaderVersions": [
      "sw6"
    ],
    "Sampling": {
      "SamplePer3Secs": -1,
      "Percentage": -1.0
    },
    "Logging": {
      "Level": "Information",
      "FilePath": "logs\\skyapm-{Date}.log"
    },
    "Transport": {
      "Interval": 3000,
      "ProtocolVersion": "v6",
      "QueueSize": 30000,
      "BatchSize": 3000,
      "gRPC": {
        "Servers": "12.0.0.1:11800",
        "Timeout": 10000,
        "ConnectTimeout": 10000,
        "ReportTimeout": 600000
      }
    }
  }
}

添加以下環境變量

ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore

SKYWALKING__SERVICENAME=WSTest

將文件設置爲始終複製,啓動項目便可

git官網接入說明地址:Git 介紹

福利

以下服務能夠進行測試 139.219.12.5:11800:11800

查看數據私信發管理後臺帳號密碼,嘿嘿

做者:cgyqu
出處:https://www.cnblogs.com/cgyqu/p/10622114.html 本站使用「署名 4.0 國際」創做共享協議,轉載請在文章明顯位置註明做者及出處。

相關文章
相關標籤/搜索