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
加入如下配置
# 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 环境
拉取 es
SkyWalking 6x 版本依赖的 es 是 6.6.2
# 拉取 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
项目获取
地址: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 国际」创作共享协议,转载请在文章明显位置注明作者及出处。