开源服务器监控工具前五名
尽管现在存在着数百种服务器监控工具,但它们之间的客户支持和功能水平都微妙地不同。在当今的开发环境中,许多工程师选择和重视更自由定制化的开源监控工具,这是一个事实。
通过正确的方法使用适当的服务器监控工具,也可以节省成本。当然,使用开源软件时,通常会因为需要的时间和专业知识而导致较高的人力成本,所以成本可能会增加。然而,如果在特定的集中任务中使用开源软件,则可以大大节省成本。
用户经常将开源监控工具与其他开源工具或专有工具结合使用。例如,AWS CloudWatch的用户已经能够自由使用各种工具,但为了实现更好的仪表板,他们可能会使用Grafana。同样地,常见的做法是同时使用Prometheus和Elasticsearch,其中一个用于时间序列,另一个用于日志记录。
让我们来看一些最优秀的现有开源监控工具。这些工具都处于维护状态,并拥有庞大的贡献者和用户社区。(拥有庞大的社区意味着有大量的关于该工具的使用方法和集成等资料可供参考。)
石墨
Graphite是一个真正的时序监控工具,于2008年首次发布。在GitHub上有5000多名关注者,并有300名贡献者。该工具是最早的开源服务器监控工具之一,并且自那时以来,在这个领域成为了一个强大的参与者。
Graphite是建立在一组作为监控堆栈功能的子组件之上的。其中包括Carbon、Whisper、Graphite服务器以及Graphite Web UI。每个组件都有特定的角色,并且具备与其他技术兼容的能力,以便开发者可以使用他们希望的其他技术。
Graphite要求客户端推送指标,并要求Graphite监听和接收这些指标。通常需要使用类似StatsD或collectd的守护程序来实现。有关Graphite架构的详细信息,请参考此处。
最近,人们正在努力提高Graphite与Docker和Kubernetes的兼容性。你可以在GitHub项目上查看官方的Docker镜像和测试脚本来了解相关情况。然而,Graphite仍然存在一些问题,例如数据聚合、原生存储集群和警报等方面不够完善。
MetricFire的Hosted Graphite为Graphite进行了改进,提供了解决Graphite最大问题的解决方案。如果您对Graphite感兴趣,请务必查看MetricFire的Hosted Graphite。
普罗米修斯
Prometheus是由Soundcloud于2012年开发的一款新产品。Prometheus是为了时间序列监控而设计的一站式解决方案。通过一次安装,您可以获得数据收集器、Prometheus服务器、通过复杂的标签系统进行数据汇总、可视化、查询、索引、警报和通知的功能。
Prometheus被构建用于监控Kubernetes和Docker,通常与Grafana一起使用以实现可视化。Prometheus具有自己的仪表板,称为Prometheus表达式浏览器,它适用于深入挖掘指标的控制台。可以使用Prometheus独有的查询语言PromQL进行查询,并结合Prometheus的多维数据结构,成为强大的工具。但是,对于长期数据监控、警报和通知,Grafana更优秀,可以取代Expression Browser作为仪表板工具。
Prometheus有一些缺点。第一个问题是长期存储,开源项目只能保存数据最长14天。要获得几个月到几年的长期存储,需要设置远程存储。这需要时间和成本。第二个问题是监控许多Python Web应用程序中的多进程应用程序时出现的问题。Prometheus并不是为多进程和多线程应用程序设计的,但有解决方法。
为了解决对远程存储和内部设置Prometheus独立管理的方法,MetricFire提供了托管的Prometheus。您可以直接在应用程序内使用Prometheus,节省安装和设置远程存储等繁琐步骤。
Grafana (中文翻译:Grafana)
Grafana只是一个仪表盘工具,不是完整的服务器监控工具,但在任何监控堆栈中都起着重要的作用。Grafana可以做到时序数据库无法做到的事情。例如,创建出色的图表,触发复杂的报警规则,将报警信息直接推送到智能手机以进行通知等。
Grafana很容易使用且设置简单。有关Grafana设置详细方法,请参阅“入门指南”。而在服务器监控方面,可以阅读我们最喜欢的Grafana仪表板文章,以准确显示监控内容。
在Grafana中,您可以从面板构建仪表板,每个面板由一种可视化组件构成。可以从单一统计、直方图、仪表盘、条状仪表盘、多种统计、表格、警报列表等面板中进行选择。每个面板可以配置为监视监控堆栈中任意数据源的特定指标。数据源可以是Prometheus、Elasticsearch、AWS等任何源。
弹性搜索堆栈
Elasticsearch、Logstash、Kibana构成的ELK堆栈是监视机器日志的最佳工具。然而,对于时间序列数据来说,ELK堆栈并不如Prometheus或Graphite出色。
Kibana和Grafana有一些相似之处,但承担的角色更具体。Kibana是Elasticsearch和Logstash的控制台和用户界面,在没有这两个技术作为数据源时无法存在。Grafana相对独立性更高,可以监控更广泛的技术。Kibana非常有效地监控日志,而Grafana则更加关注时间序列数据。然而,Grafana 7发布了Grafana Loki,因此Grafana也可以监控日志。有关Grafana与Kibana的比较,请参阅Grafana vs Kibana的文章。另请参阅Prometheus和ELK的比较。
纳吉奥斯
Nagios是一款于2002年作为开源软件发布的工具,如今已发展成为为企业提供多种产品的企业级产品。尽管开源软件仍然存在,但与Graphite、Prometheus和Grafana相比,它的社区相对较小。
开源软件是用C语言编写的,并在GNU通用公共许可证下进行发布。该软件提供监控网络服务(通过SMTP、POP3、HTTP、PING等)和主机资源(负载、磁盘使用量等)。此外,该软件还具有通用性,因为它具有开发人员可以添加自定义工具的插件接口。
请参考GitHub页面和企业首页以获取有关Nagios的详细信息。
MetricFire指标火
MetricFire是一款适用于企业的托管监控工具,它使用开源监控工具来监视基础架构、系统和应用程序。在这个平台上,您可以使用Prometheus或Graphite-as-a-Service之一将指标显示在漂亮的Grafana仪表板上。
通过使用MetricFire,您可以通过其强大的监控功能一目了然地理解复杂的系统。MetricFire提供企业级监控产品的客户服务,同时还能享受开源软件的全部优势。
现在注册免费试用,并开始使用MetricFire吧。只需安装一个简单的代理程序,即可将指标直接导入到云平台中。一旦指标数据进入到平台中,您就可以开始使用Grafana的仪表板了。MetricFire已经为各种目的设置了数百个默认的仪表板,包括服务器监控和kubernetes监控等。您还可以检查MetricFire的酷炫应用程序,如Raspberry Pi 4的监控等。
你可以注册MetricFire的免费试用,使用开源技术,在托管平台上开始监控指标。同时,你还可以预约MetricFire团队的演示,直接咨询有关监控需求的问题(我们也接受日语)。
再下一篇文章见。