专访 L’Atelier Animation

2017年6月14日作者 Brian Brazil

在我们的 Prometheus 用户系列专访中,来自 L’Atelier Animation 的 Philippe Panaite 和 Barthelemy Stevens 将与我们分享,他们的动画工作室是如何从 Nagios、Graphite 和 InfluxDB 的混合方案切换到 Prometheus 的。

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

L’Atelier Animation 是一家位于加拿大美丽城市蒙特利尔的 3D 动画工作室。我们的首部动画长片《了不起的菲丽西》(Ballerina,又名 Leap)于 2017 年在全球上映,预计今年晚些时候在美国上映。

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

 

在使用 Prometheus 之前,您的监控体验是怎样的?

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

你们为什么决定研究 Prometheus?

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

  • Node Exporter:凭借其定制能力,我们可以从客户端获取任何数据。
  • SNMP 支持:不再需要第三方的 SNMP 服务。
  • 告警系统:告别 Nagios。
  • Grafana 支持

你们是如何过渡的?

第一部电影完成后,我们有了一些空闲时间,这对我们的 IT 部门来说是进行重大变革的绝佳机会。我们决定彻底更换整个监控系统,因为它没有达到我们期望的水平。

监控网络设备是最重要的部分之一,因此我们首先配置了 snmp_exporter,用于从我们的一台交换机获取数据。该导出器在 CentOS 下对 NetSNMP 的调用方式有所不同,所以我们必须重新编译一些二进制文件。期间我们遇到了一些小问题,但在 Robust Perception 的 Brian Brazil 的帮助下,我们很快解决了所有问题。snmp_exporter 正常工作后,我们就能轻松地添加新设备并获取 SNMP 数据。现在,我们的核心网络(包括 13 台交换机,10 个 VLAN)都在 Grafana 中进行监控。

Switch metrics from SNMP data

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

Dashboard for one workstation

我们的特定需求要求我们监控来自客户端的自定义数据,通过使用 node_exporter 的 文本文件收集器 功能,这变得很容易。一个 cron 定时任务将任何指定工具的特定数据输出到一个预先格式化的文本文件中,该文件格式可被 Prometheus 读取。

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

Floormap with workstation detail

切换后你们看到了哪些改进?

这给了我们一个机会来改变我们监控工作室一切的方式,并启发我们用 Prometheus 最初获取的所有数据创建了一个新的自定义工位平面图。现在的设置简单多了,一个服务就能搞定一切。

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

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

我们将根据用户需求继续定制和为 Prometheus 添加新功能,而且我们是和艺术家一起工作的,所以我们知道需求会很多 :-) 借助 SNMP 和 node_exporter 的自定义文本文件输入,可能性是无穷的……