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 动画工作室。我们的第一部动画长片《了不起的菲丽西》 (又名《芭蕾奇缘》)于 2017 年全球上映,预计今年晚些时候在美国上映。
我们目前正忙于制作一部动画电视剧和我们的第二部动画长片。 我们的基础设施包括大约 300 个渲染刀片服务器、150 个工作站和 20 台各种服务器。除了几台 Mac,所有设备都运行在 Linux (CentOS ) 系统上,没有一台 Windows 机器。
在使用 Prometheus 之前,您的监控体验是怎样的?
最初我们采用了 Nagios 、Graphite 和 InfluxDB 的混合方案。最初的设置“还行”,但没什么特别之处,而且过于复杂(活动部件太多)。
你们为什么决定研究 Prometheus?
当我们将所有服务都切换到 CentOS 7 时,我们研究了新的监控解决方案,Prometheus 因为多种原因脱颖而出,其中最重要的是:
- Node Exporter:凭借其定制能力,我们可以从客户端获取任何数据。
- SNMP 支持:不再需要第三方的 SNMP 服务。
- 告警系统:告别 Nagios。
- 支持 Grafana 。
你们是如何过渡的?
第一部电影制作完成后,我们有了一些空闲时间,这对我们的 IT 部门来说是进行重大变革的绝佳机会。我们决定彻底更换整个监控系统,因为它没有达到我们期望的水平。
监控网络设备是最重要的部分之一,所以我们首先配置了 snmp_exporter ,用于从我们的一台交换机获取数据。在 CentOS 下,exporter 对 NetSNMP 的调用有所不同,因此我们不得不重新编译一些二进制文件。我们期间遇到了一些小问题,但在 Robust Perception 公司的 Brian Brazil 的帮助下,我们很快解决了所有问题。一旦 snmp_exporter 正常工作,我们就能轻松地添加新设备并获取 SNMP 数据。现在,我们的核心网络(包括 13 台交换机、10 个 VLAN)都在 Grafana 中进行监控。

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

我们的特定需求要求我们监控来自客户端的自定义数据,通过使用 node_exporter 的 textfile collector 功能,这变得很简单。一个 cronjob 任务会从任何给定的工具中输出特定数据到一个预设格式的文本文件中,该文件格式可被 Prometheus 读取。
由于所有数据都可通过 HTTP 协议获取,我们编写了一个 Python 脚本来从 Prometheus 获取数据。我们将数据存储在 MySQL 数据库中,并通过一个 Web 应用访问,该应用创建了一个实时的楼层平面图。这让我们只需将鼠标悬停,就能知道哪个用户坐在哪里,以及使用何种类型的硬件。我们还创建了另一个页面,显示用户的照片和部门信息,这有助于新员工了解他们的邻座是谁。这个网站仍在开发中,所以请不要评判它的外观,毕竟我们是系统管理员,不是网页设计师 :-)

切换后你们看到了哪些改进?
这给了我们一个机会,来改变我们监控工作室一切的方式,并启发我们利用最初由 Prometheus 获取的所有数据创建了一个新的自定义楼层平面图。现在的设置简单多了,一个服务就能搞定一切。
您认为 L’Atelier Animation 和 Prometheus 的未来会是怎样的?
我们目前正在将软件许可证使用情况与 Prometheus 集成。这些信息将让艺术家们清楚地了解谁在什么地方使用了什么软件。
我们将根据用户需求继续定制和添加新功能到 Prometheus 中,而且因为我们是和艺术家一起工作,我们知道需求会非常多 :-) 借助 SNMP 和 node_exporter 的自定义文本文件输入功能,可能性是无穷无尽的……