Opsdis 如何在 Grafana Cloud 上构建自定义可观测性解决方案
公司总是在寻求透明度和可见性,尤其是在监控方面,但随着监控要求和方法的发展,要保持同步并非易事。这一事实激发了 Johannes Dagemark 和 Anders Håål 的灵感。Johannes Dagemark 是一位拥有技术背景的企业家,而 Anders Håål 是一位在聚合指标和事件数据方面经验丰富的技术顾问。2017 年,他们共同创立了可观测性咨询公司 Opsdis。Opsdis 总部位于瑞典哥德堡,专注于帮助客户实施监控和指标系统,以便他们能够跟上不断发展的云计算和容器化环境。
该公司与医疗保健和交通运输行业的许多公司合作,其中几个项目主要为客户构建自动化。Opsdis 现任 CTO 的 Håål 表示:“对于许多客户,我们还尝试帮助他们从经典的 IT 基础设施监控过渡,并让他们开始将其用作 Grafana 的数据源。如果您有经典的基于节点的监控,您会希望以更智能的方式查看所有这些指标。”
2020 年 9 月,该公司加入了 Grafana Labs 的合作伙伴计划,该计划为构建基于 Grafana 的解决方案以实现客户可观测性、监控和数据可视化目标的服务提供商提供专业支持和增长机会。“Grafana Labs 推崇的工具栈对我们来说至关重要,”Håål 说。“这非常有意义,尤其现在随着 Loki 的引入,以及高级日志和指标的结合。”
您不必考虑内部服务器、基础设施设置或任何类似复杂的事务。您可以专注于通过可观测性想要实现的功能。
Anders Håål,Opsdis 首席技术官
Håål 特别喜欢 Loki 的一个特性是,它比大多数其他日志记录解决方案占用的磁盘和内存空间更少。“Loki 设计起来更轻便,消耗的资源绝对更少,”他解释说。
一个棘手的问题
去年,Opsdis 收到了 Cind AB 的联系,这是一家瑞典公司,使用创新的 3D 相机技术来测量物体的重量和体积,例如输送带上的散装包裹或卡车上木材的尺寸。
当时,Cind 只有手动监控流程。如果出现问题,客户必须致电公司告知他们的站点(可能是仓库或木材场)出现了问题。然后,Cind 的支持团队会使用 SSH 远程连接到站点,并尝试手动遍历每一个日志文件——所有这些日志文件都是在每个客户站点本地创建的——并查看所有进程是否都在运行。“这是一种非主动的方式来了解每个客户站点的质量,”Håål 解释说。随着 Cind 开始增加越来越多的客户,这一过程变得越来越低效,进一步增加了难度。
Cind 要求 Opsdis 为他们的站点提出一种新的可观测性解决方案,该解决方案能够监控关键系统进程和现场摄像头的健康状况,并收集整个系统的日志。
Cind 的客户分布在世界各地,因此还需要一种可以在每个客户站点本地实施的监控解决方案。最重要的是,该公司希望能够查看这些站点的情况,这样其运营团队就不必登录到各个客户站点来接收警报、查找问题、遍历日志文件或检查状态。
当然,Opsdis 需要提供一个易于为快速发展的公司(目前拥有 50 多个站点)扩展的系统。
构思解决方案
Cind 没有现有的传统监控解决方案的一个好处是,Håål 和 Opsdis 团队不必担心在现有平台之上构建任何自定义或新的东西,也不必担心迁移任何数据的麻烦。然而,最大的变化来自于他们记录数据的方式以及数据的存储位置。
Opsdis 使用 Prometheus、Loki 和 Grafana 以及全托管的 Grafana Cloud 产品为 Cind 开发了一个监控系统。“Grafana Cloud 使用简单,启动简单,”Håål 说。“您只需注册一个帐户,即可获得所需的一切。您不必考虑内部服务器、基础设施设置或任何类似复杂的事务。您可以专注于通过可观测性想要实现的功能。”
在每个站点,Opsdis 都安装了 Prometheus、Promtail 和导出器,用于监控每个位置发生的一切。日志和指标收集后,通过 remote_write 推送到 Grafana Cloud。

