zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    封装Web Uploader 上传插件、My97DatePicker、百度 编辑器 的使用 (ASP.NET MVC)
    记一次 Newtonsoft.Json 巧妙的用法(C#)
    使用 ItextSharp HTML生成Pdf(C#)
    go 发布
    Winform 使用DotNetBar 根据菜单加载TabControl
    Winform 使用DotNetBar 设置界面为Office2007 样式
    DataTable 导出到TXT
    (Winform程序带源码) 弹出输入框和获取输入框的值
    C# 返回指定目录下所有文件信息
    Winform 应用DotnetBar
  • 原文地址:https://www.cnblogs.com/cgyqu/p/10622114.html
Copyright © 2011-2022 走看看