首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用SigNoz搭建可观测系统

使用SigNoz搭建可观测系统

作者头像
iginkgo18
发布于 2023-04-03 14:56:21
发布于 2023-04-03 14:56:21
1.5K00
代码可运行
举报
文章被收录于专栏:devops_k8sdevops_k8s
运行总次数:0
代码可运行

1 简介

SigNoz是一个开源的应用程序性能监控工具,可以帮助你监控你的应用程序并排除故障,它可以进行链路追踪、基础设施监控以及日志管理,可以说是Datalog的开源版本。

具体的能力如下:

  • 监控应用程序指标,如延迟、每秒请求、错误率等
  • 监测基础设施指标,如CPU利用率或内存使用情况
  • 追踪跨服务的用户请求
  • 对指标设置警报
  • 通过查找导致问题的确切痕迹,找到问题的根本原因
  • 查看单个请求追踪的详细火焰图

SigNoz包括以下组件。

OpenTelemetry Collector:从你的服务和应用中收集遥测数据。

ClickHouse:一个开源的、高性能的列式OLAP数据库管理系统。

Query Service:前端和ClickHouse之间的接口。

Frontend:用户界面,用ReactJS和TypeScript构建。

2 安装

2.1 前提

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Kubernetes >= 1.21
仅支持x86/amd64架构
helm >= 3.8
最低资源需求4C8G30G
有可用的默认storageclass

2.2 安装

1 . 添加helm仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm repo add signoz https://charts.signoz.io
helm repo update

2 . 创建名称空间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create ns signoz

3 . 部署signoz

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm install sigonz -n signoz signoz/signoz

4 . 检查安装情况

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get po -n signoz 
NAME                                               READY   STATUS    RESTARTS   AGE
chi-signoz-clickhouse-cluster-0-0-0                1/1     Running   0          46m
signoz-alertmanager-0                              1/1     Running   0          48m
signoz-clickhouse-operator-7d4677bb47-dzbzm        2/2     Running   0          48m
signoz-frontend-67db9bcf9b-l8x5h                   1/1     Running   0          48m
signoz-k8s-infra-otel-agent-hhjxb                  1/1     Running   0          48m
signoz-k8s-infra-otel-agent-t9wjr                  1/1     Running   0          48m
signoz-k8s-infra-otel-deployment-74fbb7d79-vkm2j   1/1     Running   0          48m
signoz-otel-collector-789cf754fd-nsf6f             1/1     Running   0          48m
signoz-otel-collector-metrics-67449f79f9-cgkm4     1/1     Running   0          48m
signoz-query-service-0                             1/1     Running   0          48m
signoz-zookeeper-0                                 1/1     Running   0          48m

5 使用 nodeport 访问前端应用

第一次登录,需要注册一个账户,如下:

然后,就进入前端面板。

3 链路跟踪

3.1 官方示例

先部署一个官方demo,来感受一下链路追踪。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# curl -sL https://github.com/SigNoz/signoz/raw/main/sample-apps/hotrod/hotrod-install.sh   | HELM_RELEASE=signoz SIGNOZ_NAMESPACE=signoz bash
namespace/sample-application created
configmap/locust-cm created
configmap/scripts-cm created
deployment.apps/hotrod created
service/hotrod created
deployment.apps/locust-master created
service/locust-master created
deployment.apps/locust-slave created
✅ Successfully deployed HotROD sample application

验证服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get po -n sample-application 
NAME                            READY   STATUS    RESTARTS   AGE
hotrod-794648c678-l226b         1/1     Running   0          54s
locust-master-b65744bbf-7hxhc   1/1     Running   0          54s
locust-slave-688c86bcb7-86snl   1/1     Running   0          54s

使用下面命令模拟负载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl --namespace sample-application run strzal --image=djbingham/curl \
  --restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \
  'locust_count=6' -F 'hatch_rate=2' http://locust-master:8089/swarm

查看下面服务请求链路

点击其中一个请求,可以看到整个链路状态,如下:

也可以看整个服务的链路图

还可以查看每个服务的具体延时、错误等面板。

停止负载模拟

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n sample-application run strzal --image=djbingham/curl \
  --restart='OnFailure' -i --tty --rm --command -- curl \
  http://locust-master:8089/stop

3.2 应用接入

SigNoz支持多种语言应用的接入,包括不限于PythonJava、Golang等。

