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

【SigNoz部署安装】Ubuntu环境部署SigNoz:Docker容器化监控的全流程指南

文章目录

    • 前言
    • 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.lryc.cn/news/582128.html

相关文章:

  • 御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换
  • HTTP 重定向
  • Camera相机人脸识别系列专题分析之十六:人脸特征检测FFD算法之libcvface_api.so数据结构详细注释解析
  • C++ -- string类的模拟实现
  • Day07- 管理并发和并行挑战:竞争条件和死锁
  • 【AI大模型入门指南】机器学习入门详解
  • 烟雾,火焰探测器
  • Linux操作系统:软硬链接与动静态库
  • ClickHouse介绍与应用
  • 迁移GitLab,在新Linux中用Docker重新部署GitLab备份还原
  • C#中的BindingList有什么作用?
  • 【机器学习深度学习】多分类评估策略:混淆矩阵计算场景模拟示例
  • 亚马逊运营进阶指南:如何用AI工具赋能广告运营
  • 诊断工程师进阶篇 --- 车载诊断怎么与时俱进?
  • English Practice - Day 2
  • vite打包的简单配置
  • react状态管理库 - zustand
  • 风电自动化发电中的通信桥梁:CAN主站转MODBUS TCP网关解析
  • 【MyBatis】MyBatis与Spring和Spring Boot整合原理
  • 5种方法将联系人从iPhone转移到OnePlus
  • C++--map和set的使用
  • 仿mudou库one thread oneloop式并发服务器
  • 达梦数据库的信息查询
  • Redisson 分布式锁原理解析
  • Navicat Premium可视化工具使用查询控制台优化SQL语句
  • 商品中心—库存分桶高并发的优化文档
  • 力扣 3258 统计满足 K 约束的子字符串数量 I 题解
  • Java工具类,对象List提取某个属性为List,对象List转为对象Map其中某个属性作为Key值
  • RAG实战指南 Day 8:PDF、Word和HTML文档解析实战
  • UI自动化常见面试题