惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
T
Tenable Blog
Webroot Blog
Webroot Blog
L
Lohrmann on Cybersecurity
S
Securelist
S
Schneier on Security
NISL@THU
NISL@THU
Know Your Adversary
Know Your Adversary
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Privacy International News Feed
H
Hacker News: Front Page
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
博客园 - Franky
PCI Perspectives
PCI Perspectives
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Azure Blog
Microsoft Azure Blog
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
P
Proofpoint News Feed
S
Security Affairs
WordPress大学
WordPress大学
The Last Watchdog
The Last Watchdog
S
SegmentFault 最新的问题
小众软件
小众软件
F
Full Disclosure
博客园 - 叶小钗
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
The Blog of Author Tim Ferriss
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
Security Latest
Security Latest
P
Proofpoint News Feed
月光博客
月光博客
T
Tailwind CSS Blog
Scott Helme
Scott Helme
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
T
Threat Research - Cisco Blogs
Help Net Security
Help Net Security
Project Zero
Project Zero

博客 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 k8s master 节点 Unauthorized Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升 端到端测试:模拟用户体验 Kubernetes — containerd 安装和部署 CI/CD 可观察性-基于grafana Argo cd 安装和部署 linux服务器进程打开文件过多导致服务异常 使用 ElasticSearch Curator 7天定期删除日志 sonarqube docker安装和配置 SSH 通过 443 端口连接 GitHub iOS 17 「待机显示」适配普通 iPhone(非 Pro/Max),屏幕在充电时常亮 GNU/Linux 一键更换系统软件源脚本 解决Elasticsearch索引只读(read-only) 【福利】埃隆·马斯克传 [沃尔特·艾萨克森] 在线下载 【破解】小鹏P5和小鹏G9开启adb和网络adb Kubernetes — kubecost 分析 Kubernetes 成本 3D Gaussian Splatting:3D模型渲染 Linux 系统收包流程以及内核参数优化 2023亚运会电竞门票民购买指南(报名+抽签) Vue3 + vite + nginx项目部署后404问题 大麦抢票辅助软件(福利 TFBOYS十年之约演唱会 2023 全机位 视频) 黑群晖最新安装教程 Ansible部署ceph集群 最好的微信朋友圈集赞神器-福利推荐 推荐一下 容器云资源 2010年的天涯神贴聊房价 如何礼貌回绝不合理的需求 nginx 配置和编译 github 国内代理访问下载 使用scrapy-redis实现增量爬取 逆境和成长-2022年终总结 优雅的使用Conda管理python环境 Jenkins 编译Android apk 流水线 Kubernetes — 更新证书 shell功能脚本集合 Nexus3 使用和部署 githubAction set-output弃用错误 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) Cloudflare Zero Trust 内网穿透 k8s CNI 问题 连接认证失效 k8s.gcr.io国内无法连接解决方法 headscale 部署使用 羊了个羊小程序 破解通关 K8S 问题排查:cgroup 内存泄露问题 RocketMQ k8s部署 4主4从集群 docker 问题处理 kubernetes 存储 linux服务器 删除空间却未释放 kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 nginx ssh-key connection exception kubernetes manual expansion VSCode插件推荐=> Code Runner ant build.xml 编写 kubernetes 调度过程 记录一次上门打散工 k8s本地联调神器kt-connect Ant中如何添加第三方jar包依赖 OpenELB:让k8s私有环境对外暴露端口 linux 网络测速 安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题 logrotate 日志滚动的使用 nginx 编译参数详解 nginx 重写规则 rewrite模块 nginx.conf 配置文件详解 rsync 文件同步 163企业邮箱设置教程 2021年第50周记
skywalking APM 监控
2022-08-10 · via 博客 on 打工人日志

skywalking

基于 OpenTracing 规范,专门为微服务架构以及云原生服务。

APM 监控

一个基于微服务架构的电商系统

