欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SkyWalking Liunx 环境搭建&NetCore接入

程序员文章站 2022-10-06 13:50:57
背景 前两天看见有小哥介绍windows下安装skywalking的介绍 "地址在这" 。 正好最近也在搭建linux环境的SkyWalking,顺便把linux环境搭建的经验分享下,帮助下使用linux部署DotNetCore项目的同学。 介绍 SkyWalking是开源的apm工具,服务器端使用 ......

背景

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

项目获取

地址:

以最新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
出处:
本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。