SkyWalking Liunx 环境搭建&NetCore接入

简介: SkyWalking Liunx 环境搭建&NetCore接入背景前两天看见有小哥介绍windows下安装skywalking的介绍地址在这。正好最近也在搭建linux环境的SkyWalking,顺便把linux环境搭建的经验分享下,帮助下使用linux部署DotNetCore项目的同学。

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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
7月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
766 87
|
7月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
235 12
|
人工智能 自然语言处理
冬天到了,用OmniGen生成一个温暖的拥抱
近期,北京智源人工智能研究院(BAAI)正式推出了一款名为OmniGen的新型多功能图像生成模型。
|
10月前
|
存储 算法 Java
算法系列之动态规划
动态规划(Dynamic Programming,简称DP)是一种用于解决复杂问题的算法设计技术。它通过将问题分解为更小的子问题,并存储这些子问题的解来避免重复计算,从而提高算法的效率。
415 4
算法系列之动态规划
|
11月前
|
网络协议 Java Nacos
SpringCloudAlibaba-Seata2.0.0与Nacos2.2.1
检查 Nacos 控制台,确认 Seata 服务器和 Spring Boot 应用已成功注册。 - 通过执行全局事务验证 Seata 的分布式事务管理功能。
1203 31
|
网络协议 Java Apache
【Java】已解决java.net.HttpRetryException异常
【Java】已解决java.net.HttpRetryException异常
338 0
|
SQL 关系型数据库 MySQL
MySQL异常一之: You can‘t specify target table for update in FROM clause解决办法
这篇文章介绍了如何解决MySQL中“不能在FROM子句中指定更新的目标表”(You can't specify target table for update in FROM clause)的错误,提供了错误描述、需求说明、错误做法和正确的SQL写法。
2505 0
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
1408 1
|
SQL IDE Java
通过一次性能优化,再次记牢了mybatisplus的QueryWrapper、LambdaQueryWrapper、AbstractWrapper这三者之间的关系...
本文描述了一次针对SpringBoot应用中MyBatisPlus分页查询的性能优化过程。在优化时,作者重写了BaseMapper的`selectPage`方法,通过`Wrapper`的`between`操作添加了ID区间限制以提升SQL执行效率。然而,由于在业务服务类中循环调用分页查询时未每次都创建新的`Wrapper`对象,导致`id BETWEEN ? AND ?`条件重复出现在SQL中。那么,如何解决这个问题呢?
1393 5