本文共 3483 字,大约阅读时间需要 11 分钟。
SkyWalking Liunx 环境搭建&NetCore接入
背景前两天看见有小哥介绍windows下安装skywalking的介绍地址在这。正好最近也在搭建linux环境的SkyWalking,顺便把linux环境搭建的经验分享下,帮助下使用linux部署DotNetCore项目的同学。介绍
SkyWalking是开源的apm工具,服务器端使用java编写,客服端支持java,DotNetCore,NodeJs,Php接入。详细点击进入官方介绍:SkyWalking
服务部署环境
Linux Centos7 3.10.0-862.11.6.el7.x86_64说明
SkyWalking 6x版本可以选择h2,es,mysql等存储。这里选择es进行搭建。为了减少下载各个环境依赖的麻烦,使用docker安装存储。Es可以使用集群方式搭建,可以不与Skywalking主程序放在一块
端口开放访问问题
我是使用itpables进行端口管理,编辑iptables文件加入想要的开放端口配置编辑文件
vi /etc/sysconfig/iptables 加入如下配置-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9200 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 11800 -j ACCEPT
docker安装centos安装官网地址:点这里按照步骤即可安装完成docker环境拉取es
SkyWalking 6x版本依赖的es是6.6.2docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.2
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 /configvi elasticsearch.yum加入如下参数http.cors.enabled: true
http.cors.allow-origin: "*"然后重启docker服务
sudo docker restart es
如果需对es进行管理,可以安装head插件,参照上方端口开放说明开放端口说明head安装
docker pull mobz/elasticsearch-head:5docker run -d --name es_head -p 9100:9100 mobz/elasticsearch-head:5
如果对docker容器进行可视化管理的话,拉取dockeruidocker run -d -p 5000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
SkyWalking 安装skywalking 是java编写,所以运行以来java,可以参照如下安装javajava安装
项目获取
地址:github以最新6.0.0-GA为例
wget -O SkyWalking6.0.0
tar -zxvf SkyWalking6.0.0
cd ./SkyWalking6.0.0/configvim application.yum
默认是使用h2,将h2注释掉,将es配置开放出来。ES使用集群的话,可以将clusterNodes配置进行替换storage:
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 requestsbulkSize: ${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mbflushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requestsconcurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
保存后启动服务
../bin/startup.sh
服务启动后,如下地址进行访问ui地址
{ip}:8080grp地址
{ip}:11800ui默认启动账号密码:admin,admin
这个可以在webapp目录下webapp.yum进行设置
DotNetCore 接入
说了半天,终于到正文了6x版本已经实现无代码侵入接入,可以使用SkyAPM.CLI进行生成配置文件。
假如DotNetCore项目名称是SWTest, grpc地址是127.0.0.1:11800
执行如下命令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
出处:转载地址:http://xwxmf.baihongyu.com/