文章目录

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

前言

在分布式架构主导的现代运维体系中,系统性能监控正面临范式变革的关键转折。当微服务架构遭遇服务雪崩、无服务器架构出现冷启动延迟等复杂场景时,传统监控方案暴露出致命缺陷:其一是数据孤岛导致的全景视图缺失,其二是异构指标体系间缺乏语义关联性,其三是故障定位过程的低效性。尽管商业APM平台提供了看似完整的解决方案,但其基于数据量的阶梯式计费模式,正在成为企业数字化转型的隐性成本增长点。

作为应对这一行业困境的开源利器,SigNoz正通过其创新的观测架构重塑监控体系。该平台通过统一的追踪数据聚合、多维指标采集和结构化日志分析,构建起覆盖全链路的性能观测体系。其开源特性不仅消除了授权成本约束,更通过模块化设计实现了技术栈的灵活适配。在Ubuntu系统中通过Docker容器化部署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在Ubuntu环境中的部署可行性,并通过内网穿透技术突破了传统网络架构的访问限制。在Docker容器化部署完成后,通过配置持久化域名解析方案,为监控平台创建了具备两个核心优势的稳定访问入口:其一,通过域名绑定实现的长期有效访问地址,彻底规避了动态IP变更导致的连接中断风险;其二,基于标准HTTP协议的加密访问通道,既保证了数据传输的安全性,又实现了跨地域的实时监控数据访问。

本方案的价值体现在三个层面:首先是容器化部署带来的环境可复制性和跨平台移植能力;其次是通过穿透技术构建的全球可达监控架构,解决了传统内网限制下的远程访问难题;最后是开源架构在功能完备性与成本控制间的平衡优势。建议读者按照以下路径验证方案:1)在沙箱环境中复现完整部署流程;2)测试跨运营商网络的访问稳定性;3)探索与GitOps工具链的集成方案。对于可能出现的容器网络策略冲突或服务注册失败等典型问题,可通过分层日志分析定位根因,必要时可结合容器镜像的版本回滚机制进行快速修复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913553.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913553.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913553.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NV298NV312美光固态闪存NW639NW640

美光固态闪存技术全景解析:从NV298到NW640的深度探索近年来,美光科技凭借其在3D NAND闪存技术上的持续突破,推出了多款备受市场关注的固态硬盘产品。本文将从技术评测、产品对比、市场趋势、用户反馈及应用场景等多个维度,深入剖析…

2025.07.04【服务器】|使用万兆网卡提升服务器间互联速度,实现快速数据传输

文章目录1. **万兆网卡概述**2. **为什么选择万兆网卡**3. **万兆网卡配置与安装**3.1 **安装网卡**3.2 **安装驱动程序**3.3 **检查网卡状态**4. **配置网络接口**4.1 **Linux 系统配置**4.2 **Windows 系统配置**5. **优化性能**5.1 **使用多线程传输**5.2 **开启 TCP/UDP 窗…

光伏发电量精准估算,提升投资效益

在光伏产业规模化发展进程中,准确估算光伏发电量是提升项目投资效益的关键环节。科学的发电量预测不仅能为项目可行性研究提供依据,更能在电站全生命周期内优化运营策略,实现投资回报最大化。基于多维度数据整合与智能算法构建的精准预测体系…

Linux的互斥锁、Linux的POSIX信号量(二值、计数)、RTOS的二值信号量

锁和信号量最大的区别就是:锁严格要求 “谁占用谁释放”,而信号量允许 “一个任务 / 线程释放,另一个任务 / 线程获取”。 特性互斥锁(Mutex)POSIX 信号量(Semaphore)初始状态初始为 “锁定”(PTHREAD_MUTEX_INITIALIZER),需显式获取(pthread_mutex_lock)。初始值可…

基于Java+SpringBoot 协同过滤算法私人诊所管理系统

源码编号:S607源码名称:基于SpringBoot5的协同过滤算法的私人诊所管理系统用户类型:双角色,患者、医生、管理员数据库表数量:15 张表主要技术:Java、Vue、ElementUl 、SpringBoot、Maven运行环境&#xff1…

什么是DINO?

DINO 是一个由 Meta AI (当时的 Facebook AI) 在 2021 年提出的自监督学习框架,其全称是 “self-DIstillation with NO labels”,直译为“无标签的自我蒸馏”。这个名字精准地概括了它的核心思想。 DINO 的出现是一个里程碑,因为它首次有力地…

如何在 Android Framework层面控制高通(Qualcomm)芯片的 CPU 和 GPU。

