使用Prometheus进行Kubernetes监视:AlertManager,Grafana,PushGateway(第2部分)

要部署真正的Kubernetes和微服务监控解决方案,需要许多其他支持组件,包括规则和警报(AlertManager),图形可视化层(Grafana),长期指标存储以及与该软件不兼容的其他指标适配器 盒子外面。

在第二部分中,我们将简要介绍所有这些支持组件,前提是已经了解了上一章介绍的部署Prometheus监视服务器的基础知识。

Prometheus监控技术栈–体系结构概述
让我们从部署架构概述开始,将我们将在接下来的部分中讨论的所有组件放入其中。

1、在第1部分中介绍的Prometheus服务器是此部署的核心。 Prometheus服务器将警报推送到AlertM[……]

继续阅读

使用Prometheus进行Kubernetes监控-最终指南(第1部分)

Prometheus监控正在迅速成为使用的Docker和Kubernetes监控工具之一。 本指南说明了如何使用Prometheus实施Kubernetes监视。 将介绍如何部署Prometheus服务器,指标导出器,设置kube-state指标,提取,抓取和收集指标,使用Alertmanager配置警报以及使用Grafana配置仪表板。 我们将介绍如何手动执行此操作,以及如何利用Prometheus operators自动部署/安装方法。

为什么使用Prometheus进行Kubernetes监控
因为两项技术的转变,因此我们需要一个新的监视框架:

DevOps文化:在DevO[……]

继续阅读

使用AJAX和Django获取数据

使用Django服务网页时,只要用户执行导致页面更改的操作,即使该更改仅影响页面的一小部分,它都会将完整的HTML模板传递给浏览器。 但是如果我们只想更新页面的一部分,则不必完全重新渲染页面-我们可以使用AJAX代替。

AJAX提供了一种将GET或POST请求发送到Django视图并接收任何返回的数据而无需刷新页面的方法。 现代JavaScript包含fetch API,该API为我们提供了一种纯JavaScript方式来发送AJAX请求。

让我们看一下如何通过获取发出GET和POST请求,以在视图和模板之间传递JSON数据。

GET请求
通过获取发出GET请求
通过向其[……]

继续阅读

理解Django中基于类的视图-创建CBV

在本文中,我们将研究如何创建一个基于类的视图,方法是首先实现一个最小的CBV,然后对其进行扩展以突出如何设计CBV以便重用。 本系列的第一篇文章探讨了如何初始化基于类的视图,以及如何使用View类作为基础来设置视图并初步路由逻辑。 由于View本身不能用作独立的CBV,因此我们需要定义其他逻辑以正确处理请求并向用户提供正确的响应。

先决条件
阅读了上一篇文章-View Base Class
基本了解Python中的类继承
最小的CBV
让我们看一下基于类的视图的最小实现。 我们将通过首先导入View基类在views.py文件中创建CBV。 我们的视图BasicView将是一个从V[……]

继续阅读

理解Django中基于类的视图-视图基类

基于类的视图或CBV是Django中争议最大的功能之一。与基于功能的视图(FBV)相比,CBV似乎更令人困惑和难以理解。在本系列的Django中的《理解基于类的视图》中,我们将详细介绍CBV,以了解它们的工作方式和使用方法。

首先,我们将介绍View基类,如何在URLconf中使用CBV以及View类如何路由从其继承的其他类的视图逻辑。

先决条件
本文针对那些以前可能尝试使用CBV并希望了解其工作原理的人。如果您满足以下条件,您将从本文中获得最大收益:

之前已经用Django建立了一个项目
尝试至少使用一次CBV
对Python中的类有基本的了解
本文包含许多不完整的[……]

继续阅读

如何在django官方文档中快速找到需要的内容

许多新手程序员发现Django文档内容非常庞大。

假设想学习如何为用户执行登录。看着很简单:登录是Django的核心功能。如果搜索“ django登录”或搜索文档,则会看到一些选项,其中“使用Django身份验证系统”是最有希望的结果。单击该链接,很高兴地预料到登录问题将很快就会搞定,但这39页的页面估计会被吓一跳,信息太多了。

另外,也可以在django.contrib.auth上找到一些参考,所有auth内容都在这里,如果浏览此页面,将看到所有不同身份验证模型,字段和功能的罗列,但没有说明它们应该如何组合在一起。

在这时,我们可能想绝望的关闭浏览器,搞得自己要重新考虑学习[……]

继续阅读

使用Prometheus和Thanos进行高可用性Kubernetes监控

背景介绍
对Prometheus高可用性的需求提升
现在很明显,Kubernetes是容器编排方面的老大,但对于k8s的监控是任何基础架构的重要方面,我们应该确保监控设置具有高可用性和高度可扩展性,以适应不断增长的基础架构的需求,尤其是在使用Kubernetes的情况下。

因此,今天,我们将部署群集化的Prometheus设置,该设置不仅可以抵抗节点故障,而且还可以确保适当的数据归档以备将来参考。我们的设置也具有很大的可扩展性,以至于我们可以在同一监控范围内跨越多个Kubernetes集群。

目前现状

大多数Prometheus部署都使用持久性Pod,而Prometheu[……]

继续阅读

如何配置Elasticsearch堆大小以更改最大内存大小

对于ElasticSearch,这是非常重要的设置。为了正确设置此设置,必须对系统进行良好的监视。简而言之,我们使用此配置来确定Elasticsearch在开始时分配的内存量以及最大内存使用量。

在配置堆大小之前,我将讨论堆内存概念以正确地监视堆大小。 Java应用程序使用“堆栈”和“堆”方法将数据保存到内存中。

在堆栈类型中,操作系统管理是否将数据存储或删除到内存中。

在堆类型中,应用程序管理内存使用和清理。在Java中,对象存储在堆内存中,并且由于有了称为垃圾收集器的结构,因此可以提供堆内存管理。

什么是垃圾收集器?

在Java中,内存管理是通过JVM和其中包[……]

继续阅读

如何在Django Framework中设置特定环境的配置?

对于初学者,每当键入python manage.py runserver时,它将从settings.py中获取所有配置。 settings.py具有所有配置,例如已安装的应用程序,使用的中间件,模板,语言,时区,静态文件夹的位置等。通常,我们刚开始不必太多修改settings.py文件。因为Django框架提供了在本地环境中运行应用程序的样板或基本配置。

 

为什么我们需要特定于环境的设置?

我们settings.py中有某些配置,例如DEBUG,STATIC_URL,DATABASES,SECRET_KEY,ALLOWED_HOSTS等。这些设置实际上是在部署到生[……]

继续阅读

使用Prometheus进行Kubernetes监控

监控是运维中至关重要的工作,对于像Kubernetes这样的当下风行的技术来说,强大的监控设置可以充分了解整个集群的机器状态,包括主机的基础性能,Pod资源利用率等。

今天,我们将在不到5分钟的时间内部署基于生产级Prometheus的监控系统。

前期准备条件:

1、运行具有至少6个内核和8 GB可用内存的Kubernetes集群。在本教程中,我将使用6个Node节点
2、Kubernetes部署和服务的工作知识。
步骤:

1、具有持久卷的Prometheus服务器。这将是我们的指标存储(TSDB)。
2、Alertmanager服务器,它将触发对Slack /[……]

继续阅读