前两天看见有小哥介绍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
centos安装官网地址:点这里 按照步骤便可安装完成docker环境sql
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插件,参照上方端口开放说明开放端口说明
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 是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
服务启动后,以下地址进行访问
{ip}:11800
ui默认启动帐号密码:admin
,admin
这个能够在webapp目录下webapp.yum
进行设置
说了半天,终于到正文了
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 国际」创做共享协议,转载请在文章明显位置注明做者及出处。