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

文章目录

前言

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

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

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

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"克隆到目录中。

shell 复制代码
git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/

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

shell 复制代码
./install.sh

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

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

3.SigNoz简单使用

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

应用程序性能监控

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

日志管理

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

分布式跟踪

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

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

指标和仪表板

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

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

警报

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

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

异常监控

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

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

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

4. 安装内网穿透

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

下面是安装cpolar步骤:

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

使用一键脚本安装命令

shell 复制代码
sudo curl https://get.cpolar.sh | sh

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

shell 复制代码
sudo systemctl status cpolar

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

5.配置SigNoz公网地址

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

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

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

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

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

小结

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

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

6. 配置固定公网地址

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

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

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

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

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

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

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

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

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

相关推荐
fo安方12 分钟前
运维的利器–监控–zabbix–第三步:配置zabbix–中间件–Tomcat–步骤+验证
运维·中间件·zabbix
爱奥尼欧22 分钟前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天1 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
搬码临时工1 小时前
小企业如何搭建本地私有云服务器,并设置内部网络地址提供互联网访问
运维·服务器
tan77º2 小时前
【Linux网络编程】网络基础
linux·服务器·网络
风口上的吱吱鼠2 小时前
Armbian 25.5.1 Noble Gnome 开启远程桌面功能
服务器·ubuntu·armbian
18你磊哥2 小时前
Windows 本地安装部署 Apache Druid
运维·debian
笑衬人心。2 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
IT成长日记3 小时前
【Docker基础】Docker数据卷管理:docker volume inspect及其参数详解
运维·docker·容器·volume·inspect
ldj20203 小时前
Jenkins 构建过程常见错误
运维·jenkins