如何在 Android Framework层面控制高通(Qualcomm)芯片的 CPU 和 GPU。 参考:https://blog.csdn.net/YoungHong1992/article/details/117047839?utm_source%20%20uc_fansmsg 作为一名 Framework 开发者,您拥有系统级的权限&#…

程序员在线接单

十年Java全栈工程师在线接单Java程序代做,兼职接单,系统代做,二次开发,网站开发部署,项目合作,商业项目承包 全栈开发,支持定制各种管理系统、小程序 商用或个人使用等项目都接 服务二: Java调试…

Python 异步爬虫(aiohttp)高效抓取新闻数据

一、异步爬虫的优势 在传统的同步爬虫中,爬虫在发送请求后会阻塞等待服务器响应,直到收到响应后才会继续执行后续操作。这种模式在面对大量请求时,会导致大量的时间浪费在等待响应上,爬取效率较低。而异步爬虫则等待可以在服务器…

Jenkins Pipeline(二)

1.Pipeline 变量 在 Jenkins 管道(Pipeline)中,变量是一种非常有用的功能,它们可以帮助你在构建过程中存储和传递数据。Jenkins 管道支持多种方式来定义和使用变量,包括环境变量、脚本变量以及全局变量。 1.2 脚本变…

springsecurity02

提前打开Redis1)通过内置的用户名和密码登录spring-boot-starter-security.jar2)使用自定义用户名和密码登录UserDetailService自定义类实现UserDetailService接口,重写loadUserByUsername方法class UserDetailServiceImpl implements UserDe…

Apache组件遭大规模攻击:Tomcat与Camel高危RCE漏洞引发数千次利用尝试

漏洞态势分析帕洛阿尔托网络公司Unit 42团队最新研究报告显示,针对Apache Tomcat和Apache Camel关键漏洞的网络攻击正在全球激增。2025年3月披露的这三个远程代码执行(RCE, Remote Code Execution)漏洞——CVE-2025-24813(Tomcat&…

Odoo 中国特色高级工作流审批模块研发

本文旨在为基于Odoo 18平台开发一款符合中国用户习惯的、功能强大的通用工作流审批模块提供一份全面的技术实现与产品设计方案。该模块的核心特性包括:为最终用户设计的图形化流程设计器、对任意Odoo模型的普适性、复杂的审批节点逻辑(如会签、条件分支、…

unplugin-vue-components 最佳实践手册

🎨 unplugin-vue-components 最佳实践手册 整理不易,收藏、点赞、关注支持下!本文详细介绍了 unplugin-vue-components 插件的作用、配置方法、常用场景及与 unplugin-auto-import 配合使用的实战技巧,特别适合 Vue 3 Vite 项目。…

⿻ Java 学习日志 01

Java 运行机制: 原文件>编译器>字节码(class后缀)>JVM虚拟机>操作系统既有编译的过程也有解释的过程。JVM:Java Virture Machine/执行字节码的虚拟机,是实现跨平台——Java核心机制的核心。 JRE&…

基于Flutter的web登录设计

基于Flutter的web登录设计 1. 概述 本文档详细介绍了基于Flutter Web的智能家居系统登录模块的设计与实现。登录模块作为系统的入口,不仅提供了用户身份验证功能,还包括注册新用户的能力,确保系统安全性的同时提供良好的用户体验。 本文档…

Maven继承:多模块项目高效管理秘笈

Maven继承是Maven项目管理中的核心机制,允许子模块共享并统一管理父模块的配置信息(尤其是依赖关系),其核心原理与Java中的类继承类似。以下是关键要点解析:一、核心概念与作用消除配置冗余 多个子模块共享相同依赖&am…

关于系统无法找到 arm-linux-gcc 命令,这表明你的环境中尚未安装 ARM 交叉编译工具链。以下是详细的解决方案:(DIY机器人工房)

1. 错误原因分析 错误信息:无法将“arm-linux-gcc”项识别为 cmdlet/函数/程序 这说明 Windows 或 Cygwin 环境中没有安装 ARM 交叉编译工具,或者工具路径未添加到系统 PATH 中。当前环境: 你之前使用的是 Cygwin 环境下的 x86_64 架构 GCC&…

redis一篇入门

一、Redis 安装 Linux 系统安装通过包管理器安装 (以 Ubuntu 为例): sudo apt update sudo apt install redis-server从源码编译安装: wget https://download.redis.io/redis-stable.tar.gz tar -xzvf redis-stable.tar.gz cd redis-stable make sudo make installWindows 安装…

【JAVAFX】webview导入本地html并传入参数

java侧String num"234234";URL url1 getClass().getResource("/html/imGroupVar.html");webview.getEngine().load(url1.toExternalForm() "?cc" num);本地html <!DOCTYPE html> <html lang"en"> <head><met…