内容简介:Linux容器已经被业界广泛用于开发甚至生产系统。Docker和Kubernetes已经被开发运营人员广泛了解和熟悉。但是容器云架构下系统监控确实一个常常被忽略的问题。尽管容器部署主要涉及在每个容器内运行单个应用程序或服务,但是随着部署规模的扩大,对环境状态和运行状况的可见性变得越来越重要,而不仅仅是在操作系统或应用程序级别,而且在容器级别也是如此。云生态监控和日志处理领域分为实时数据库,度量标准收集器,可视化工具,轮询器,记录器等。过去几年中,开源产品和商业监控应用程序不断涌现,本文我介绍几个最受欢迎的开
Linux容器已经被业界广泛用于开发甚至生产系统。Docker和Kubernetes已经被开发运营人员广泛了解和熟悉。但是容器云架构下系统监控确实一个常常被忽略的问题。尽管容器部署主要涉及在每个容器内运行单个应用程序或服务,但是随着部署规模的扩大,对环境状态和运行状况的可见性变得越来越重要,而不仅仅是在操作系统或应用程序级别,而且在容器级别也是如此。
云生态监控和日志处理领域分为实时数据库,度量标准收集器,可视化工具,轮询器,记录器等。过去几年中,开源产品和商业监控应用程序不断涌现,本文我介绍几个最受欢迎的开源云应用监控工具。
Prometheus
Prometheus(普罗米修斯)是领先的开源云监视解决方案,除其他事项外,其数据以时间序列数据库存储,天然适合监控数据库存储。普罗米修斯是CNCF(Cloud Native Computing Foundation,原生云计算基金会)支持的九大项目之一,也是CNCF中,除了也是Kubernetes后第二大托管项目。普罗米修斯获得了包括谷歌,红帽,IBM等公司在内的众多云供应商的支持,是云应用首选监控程序。
普罗米修斯最初源于音乐托管网站SoundCloud,接着成为了 Docker 生态系统的重要组成部分。CoreOS团队还积极地使用Prometheus来改善Kubernetes的性能。
普罗米修斯已发展成为高级系统监控和告警 工具 箱,能够监视各种资源,包括容器,Hadoop集群,各语言运行时以及 Python 、Golang、JVM之类的应用程序堆栈。
简而言之,普罗米修斯是一个开源监控系统,时间序列数据库以及用于实现代码的框架。但是,普罗米修斯不能生成度量标准,需要要以HTTP可以解析的语言将度量标准提供给它。关于普罗米修斯参看虫虫之前文章,有详细介绍。
Graphite
Graphite是一种流行的开源工具,用于构建基于Web的仪表板以进行监视和分析。Graphite最初是由Orbitz的Chris Davis于2006年用python创建的一个辅助项目。用于监控和绘制计算机系统的性能,最终形成了一个基本监控系统,并于2008年以Apache 2.0 license的授权开源发布。目前已经获得了GitHub,Salesforce和Reddit等众多大公司提供和支持。
Graphite由三部分组成:
- Carbon 时间序列数据的守护程序,用于接收数据;
- Whisper(类似于RRDtool)数据库和存储;
- Graphite-web的Web应用程序,可按需呈现图形。
Graphite在企业中仍然很流行,原因是由于其自动化程度很高,其中所有新数据点都能在数据库中自动创建。
Graphite本质上是三个相互耦合的独立工具,也可以单独使用并与其他工具集成。
Riemann
上面我们说了Graphite所有组件都耦合可以单独使用。Riemann就是用于替代Graphite中Carbon守护程序的。尽管Carbon会监听指标并将其写入whisper存储数据库,但由于Carbon是基于Python开发的,容易在性能上遇到瓶颈,这时候我们可以用Riemann代替它。Riemann使用 Clojure 语言实现以 "事件流(event streams)方式处理数据和汇总。但是,Riemann不是度量收集器。
Riemann的工作方式是从事件流(例如指标,日志,事件,主机和服务)收集数据,然后根据需要存储,图形或警报。基于事件流的一栈环境下一旦事件流停止流动,就能马上发现系统故障或网络断开。Riemann还能收集和处理各种形式的事件,事先监控。
Riemann具有超快速度和性能。其官方网站宣传的,Riemann可以在商用 x86 硬件条件下,Riemann 每秒就可以处理数百万次事件,延迟时间却只有亚毫秒,5 毫秒可以完成 99 次。
在云环境条件下,Riemann也可以容器化方式运行和组合:
- Riemann 服务器进程,由 Clojure 语言编写,是主流处理引擎;
- Riemann-health 程序,实现Riemann 集群的健康/使用指标报告;
- Riemann-dash 程序,一个小型 Sinatra 应用,为 Riemann 提供网页控制台界面。
- 作为云部件,Riemann也可将事件供应给Prometheus系统。
Riemann在Clojure开发人员中特别受欢迎,因为配置文件实际上是一些可执行的Clojure代码,可以高度定制和构建。
Grafana
Grafana是用Golang 开发的开源的度量分析与可视化套件,主要用于大规模指标数据的可视化展现方式,是网络架构和应用分析中最流行的时序数据展示工具。可以支持对Zabbix,Graphite,ElasticSearch,OpenTSDB,Prometheus和InfluxDB数据汇总、指标仪表板和图形编辑器。
Grafana可以让用户轻松创建和编辑仪表板。Grafana非常适合分布式数据存储环境下的数据汇总、查询和可视化,也能对接指标阈值设置和告警。特别适用于实现高质量的交互式可视化和图形。
Weave Scope
Weave Scope是容器生态中,可以自动进行容器APP映射,直观地理解、监视和控制基于容器化微服务的应用程序。Weave Scope涵盖监视,可视化,管理和故障排除。我们可以用Weave Scope可以在容器级别上监视和控制堆栈,并确切地了解容器在做什么以及原因,零配置并自动检测所有进程,容器和主机,该工具可以检查速度框,对于任何开发人员来说都是节省时间的工具。
Weave Scope可以监控kubernetes集群中的一系列资源的状态、资源使用情况、应用拓扑、scale、还可以直接通过浏览器进入容器内部调试等。
随着越来越多的工具针对更特定的工作流程进行开发,没有一种工具在堆栈中占据永久的位置,并且可以随时替换其中的任何一种以获得更好,更高效或更具自定义性的东西。但是就目前而言,这些开源监视工具在每个DevOps团队的监视工具中占据着至关重要的位置。
ELK Stack
Elasticsearch是ELK栈的一部分,全栈套件还有有Kibana,Beats和Logstash。尽管ELK栈被设计为集成解决方案,其中Elasticsearch通常用作支持工具。Elasticsearch是基于Luncene的 java 全文搜索引擎,也是最常用最强大的分布式可收缩日志存储和检索集群。Elasticsearch提供了RESTful广泛而且精巧的API供访问,该API可以支持近实时性的搜索用以支持数据发现。它几乎与所有内容兼容,并与其他工具一起广泛用于查询数据库。
Kibana是一个基于Elasticsearch的分析和可视化平台,可直观地浏览Elasticsearch集群中的数据。由于Kibana只是ELK栈中的可视化部分,因此也可以被替换为Grafana,Graphite或其他可视化工具。
Logstash是类似于Riemann的另一种流处理系统,可以从日志,指标,Web应用程序,数据存储和各种AWS服务中提取流数据。Logstash还具有一个输出插件,可以通过该插件将特定事件发送到Riemann,例如可警报的事件或需要Riemann采取措施的事件。
ELK栈已经被广泛地应用于运维实时日志处理架构中,通常用于日志系统的存储、处理和分析汇总。但是由于其实时性质,在云生态中,可以用于云集群的监控和故障排查分析。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Chrome OS Camera 应用程序现已开源
- java – 开源Web应用程序更容易被黑客攻击?
- Ionic 4.4.0 发布,开源移动应用程序开发框架
- LightBulb:一个用于审计web应用程序防火墙的开源框架
- 开源 | Go-Spring:滴滴开源的模仿 Java 的 Spring 全家桶实现的一套 Golang 的应用程序框架
- Android里应用程序,应用程序窗口和视图对象之间的关系
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
信息论、推理与学习算法
麦凯 / 高等教育出版社 / 2006-7 / 59.00元
本书是英国剑桥大学卡文迪许实验室的著名学者David J.C.MacKay博士总结多年教学经验和科研成果,于2003年推出的一部力作。本书作者不仅透彻地论述了传统信息论的内容和最新编码算法,而且以高度的学科驾驭能力,匠心独具地在一个统一框架下讨论了贝叶斯数据建模、蒙特卡罗方法、聚类算法、神经网络等属于机器学习和推理领域的主题,从而很好地将诸多学科的技术内涵融会贯通。本书注重理论与实际的结合,内容组......一起来看看 《信息论、推理与学习算法》 这本书的介绍吧!