文档章节

SkyWalking Liunx 环境搭建&NetCore接入

o
 osc_w9s1w4o0
发布于 2019/03/29 16:24
字数 1020
阅读 11
收藏 0

精选30+云产品,助力企业轻松上云!>>>

背景

前两天看见有小哥介绍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

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 国际」创作共享协议,转载请在文章明显位置注明作者及出处。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
SkyWalking Liunx 环境搭建&NetCore接入

SkyWalking Liunx 环境搭建&NetCore接入 背景 前两天看见有小哥介绍windows下安装skywalking的介绍地址在这。 正好最近也在搭建linux环境的SkyWalking,顺便把linux环境搭建的经验分享下,帮...

优惠码领取
2019/03/29
0
0
SkyWalking 分布式追踪系统

随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦...

BeckJin
2018/09/09
0
0
.NetCore使用skywalking实现实时性能监控

原文:.NetCore使用skywalking实现实时性能监控 一、简介 很久之前写了一篇 《.Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控》关于NetCore性能监控的文章,使用Inf...

osc_p61a4z2o
2019/05/13
1
0
SkyWalking-netcore 无入侵分布式追踪

SkyWalking-netcore 最近更新的版本改成了无入侵的集成方式,主要思想应该是分离开发和监测,开发只管代码部分,监测的问题是代码程序之外的工作。 基于之前 SkyWalking 分布式追踪系统 的介...

BeckJin
2018/10/28
0
0
.NetCore使用skywalking实现实时性能监控

一、简介 很久之前写了一篇 《.Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控》关于NetCore性能监控的文章,使用Influxdb+AppMetrics进行项目性能监控,由于技术有限...

osc_w9s1w4o0
2019/03/28
2
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊rocketmq-client-go的TraceInterceptor

序 本文主要研究一下rocketmq-client-go的TraceInterceptor TraceInterceptor rocketmq-client-go-v2.0.0/producer/interceptor.go // WithTrace support rocketmq trace: https://github.c......

go4it
12分钟前
0
0
如何在Android文本视图周围添加边框? - How do I put a border around an Android textview?

问题: 是否可以在textview周围绘制边框? 解决方案: 参考一: https://stackoom.com/question/EfXR/如何在Android文本视图周围添加边框 参考二: https://oldbug.net/q/EfXR/How-do-I-put...

法国红酒甜
26分钟前
10
0
设计模式(4) 建造者模式

什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了...

zhixin9001
39分钟前
14
0
ArrayList源码分析 —— JDK8

ArrayList的特性 ArrayList内部使用数据作为存储结构,ArrayList可以理解为数组的扩展对象,封装了常用的和非常用的操作数组的方法。以及当数组长度不足以保存数组时,自动扩容数组,通常Arr...

XuePeng77
45分钟前
42
0
__slots__的用法? - Usage of __slots__?

问题: Python中__slots__的目的是什么-尤其是关于何时以及何时不使用它的目的? 解决方案: 参考一: https://stackoom.com/question/1ymu/slots-的用法 参考二: https://oldbug.net/q/1ym...

富含淀粉
56分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部