以java为例,启动命令加入 javaagent以及 SigNoz 地址配置即可,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -javaagent:/path/opentelemetry-javaagent.jar \
    -Dotel.exporter.otlp.endpoint=http://<IP of SigNoz Backend>:4317 \
    -Dotel.resource.attributes=service.name=<app_name> \
    -jar <myapp>.jar

4 监控

SigNoz可以监控数据,此处待深入

5 日志

安装完SigNoz过后,默认打开了收集K8S Pod的日志,如下:

我们可以过滤日志,比如只看namespace=monitoring的日志,如下:

其具体的配置文件在value.yaml里,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k8s-infra:
  presets:
    loggingExporter:
      enabled: false
    logsCollection:
      enabled: true
      include:
        - /var/log/pods/*/*/*.log
      startAt: beginning
      includeFilePath: true
      includeFileName: false
      blacklist:
        enabled: true
        signozLogs: false
        namespaces:
          - kube-system
        pods:
          - hotrod
          - locust
        containers: []
        additionalExclude: []

在使用上还是有不少缺陷,日志查找不是很方便;

6 告警

(1)首先,添加通知渠道,这里选择使用Webhook

由于对钉钉支持不友好,使用一个临时的webhook.sit进行测试。

(2)然后选择测试就可以再webhook.sit上接收到消息

(3)然后就可以配置告警策略了

然后就能收到告警消息。

等我物理机调试好我再亲自实践下,以上文章来自

