什么是可观测性?
可观测性有许多名称,如监测、审计、遥测、仪器。这些词本质上的意思其实都指代的是度量那些基础设施、平台和应用程序,以了解它是如何运行的。
可观测性不是一个新鲜的名词,主要是指通过分析数字化应用系统的指标(Metrics)、链路(Traces)、日志(Logs)等数据,构建出完整的态势观测模型,从而实现快速的威胁发现和故障诊断。
在许多情况下,可观察性会被错误理解成是“系统监控”的同义词,但随着数字化应用的深入,特别是随着云原生技术的发展,基于容器和微服务化的应用规模更加庞大,复杂的云上环境以及应用系统的分布性、复杂性、动态性,使得故障定界和检测分析非常困难,而可观测性无疑是降低这种难度的有效手段之一。
目前,研究机构Gartner已将应用可观测性列为“2023年十大战略技术趋势”之一。安全研究人员表示,成功实现可观测性的企业机构,会在数字化业务开展中建立竞争优势,企业需要找到合适的工具并尽快部署使用。
网盾收集整理了6款主流的可观察性工具提供参考。
第一款 Grafana
Grafana 的官方介绍是:grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。
Grafana 是一个可视化工具,简单点说就是用来展示数据的。它不能解决监控问题,仅用于展示,在监控领域,Grafana 需要配合 Zabbix、Prometheus 等工具一起使用,以获取数据源。
第二款 Prometheus
Prometheus是一款开源工具,广泛用于云原生环境中的可观察性获取。它可以收集和存储时间序列数据,并提供可视化工具来分析这些数据。
它可以从各种来源获取指标,包括应用程序、服务和系统。还可以将收集到的数据存储在时间序列数据库中,并可以高效地查询和聚合数据。带有一个内置的警报系统,可以根据查询触发警报。能够自动检测和抓取运行在多个环境中的服务的指标,比如Kubernetes和其他容器编排系统。
第三款 InfluxDB 和Telegraf组合
InfluxDB和Telegraf都是开源版的可观察性工具,它们的时间序列数据存储和监控功能很受企业用户的欢迎。其中,InfluxDB是一个时间序列数据库,它使用类似sql的查询语言存储和查询大量时间序列数据;而Telegraf则是一款性能出色的数据收集代理,它可以支持各种数据源,收集各种指标和事件信息,并将其发送给多个提前设置的接收器,比如InfluxDB等。
Telegraf允许用户从许多来源收集指标,并将它们发送到InfluxDB进行存储和分析。InfluxDB可以与第三方可视化工具(如Grafana)集成,以创建灵活的交互式控制面板。InfluxDB的设计允许它处理较长时间段内的数据并提供扩展能力。
第四款 ELK堆栈
ELK堆栈由三个开源产品组成——Elasticsearch、Logstash和Kibana from Elastic。
Elasticsearch是一个基于Lucene搜索引擎的NoSQL数据库。
Logstash是一个日志管道工具,它接受来自不同来源的输入,执行不同的转换,并将数据导出到不同的目标。它是一个动态的数据收集管道,具有可扩展的插件生态系统和强大的弹性搜索协同作用。
Kibana是一个可视化UI层,工作在Elasticsearch之上。
这三个项目一起用于各种环境中的日志分析。因此Logstash收集和解析日志、弹性搜索索引并存储这些信息,而Kibana提供了一个UI层,提供可操作的可见性。
第五款 New Relic
New Relic是一款基于云的监控和分析平台,允许用户监控分布式环境中的程序运行状态。它使用“New Relic Edge”服务进行分布式跟踪,可以实现几乎100%的应用程序跟踪监测。
它提供全面的APM解决方案来监控和排除应用程序性能故障,可以在AWS、Azure、GCP等多个公有云平台上监控应用程序运行,还可以提供有关系统和应用程序性能的详细信息,并进行跟踪分析以及帮助用户深入到指标和上下文信息中,分析问题的根本原因并提供全面的日志视图。