当前位置: 首页 > news >正文

本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程

文章目录

    • 前言
    • 1.关于SigNoz
    • 2.本地部署SigNoz
    • 3.SigNoz简单使用
    • 4. 安装内网穿透
    • 5.配置SigNoz公网地址
    • 6. 配置固定公网地址

前言

本文介绍如何在Ubuntu系统上使用 Docker 快速部署一款强大的应用性能监控工具SigNoz,并结合cpolar内网穿透工具轻松实现异地远程使用。

今天聊聊一个超级神器——SigNoz,一个让你们监控应用性能和健康状况时不再抓狂的工具。如果你正被复杂的微服务架构和无服务器架构搞得头大如斗,那么今天的教程你绝对不能错过!

在现代应用开发中,复杂的微服务架构使得问题定位变得非常困难。不同服务之间的交互错综复杂,一旦出现问题,往往需要花费大量时间和精力才能找到根源。此外,传统监控工具通常将日志、指标和追踪数据分开处理,导致信息碎片化,难以综合分析。而商业监控工具不仅价格昂贵,还可能存在合规性和安全性问题。

5448cbd1ec93a68e8e5e5640aaaca29

1.关于SigNoz

SigNoz是一个开源的应用程序性能管理(APM)和可观察性平台,它提供了全面的监控、跟踪和分析功能,以帮助开发人员监控并解决应用程序中的问题。

主要特点:

  1. 开源免费:SigNoz 完全开源,你可以免费使用它,无需担心合规性或安全性问题。
  2. 用户界面友好:SigNoz 的用户界面设计得非常流畅和先进,即使你是新手也能轻松上手。
  3. 强大的过滤和聚合选项:无论是跟踪数据还是指标,SigNoz 都提供了强大的过滤和聚合功能,让你能快速找到问题的根源。
  4. 增强的灵活性和隐私:由于 SigNoz 是开源的,你可以自行托管,完全控制自己的数据,无需担心隐私法规。
  5. 无缝整合日志、指标和追踪:SigNoz 将 Log、Metrics 和 Tracing 无缝整合在一起,提供了一个统一的入口,使用起来非常便捷。

使用场景

  • 微服务架构监控:轻松监控多个微服务的性能,快速定位问题。
  • 无服务器架构监控:在无服务器环境中,SigNoz 能帮助你监控各个函数的运行情况。
  • 日志分析:收集和分析应用日志,发现潜在的问题。
  • 性能优化:通过详细的性能指标,优化应用性能,提升用户体验。

2.本地部署SigNoz

本例使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

首先打开终端输入以下命令将 SigNoz 存储库和“cd”克隆到目录中。

git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/

image-20250120173703479

接下来我们输入这行命令运行脚本

./install.sh

image-20250120173823671

他会让你输入邮箱,直接输入就可以了。

image-20250120173931361

接着我们打开浏览器输入localhost:3301,就能看到SigNoz的界面了!

image-20250120174026339

3.SigNoz简单使用

打开界面后我们先创建一个 管理员账户,也可以不选择了解signoz新功能或匿名。

image-20250120174213794

应用程序性能监控

使用 SigNoz APM 监控您的应用程序和服务。它带有关键应用程序指标(如 p99 延迟、错误率、Apdex 和每秒操作数)的开箱即用图表。

b00b8b2ce11c912e60666e561a4819a

日志管理

SigNoz 可以用作集中式日志管理解决方案。我们使用ClickHouse(被Uber和Cloudflare等公司使用)作为数据存储,这是一种极其快速且高度优化的日志数据存储。使用快速过滤器和强大的查询生成器即时搜索您的所有日志。

e88a138a1a8487063deb3e779aa654b

分布式跟踪

分布式跟踪对于解决微服务应用程序中的问题至关重要。在 OpenTelemetry 的支持下,SigNoz 中的分布式跟踪可以帮助您跨服务跟踪用户请求,从而帮助您识别性能瓶颈。

在 Flamegraphs 和 Gantt Charts 的帮助下,在详细分类中查看用户请求。单击任何范围可查看精美表示的整个跟踪,这将帮助您了解请求流中实际发生问题的位置。

14e522e005dbb3f24ca0bbfa7e0532b

指标和仪表板

从您的基础设施或应用程序中提取指标,并创建自定义控制面板来监控它们。使用各种面板类型(如饼图、时间序列、条形图等)创建适合您需求的可视化。

使用易于使用的指标查询生成器快速创建对指标数据的查询。添加多个查询并将这些查询与公式组合在一起,以快速创建真正复杂的查询。

91df2179d3215e8c687382fa8f32667

警报