因此,Cind 运营团队能够实时查看其所有客户站点的情况,了解它们是否正常运行,并检查其所有摄像头的状态:它们是否正常工作?质量如何?它们的温度是多少?所有系统软件是否按预期运行?
Håål 说,Opsdis 本可以采用其他方法来解决问题,但他重申“Grafana 栈的简单性是更重要的因素”。
他补充说,Prometheus 本身也带来了一系列好处,包括社区创建了许多自己的导出器,这使得很容易找到您需要的东西。“还有关于如何使用这些工具的知识社区,这使得入门变得容易。”
他喜欢 Loki 的一个特性——也是它成为 Opsdis 客户的绝佳选择的原因——是对于任何已经熟悉 PromQL 的人来说,日志查询都很容易。“然后您可以将 Prometheus 和 Loki 结合起来,就像我们在 Cind 的案例中所做的那样,”Håål 说。“我们获取日志,当它们由 promtail 处理时,我们创建指标,这些指标由 Prometheus 直接抓取到本地 promtail。所以入门并不困难。”
Håål 喜欢将所有这些与 Grafana Cloud 搭配使用,因为它让他少了很多担忧。“我不必专注于安装 Grafana,或安装多租户 Prometheus 实例,或考虑日志如何索引以及我能有多少日志,”他解释道。“我可以直接开始使用 Prometheus、promtail 和本地安装来获取数据。”
之后,客户可以探索这些数据,了解其含义以及如何利用它们。
看到成功
“与 Opsdis 合作让我们对客户站点和运营状况有了全新的洞察,”Cind 首席执行官 Marcus Schelin 说。“现在我们拥有一个包含指标和日志的自动化可观测性平台,我们可以在此基础上继续构建。”
Cind 的运营团队使用了一些模板化仪表板。有一个概览地图,公司可以在其中查看其所有客户的状态(如下所示)。

Cind 随后可以将视图缩小到属于一个客户的站点。

最后,团队可以查看特定于站点的仪表板,这些仪表板的设计对于所有位置都是相同的。面板包括温度数据、相机状态、站点进程状态以及其他关键信息。

“他们获得的是之前没有的所有客户的中央视图,”Håål 说。Cind 不仅可以访问日志并实时计算指标,而且新的监控系统还为公司提供了一种管理数据并有意义地利用信息的方式,例如使用 Loki 进行日志发现和取证。
Cind 的支持团队创建了许多警报,这些警报在 Prometheus 或 Cortex 中定义。当站点触发警报时,Cind 支持团队通过 Slack 接收。由于他们还可以查看历史趋势,现在他们可以了解设备随时间的变化或移动情况。团队甚至可以在客户意识到问题之前解决问题。“现在他们几乎所有客户的日志数据都在一个中心位置,”Håål 说,“所以他们只需使用 Loki 的 LogQL 查询语言进行查询即可。”
感谢 Grafana Cloud,Cind 支持团队能够将注意力集中在公司自己的服务上,而不是担心自托管基础设施。Håål 表示,如果 Cind 增加更多客户(导致更多指标和日志数据源)或决定将来对其系统进行更改(例如运行自己的本地 Cortex 或采用 Grafana Enterprise Metrics),过渡将非常容易。“这不会改变我们在收集数据的不同客户站点上所做的任何事情。”
Cind 新的监控系统让公司对其下一步行动感到好奇。“可观测性的这一方面已成为他们自身开发过程的一部分,”Håål 说。事实上,Cind 的开发人员一直在研究一种带有上下文的日志格式以及命名事物的数据模型。
Opsdis 之前创建了导出器,用于将数据从 Cind 的不同应用程序移动到其自身的系统软件中,但现在,Cind 的开发人员已经制定了一个路线图,以便在其系统软件中拥有一个原生的 Prometheus API,这样他们就不再需要在系统软件和 Prometheus 之间使用任何导出器。Håål 指出,对于他的客户来说,一旦他们看到 Grafana Stack 的早期成功,Grafana Cloud 的易用性使他们能够接管、成熟自己的部署,并根据需要采用尽可能多的栈来取得成功,这是典型的现象。
与 Grafana Labs 持续发展
Opsdis 团队对与 Grafana Labs 的合作关系非常满意。Opsdis 认为他们与 Grafana Labs 拥有相同的价值观,这体现在他们与该公司沟通和互动的方方面面。“而且我认为,如果我们喜欢 Grafana Labs 处理和支持客户的方式,客户也会喜欢,”Håål 说。展望未来,Opsdis 希望将 Grafana Labs 产品带给更多客户,包括为网络用例构建可观测性平台。Håål 总结道:“我们期待继续与 Grafana Labs 合作,并在 Grafana Cloud 上构建更多定制解决方案,让客户无需担心管理或扩展自己的基础设施,就能从开源可观测性工具中获益。”
