skywalking 安装_分布式监控系统SkyWalking

分布式监控系统SkyWalking

公司微服务架构用了有些时间了,微服务架构下的链接调用问题也越来越明显。人员流失,架构改造等原因,想人工维护架构图是不大可能了。常见的APM工具有catzipkinpinpoint,SkyWalking也不是解决该问题的“银弹”,只是能完整绘制出链路数据流。

简介

SkyWalking 是针对分布式系统的应用性能监控,天生吻合微服务、云原生和面向容器的分布式系统架构PHP应用也可接入,但需以插件方式接入,偶尔也会有一些坑。

主要有以下特性:

  • 服务、服务实例和endpoint(如:单个HTTP URI)的性能指标分析
  • 根因分析
  • 服务拓扑图
  • 服务和Endpoint依赖分析
  • 慢服务和慢Endpoint探查
  • 性能优化
  • 分布式追踪和追踪上下文传播
  • 告警

SkyWalking支持从多种数据源,收集不同格式的遥感数据,包括

  1. Java, .NET Core, NodeJS, PHP 自动探针
  2. Istio 遥感数据
  3. Zipkin v1/v2

最新有8.x架构图如下,较复杂,但实际应用起来还算简单

4ec97c69035a1e6c305e2af329403262.png
archat

部署安装

环境要求

  1. JDK8+
  2. Elasticsearch 6.x
  3. 8080,10800,11800,12800 端口不被占用

参考官方教程, 安装完成后需要对 config/elasticsearch.yml 做如下修改:

# 修改
# 如果 cluster.name 不设置为 CollectorDBCluster ,则需要修改 SkyWalking 的配置文件
cluster.name: CollectorDBCluster   
network.host: 0.0.0.0
# 增加
thread_pool.bulk.queue_size: 1000
  • linux环境中 tar -xvf skywalking-dist.tar.gz解压,windows环境中选择zip包.
  • 运行 bin/startup.sh,windows环境运行 bin/startup.bat

你可以使用config / application.yml的默认值

  • 注意:在5.0.0-alpha 版本中,startup.sh将会启动collector和UI两个进程,UI通过127.0.0.1:10800访问本地collector,无需额外配置。

顺利的话,访问自己 http://localhost:8080 就能查看页面了。想进一步完善的话,可以申请域名,做80跳转。

4c8dc52fb8af8113f879dae26705867a.png
首页

Java接入

参考官网 https://github.com/apache/skywalking/blob/5.x/docs/cn/Deploy-skywalking-agent-CN.md,这里不做赘述。

.NET接入

参考官网 https://github.com/SkyAPM/SkyAPM-dotnet, 这里不做赘述

PHP接入

参考官网 https://github.com/SkyAPM/SkyAPM-php-sdk/blob/master/docs/install.md,这里不做赘述

使用体验和一些坑

  • 所有服务的数据流调用

看起来很酷炫,数据很详尽,实际上没多大用。

8aadd3336303ad497a791cc4d5a42e31.png

global-map
  • 点击单台详情有服务器概览

d3f47a7a80717880dbadd80157c5db9e.png

single-detail
  • java项目监控有天生优势,对gc,jvm的监控有screen绘制的很详尽
ad58b9cb5a10e076545dd4559510df5a.png
jvm-gc
  • 搜索框功能有待加强,一般人是真找不到。。
8f6594d8e37cfa381bb92e501c8d0e35.png
selector
  • trace状态跟踪功能很赞

可以指定状态来,比如下图,我指定 error状态,选择指定时间段后,会把这段时间内的程序异常搜索出来,点击具体条目,会显示错误详情。这个功能还是很赞的

4638ef913c3498e05484e8a8ef9b979e.png
error-list
cc019c872b18bbbaf52925d604f90c0b.png
error-detail
  • 一些不足的地方
  1. 缓存严重,新增服务器通常要删除浏览器缓存重新打开页面,才能看到新增服务器。这对于新增服务器是否正常添加到服务器池造成不小疑问和问题排查难度。尤其是新接触Skywalking的同学
  2. PHP接入后,如果产生程序日志,服务池中是不会显示服务器列表的。Java项目倒未发现这个问题。其它语言有待考查

总体

  1. 部署简单
  2. 体验友好
  3. 功能强大
  4. UI优美
  5. 暂未发现性能占用严重问题
  6. 对程序入侵程度可以接受。

推荐一试, 更多功能,大家自行发掘吧

c12217c82f474ae79236be2dd7bf9c7b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值