使用 SigNoz 中的警报,在您的应用程序中发生任何异常情况时收到通知。您可以针对任何类型的遥测信号(日志、指标、跟踪)设置警报,创建阈值并设置通知渠道以接收通知。警报历史记录和异常检测等高级功能可以帮助您创建更智能的警报。

SigNoz 中的警报可帮助您主动识别问题,以便您可以在问题到达客户之前解决它们。

57cd420330784a0686728e71677c1da

异常监控

在 Python、Java、Ruby 和 Javascript 中自动监控异常。对于其他语言,只需输入几行代码即可开始监控异常。

请参阅应用程序捕获的所有异常的详细堆栈跟踪。您还可以登录自定义属性,以向异常添加更多上下文。例如,您可以添加属性来识别发生异常的用户。

bd8a05fb2ab1c55aab3d295f1f0354f

更多使用功能详情查看SigNoz作者Github主页:SigNoz/signoz:SigNoz 是 OpenTelemetry 原生的开源可观测性平台,在单个应用程序中具有日志、跟踪和指标。开源的DataDog、NewRelic等的替代品。 🔥 🖥 开源👉应用程序性能监控(APM)和可观察性工具

4. 安装内网穿透

不过我们目前只能在本地局域网内使用手机电脑等设备访问刚刚使用docker部署的SigNoz,如果想让异地好友、让更多人也能使用在家中部署的SigNoz应该怎么办呢?很简单,只要安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示running即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

5.配置SigNoz公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:SigNoz注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:3301
  • 域名类型:随机域名
  • 地区:选择China Top

image-20250120175310929

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20250120175348103

如下图所示,成功实现使用公网地址异地远程访问本地部署的SigNoz了。

image-20250120175441327

使用账号登录即可正常使用了:

2c15dadae5a971aead1c91db13c9036

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用SigNoz,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择China VIP,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20250121100616308
保留成功后复制保留的二级子域名地址:signoz

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道SigNoz,点击右侧的编辑

image-20250121100715153

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China VIP

image-20250121100747265

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250121100902061

最后,我们使用固定的公网地址访问SigNoz可以看到访问成功,现在一个永久不会变化的网址就设置好了。现在,你可以通过公网URL与任何人分享你的SigNoz了!无论是团队成员还是朋友,都可以轻松访问你精心管理的SigNoz。

以上就是如何在Linux Ubuntu系统Docker本地安装SigNoz并实现异地远程访问的全部过程,怎么样?是不是觉得整个过程既简单又有趣呢?赶紧去试试吧,说不定还能发现更多好玩的功能哦!如果你在使用过程中遇到任何问题,欢迎随时留言交流,我会尽力为大家解答的!

相关文章:

本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程

文章目录 前言1.关于SigNoz2.本地部署SigNoz3.SigNoz简单使用4. 安装内网穿透5.配置SigNoz公网地址6. 配置固定公网地址 前言 本文介绍如何在Ubuntu系统上使用 Docker 快速部署一款强大的应用性能监控工具SigNoz,并结合cpolar内网穿透工具轻松实现异地远程使用。 …...

防火墙的会话并发数、端口数量及其关系‌

‌防火墙的会话并发数、端口数量及其关系‌: ‌会话并发数‌:会话并发数,也称为并发连接数,是指防火墙能够同时处理的点对点连接的最大数目。这个参数直接影响到防火墙在高流量环境下的表现,特别是对于需要处理大量并发…...

随机变量的变量替换——归一化流和直方图规定化的数学基础

变量替换是一种在统计学和数学中广泛应用的技术,它通过定义新的变量来简化问题,使得原本复杂的随机变量变得更加容易分析。 变量替换的公式,用于将一个随机变量 X X X 的概率密度函数 f X f_X fX​ 转换为其经过函数 g g g 变换后的随机变…...

Java春招面试指南前言

在当今竞争激烈的就业市场中,对于即将踏入职场的Java开发者而言,春招是一次宝贵的机会。本博客专栏旨在为大家提供一份全面且实用的Java春招面试指南,助力大家顺利通过面试,开启职业生涯的新篇章。 无论你是初出茅庐的应届生&…...

【技术洞察】2024科技绘卷:浪潮、突破、未来

涌动与突破 2024年,科技的浪潮汹涌澎湃,人工智能、量子计算、脑机接口等前沿技术如同璀璨星辰,方便了大家的日常生活,也照亮了人类未来的道路。这一年,科技的突破与创新不断刷新着人们对未来的想象。那么回顾2024年的科…...

为AI聊天工具添加一个知识系统 之54 为事务处理 设计 基于DDD的一个 AI操作系统 来处理维度

