采访 L’Atelier Animation

在我们与 Prometheus 用户进行的系列访谈中,L’Atelier Animation 的 Philippe Panaite 和 Barthelemy Stevens 谈论了他们如何将动画工作室的监控系统从 Nagios、Graphite 和 InfluxDB 的混合方案切换到 Prometheus。

您能介绍一下您自己以及 L’Atelier Animation 的业务吗?

L’Atelier Animation 是一家位于加拿大美丽城市蒙特利尔的 3D 动画工作室。我们的第一部长篇电影 《芭蕾舞者》(Ballerina)(也称为《飞跃》(Leap))已于 2017 年在全球上映,预计今年晚些时候在美国上映。

我们目前正在努力制作一部动画电视剧和我们的第二部长篇电影。  我们的基础设施包括大约 300 台渲染刀片服务器、150 个工作站和二十台各种服务器。除了几台 Mac 电脑外,其他所有设备都运行在 Linux (CentOS) 上,没有一台 Windows 机器。 

 

在使用 Prometheus 之前的监控经验是怎样的?

  最初我们混合使用了 NagiosGraphiteInfluxDB。最初的设置“还可以”,但没什么特别之处,而且过于复杂(活动部件太多)。 

为什么决定尝试 Prometheus?

  当我们将所有服务切换到 CentOS 7 时,我们寻找新的监控解决方案,Prometheus 因多种原因脱颖而出,其中最重要的是

  • Node Exporter:凭借其自定义功能,我们可以从客户端获取任何数据
  • SNMP 支持:消除了对第三方 SNMP 服务的需求
  • 告警系统:告别 Nagios
  • Grafana 支持

你们是如何过渡的?

当我们完成第一部电影后,有一段空闲时间,这对我们的 IT 部门来说是进行重大改变的绝佳机会。我们决定彻底改造我们的整个监控系统,因为它没有达到我们想要的效果。 

最重要的部分之一是监控网络设备,因此我们首先配置了 snmp_exporter 来抓取我们其中一个交换机的数据。该 exporter 对 NetSNMP 的调用在 CentOS 下有所不同,因此我们不得不重新编译一些二进制文件,其间遇到了一些小问题,但在 Robust Perception 的 Brian Brazil 的帮助下,我们很快就解决了所有问题。一旦 snmp_exporter 工作起来,我们就能轻松添加新设备并获取 SNMP 数据。现在我们在 Grafana 中监控着我们的核心网络(包括 13 个交换机,10 个 VLAN)。

Switch metrics from SNMP data

之后,我们配置了 node_exporter,因为我们需要对工作站、渲染刀片服务器和服务器进行分析。在我们的领域,当 CPU 使用率不是 100% 时,就是一个问题,我们希望尽可能利用所有算力,因此最终温度更关键。此外,我们需要尽可能长的正常运行时间,因此我们的所有工作站都通过 Prometheus 的 Alertmanager 设置了电子邮件告警,以便我们在任何设备宕机时都能知晓。

Dashboard for one workstation

我们的特殊需求要求我们监控来自客户端的自定义数据,这通过使用 node_exporter 的 textfile collector 功能得以轻松实现。一个 cronjob 会将任何给定工具的特定数据输出到 Prometheus 可读的预格式化文本文件中。 

由于所有数据都可以通过 HTTP 协议获取,我们编写了一个 Python 脚本从 Prometheus 中抓取数据。我们将这些数据存储在 MySQL 数据库中,并通过一个创建实时平面图的 Web 应用程序访问。这使我们只需将鼠标悬停在地图上,即可知道哪个用户坐在哪里,以及使用的硬件类型。我们还创建了另一个页面,包含用户的照片和部门信息,这有助于新员工了解他们的邻居是谁。这个网站仍然是一个正在进行的项目,所以请不要评价它的外观,毕竟我们是系统管理员,而不是网页设计师 :-)

Floormap with workstation detail

切换后您看到了哪些改进?

它给了我们一个机会来改变工作室的监控方式,并启发我们利用 Prometheus 最初抓取的所有数据创建一个新的自定义平面图。使用一个服务来管理一切,设置变得简单多了。

您认为 L’Atelier Animation 和 Prometheus 的未来会怎样?

我们目前正在将软件许可证使用情况与 Prometheus 集成。这些信息将帮助艺术家清楚地了解谁正在哪里使用什么软件。

我们将根据用户需求继续定制和向 Prometheus 添加新功能,鉴于我们与艺术家合作,我们知道会有很多需求 :-) 凭借 SNMP 和 node_exporter 的自定义文本文件输入功能,可能性是无限的...