APM (Application Performance Management) 即应用性能管理,属于 IT 运维管理(ITOM)范畴.
分为一下三个方面:

  • Logging
    服务在处理某个请求时打印的错误日志,可以将这些日志信息记录到Elasticsearch或是其他存储中。通过 Kibana 或是其他工具来分析这些日志了解服务的行为和状态,大多数情况下。日志记录的数据很分散,并且相互独立。例如错误日志,请求处理过程中关键步骤的日志等等。
  • Metrics
    Metric是可以聚合的,例如为电商系统中每个 HTTP 接口添加一个计数器,计算每个接口的 QPS,可以通过简单的加和计算得到系统的总负载情况。
  • Tracing
    在微服务架构系统中一请求会经过很多服务处理,调用链路会非常长,要确定中间哪个服务出现异常是非常麻烦的事情,通过分布式链路追踪,运维人员就可以构建一个请求的视图。视图上战术了一个请求从进入系统开始到返回响应的整个流程。

系统交互图

系统加载图 >

目前流行的APM监控

  • Zipkin
    • 对 web.xml 进行修改,代码侵入
    • twitter 开源
  • Cat
    • 支持 Java、C/C++、Node.Js、Python、go
    • 代码侵入,埋点
    • 美团开源
  • Pinpoint
    • 基于字节码注入技术,代码无侵入
    • 韩国公司开发,社区交流滞后
    • 只支持 hbase
    • 颗粒度更细
  • Skywalking
    观测性分析平台
    • 基于字节码注入技术,代码无侵入
    • 服务、服务实例、端点指标分析
    • 服务拓扑图分析
    • 服务、服务实例和端点(Endpont)SLA 分析
    • 支持 es,h2,mysql,TiDb,sharding-sphere

skywalking 整体框架

  • 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
  • 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
  • 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
  • 左部分 SkyWalking UI :负责提供控台,查看链路等等。

skywalking 配置

使用 docker-compose 安装

使用 mysql 作为存储
下载 mysql-connector-java-8.0.30.jar

1mkdir ./libs/
2mv mysql-connector-java-8.0.30.jar ./libs/

创建带 mysql 驱动的基础镜像

1FROM apache/skywalking-oap-server:9.1.0
2LABEL maintainer="nb@nbtyfood.com"
3COPY ./libs/* /skywalking/oap-libs

上传 dockerhub 或者自己的镜像仓库,这里我是上传到自己的仓库

  1. 创建镜像

    docker build -t skywalking-mysql-server:v1.0 .

  2. 打 tag,选择上传位置

    docker tag skywalking-mysql-server:v1.0 <仓库地址>/blog/skywalking-mysql-server:v1.0

  3. 上传镜像

    docker push <仓库地址>/blog/skywalking-mysql-server:v1.0

 1version: "3"
 2services:
 3  skywalking-oap-server:
 4    image: "hub.docker.com/jobcher/skywalking-mysql-server:v1.0" #docker iamge 地址
 5    container_name: "oap-server"
 6    restart: "always"
 7    environment:
 8      - SW_STORAGE=mysql
 9      - SW_JDBC_URL="jdbc:mysql://10.12.12.4:3306/sk"
10      - SW_DATA_SOURCE_USER=user # mysql用户名
11      - SW_DATA_SOURCE_PASSWORD=password # mysql密码
12    ports:
13      - "10.12.12.16:12800:12800"
14      - "10.12.12.16:1234:1234"
15      - "10.12.12.16:11800:11800"
16
17  skywalking-oap-ui: #UI界面
18    image: "apache/skywalking-ui:9.1.0"
19    container_name: "oap-ui"
20    restart: "always"
21    environment:
22      - SW_OAP_ADDRESS=http://10.12.12.16:12800
23    ports:
24      - "8180:8080"

skywalking 客户端部署

下载客户端
点击下载

安装到要监控的主机

1wget https://archive.apache.org/dist/skywalking/8.14.0/apache-skywalking-java-agent-8.14.0.tgz
2tar -zxvf apache-skywalking-java-agent-8.14.0.tgz

配置变量

1# SkyWalking Agent 配置
2export SW_AGENT_NAME=rf-consumer # 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
3export SW_AGENT_COLLECTOR_BACKEND_SERVICES=10.12.12.16:11800 # 配置 Collector 地址。
4#export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕。
5export JAVA_AGENT=-javaagent:/home/ubuntu/skywalking-agent/skywalking-agent.jar # SkyWalking Agent jar 地址。

启动java程序

1java $JAVA_AGENT -jar yourapp.jar
2#或者
3java -javaagent:<skywalking-agent-path> -jar yourApp.jar