本文要点 要点 Architecture程序 它被设计为一个双面神结构的控制器,它的两侧一侧编译执行另一侧 解释执行,自已则是一个 翻译器--通过提供两个不同取向之间 的 结构映射的显示器(带 图形用户接口GUI和命令行接口CLI 两种 接口&#xff09…...

【数据结构】二分查找

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

读书笔记《网络是怎样连接的》

目录 第一章1.1 生成http请求消息输入网址URL解析URLURL中省略文件名的情况http的基本思路生成HTTP请求消息发送请求后收到响应 1.2 向DNS服务器查询Web服务器的IP地址IP地址的基本知识域名和IP地址并用的理由Socket库提供查询IP地址的功能通过解析器向 DNS 服务器发出查询解析…...

Java 设计模式一

Java 设计模式是软件开发中的一类解决方案,旨在解决常见的设计问题,提升代码的可维护性、可复用性和扩展性。它们通常基于一些经验和最佳实践,提供了解决问题的标准化方法。以下是常见的 Java 设计模式及其概述: 1. 创建型模式 (…...

SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟,并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理,并结合实际代码展示 SOME/IP 的使用,旨在自我复习并与大家交流。文中引用了一些例图,但由于未能找到原作…...

Java 生成 PDF 文档 如此简单

嘿,朋友!在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿,今儿个就来好好唠唠这个。咱有不少好用的库可以选择,下面就给你详细讲讲其中两个超实用的库,一个是 iText,另一个是 Apache PDFBox。 用 iTe…...

深入探究 YOLOv5:从优势到模型导出全方位解析

一、引言 在计算机视觉领域,目标检测是一项至关重要的任务,它在自动驾驶、安防监控、工业检测等众多领域都有着广泛的应用。而 YOLO(You Only Look Once)系列作为目标检测算法中的佼佼者,一直备受关注。其中&#xff…...

【PoCL】运行 LLVM 中 pass 优化过程详解

PoCL 项目中调用 LLVM 的 Pass 对编译过程的优化至关重要。本博文以PoCL 开源项目源码为例,详细说明【PoCL】运行 LLVM 中 pass 优化过程 目录 0. 个人简介 && 授权须知1. pocl_llvm_run_pocl_passes 函数作用2. 禁止 “小网格 small grid” 工作组(workGroup)特化的…...

如何将使用unsloth微调的模型部署到ollama?

目录 一、将模型保存为gguf格式 二、下载llama.cpp 三、生成 llama-quantize 可执行文件 四、使用llama-quantize 五、训练模型 六、将模型部署到ollama 一、将模型保存为gguf格式 在你的训练代码 trainer.train() 之后添加: model.save_pretrained_gguf(&q…...

【测试】UI自动化测试

长期更新,建议关注收藏点赞! 目录 概论WEB环境搭建Selenium APPAppium 概论 使用工具和代码执行用例。 什么样的项目需要自动化? 需要回归测试、自动化的功能模块需求变更不频繁、项目周期长(功能测试时长:UI自动化测…...

SSM开发(二) MyBatis两种SQL配置方式及其对比

目录 一、MyBatis两种SQL配置方式 二、使用XML映射文件配置SQL语句 三、使用注解配置SQL语句 四、两种方式对比 总结 1、注解 2、XML配置 五、MyBatis多数据源的两种配置方式 参考 一、MyBatis两种SQL配置方式 MyBatis 提供了两种方式来配置SQL语句:注解&a…...

【Redis】在ubuntu上安装Redis

文章目录 提权搜索软件包安装修改配置文件ip保护模式配置密码 重新启动服务器使用 redis 自带的客户端来连接服务器 提权 先切换到 root 用户,su 命令切换到 root. 搜索软件包 使用 apt 命令来搜索 redis 相关的软件包 apt search redis 安装 使用 apt 命令安装 redisapt …...

JS-Web API -day06

一、正则表达式 正则表达式测试工具: http://tool.oschina.net/regex 1.1 正则表达式介绍与语法 正则表达式: 正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。通常用来查…...

JS-Web API -day03

一、事件流 1.1 事件流与两个阶段说明 事件流 指的是事件完整执行过程中的流动路径 假设页面有个div标签,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段 捕获阶段:Document - Element html - Elementbody - Element div…...

进程优先级

基本概念 cpu资源分配的先后顺序,就是指进程的优先权(priority)。 优先权⾼的进程有优先执⾏权利。配置进程优先权对多任务环境的linux很有⽤,可以改善系统性能;还可以把进程运⾏到指定的CPU上,这样⼀来&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...

sshd代码修改banner

sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。​ 一、准…...