L’Atelier Animation 访谈

继续我们的 Prometheus 用户访谈系列,L’Atelier Animation 的 Philippe Panaite 和 Barthelemy Stevens 谈论了他们如何将动画工作室从 Nagios、Graphite 和 InfluxDB 的混合环境切换到 Prometheus。

您能介绍一下自己以及 L’Atelier Animation 是做什么的吗?

L’Atelier Animation 是一家位于加拿大美丽城市蒙特利尔的 3D 动画工作室。我们的第一部故事片《芭蕾舞女》(也称为《跳跃》)于 2017 年在全球发行,预计今年晚些时候在美国上映。

我们目前正在努力制作一部动画电视剧和我们的第二部故事片。 我们的基础设施包括大约 300 个渲染节点、150 个工作站和 20 个不同的服务器。除了几台 Mac 之外,所有设备都运行在 Linux (CentOS) 上,没有一台 Windows 机器。

 

您在使用 Prometheus 之前的监控经验是什么?

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

您为什么决定关注 Prometheus?

当我们把所有服务都切换到 CentOS 7 时,我们开始寻找新的监控解决方案,Prometheus 出现在我们的视野中,原因有很多,但最重要的是:

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

您是如何过渡的?

当我们完成第一部电影时,我们有一段停机时间,这正是我们 IT 部门进行重大变革的绝佳机会。我们决定清除整个监控系统,因为它没有我们预期的那么好。

最重要的部分之一是监控网络设备,因此我们首先配置了 snmp_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 获取数据。我们将其存储在通过 Web 应用程序访问的 MySQL 数据库中,该应用程序会创建一个实时楼层地图。这使我们只需鼠标悬停即可知道哪个用户坐在哪里,以及使用什么类型的硬件。我们还创建了另一个包含用户照片和部门信息的页面,这有助于新员工了解他们的邻居是谁。该网站仍然是一个正在进行的项目,所以请不要评判外观,我们毕竟是系统管理员,而不是网页设计师 :-)

Floormap with workstation detail

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

这让我们有机会改变工作室中所有事物的监控方式,并激发我们创建一个新的自定义楼层地图,其中包含最初由 Prometheus 获取的所有数据。设置更加简单,只需一个服务即可管理所有。

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

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

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