博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SkyWalking Liunx 环境搭建&NetCore接入
阅读量:2072 次
发布时间:2019-04-29

本文共 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
加入如下配置

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

进行配置

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 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}: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

出处:

转载地址:http://xwxmf.baihongyu.com/

你可能感兴趣的文章
【SQL】group by 和order by 的区别。
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>
APP性能测试工具
查看>>
【Pyton】【小甲鱼】类和对象
查看>>
压力测试工具JMeter入门教程
查看>>
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>