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之前的监控经验是怎样的?
最初我们使用了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数据了。我们现在已经在Grafana中监控了我们的核心网络(包括13台交换机,10个VLAN)。
之后,我们配置了node_exporter,因为我们需要对工作站、渲染刀片服务器和服务器进行分析。在我们的领域,当CPU利用率没有达到100%就是一个问题,我们希望尽可能地利用所有计算能力,因此最终温度更为关键。此外,我们需要尽可能长的正常运行时间,所以我们所有的工作站都通过Prometheus的Alertmanager设置了电子邮件告警,以便在任何设备宕机时我们都能及时知晓。
我们的特殊需求要求我们监控客户端的自定义数据,这通过使用node_exporter的textfile collector功能变得非常简单。一个cron任务将任何给定工具的特定数据输出到预格式化的文本文件中,该文件格式可被Prometheus读取。
由于所有数据都可以通过HTTP协议获取,我们编写了一个Python脚本来从Prometheus中抓取数据。我们将其存储在MySQL数据库中,并通过一个Web应用程序访问,该应用程序创建了一个实时平面图。这使我们只需简单地将鼠标悬停在上面,就能知道哪个用户坐在哪里,以及使用什么类型的硬件。我们还创建了另一个页面,上面有用户的照片和部门信息,这有助于新员工了解他们的同事是谁。这个网站仍是一个正在进行的项目,所以请不要评判外观,毕竟我们是系统管理员,不是网页设计师 :-)
切换后您看到了哪些改进?
它给了我们一个机会,改变了我们在工作室监控一切的方式,并激励我们创建了一个新的自定义平面图,其中包含了最初由Prometheus抓取的所有数据。现在设置变得简单多了,一个服务就能管理所有。
您认为L’Atelier Animation和Prometheus的未来会是怎样的?
我们目前正在将软件许可证使用情况与Prometheus进行集成。这些信息将让艺术家清楚地知道谁在使用什么软件以及在哪里使用。
我们将根据用户需求继续定制并向Prometheus添加新功能,鉴于我们与艺术家合作,我们知道会有很多需求 :-) 凭借SNMP和node_exporter 的自定义文本文件输入功能,可能性是无限的……