原创是乔克、《运维开发故事》公众号团队中的一员

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用SigNoz搭建可观测系统
SigNoz是一个开源的应用程序性能监控工具,可以帮助你监控你的应用程序并排除故障,它可以进行链路追踪、基础设施监控以及日志管理,可以说是Datalog的开源版本。
没有故事的陈师傅
2023/05/01
5320
使用SigNoz搭建可观测系统
使用OpenTelemetry Operator将可观测数据发送到SigNoz
OpenTelemetry Operator 是一个用于部署和管理 OpenTelemetry 组件的 Kubernetes Operator。它是一个自定义的 Kubernetes 控制器,使用 Operator 模式自动化了 OpenTelemetry 环境的部署、配置和管理过程。
我是阳明
2023/09/11
1.3K0
使用OpenTelemetry Operator将可观测数据发送到SigNoz
eBPF Cilium实战(2) - 底层网络可观测性
在之前的平台中,对于组件之间的网络流向不具备直接的可观测性,用户组件间通信出现问题,只能通过传统命令行工具进行手动排查,而 cilium 的 Hubble 服务可以提供 UI 界面向用户展示实时的流量状态,同时可以将这些指标暴露给 Prometheus 进行聚合整理,让用户可以更直观的对底层网络状态进行观测监控。
Rainbond开源
2022/04/11
1.1K0
OpenTelemetry入门看这一篇就够了|公开课
在本文结束时,您将了解如何使用 OpenTelemetry Operator 在应用程序中实现跟踪,而无需更改任何代码。
我是阳明
2023/09/11
21.8K2
OpenTelemetry入门看这一篇就够了|公开课
五分钟了解 KubeGems 可观测性
可观测性 Observability 是近几年来随着应用微服务和容器化推进而引领出来的一个概念。其提出的最核心的三个方向 Monitoring 、Logging 和 Tracing 目前也已广泛的被各从业人员和SaaS 服务商接受,并应用在项目当中。当下具备一个可观测性分析的平台以及作为云原生时代微服务系统基础组件,不管是从 CNCF 社区还是公有云平台开放性与性能是决定平台价值的核心要素。在复杂的微服务场景下和多维度的监控数据,对 KubeGems 的可观测性设计实现带了诸多挑战。本次分享也从一个使用者的角度快速介绍当前 KubeGems 可观测性的功能。
云原生小白
2022/11/11
9340
五分钟了解 KubeGems 可观测性
外包精通--手撸Istio(Istio安装部署)笔记
如若没有loadBalancer,需要修改type: NodePort,ke svc -n istio-system istio-ingressgateway
Godev
2023/06/25
6070
想过为你的应用加上skywalking(链路监控)吗?
skywalking是什么?为什么要给你的应用加上skywalking 在介绍skywalking之前,我们先来了解一个东西,那就是APM(Application Performance Management)系统。 一、什么是APM系统 APM (Application Performance Management) 即应用性能管理系统,是对企业系统即时监控以实现 对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用进 行监测、优化,提高企业应用的可靠性和质量,保证用
极客运维圈
2020/10/09
1.5K2
想过为你的应用加上skywalking(链路监控)吗?
Istio 系列篇二 | Istio 的安装以及入门使用
前面的 Istio 系列篇一 | 服务网格和 Istio ,主要让大家对 服务网格和 Istio 有个大概的了解。
gopher云原生
2022/02/23
4.7K0
Istio 系列篇二 | Istio 的安装以及入门使用
使用 kustomize 管理 Kubernetes 应用
随着 Kubernetes 1.14 的发布,大家发现原来只是 Kube 兴趣小组的 Yaml 管理工具 kustomize 被集成到 kubectl 中,从此大家可以利用 kubectl apply-k 将指定目录的 kustomization.yaml 应用到集群中。
CS实验室
2021/03/22
1.4K0
使用 kustomize 管理 Kubernetes 应用
Jenkins X--(7)虚拟机里搭建Jenkins X环境
上一节《Jenkins X--(6)虚拟机里搭建Minikube环境》,我们已经完成了基于minikube的K8s环境的搭建,如果只是学习K8s这个环境就够了。这一节,我们要在这个K8s集群上,搭建一套云原生时代CICD的开源框架:Jenkins X。
DevOps亮哥
2019/11/28
1.9K0
Jenkins X--(7)虚拟机里搭建Jenkins X环境
更优雅的 Kubernetes 集群事件度量方案
Kubernetes 已经提供了很方便的办法来解决此问题,也就是我回复中谈到的,通过 event 来度量即可。
Jintao Zhang
2021/07/14
5090
外包精通--官网一步一步教你Argocd GuestBook Demo
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
Godev
2023/05/04
9850
二进制安装Kubernetes(k8s) v1.23.6 ---(下)
1.23.3 和 1.23.4 和 1.23.5 和 1.23.6 文档以及安装包已生成。
小陈运维
2022/04/21
1.7K0
如何使用Flux CD持续交付Kubernetes应用程序
Flux CD是一个连续交付工具,正在迅速普及。Weaveworks最初开发了该项目,然后将其开源到CNCF.
有点技术
2020/07/13
6.8K0
如何使用Flux CD持续交付Kubernetes应用程序
部署 istio 1.8.2
K8S 提供的是集群部署和运维能力,istio 提供流量管控,这是 K8S 和 istio 的区别。
SRE扫地僧
2021/03/14
1.7K0
部署 istio 1.8.2
从Helm到Operator:Kubernetes应用管理的进化
以为我们在编写部署一些简单 Deployment 的时候只需要自己编写一个 yaml 文件然后 kubectl apply 即可。
crossoverJie
2024/07/07
5140
在Kubernetes中从0打造可观测性
在这篇文章中,我们将在Kubernetes中使用Grafana、Prometheus、Loki、Tempo、OpenTelemetry来搭建可观测性平台。其中Grafana作为操作面板,Prometheus、Loki、Tempo作为数据源,分别用来获取指标、日志以及跟踪数据。同时,我们还将使用Exemplars将trace_id与Java指标相关联,使用OpenTelemetry对应用进行检测。
没有故事的陈师傅
2023/05/01
1.4K0
在Kubernetes中从0打造可观测性
被 Google 选择的下一代数据面 Cilium 是什么 - 上手实践
在我之前的文章 K8S 生态周报| Google 选择 Cilium 作为 GKE 下一代数据面[1] 一文中,我介绍了 Google 宣布使用 Cilium 作为 GKE 的下一代数据面,及其背后的故事。
Jintao Zhang
2020/09/14
1.2K0
被 Google 选择的下一代数据面 Cilium 是什么 - 上手实践
IT外包之(KOK)kubevirt--Installing KubeVirt on Kubernetes
[官网地址:] https://kubevirt.io/user-guide/operations/installation/
Godev
2023/09/01
1K0
IT外包之(KOK)kubevirt--Installing KubeVirt on Kubernetes
9. 死磕 k8s系列之安装istio及naftis
本章我们将学习如何使用快速安装istio及控制台naftis,其中,naftis是小米开源的一款dashboard。
彤哥
2020/01/17
1.8K0
9. 死磕 k8s系列之安装istio及naftis
推荐阅读
相关推荐
使用SigNoz搭建可观测系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验