使用 Cortex 实现 Prometheus 的多租户管理

字节星语者
• 阅读 2716

我们都知道,Prometheus 是一个监控和可观察性的一个标准解决方案。这里呢,我也不准备去介绍 Prometheus 是什么,我们直接切入到我们主题。我们怎么使用 Cortex 实现Prometheus 的多租户的管理的一个平台的搭建,下一章,主要讲我们怎么使用 API 去实现对 Cortex 的管理控制。
<!--more-->

Prometheus

安装 Prometheus

Promethwus下载地址

首先我们下载好我们的 Prometheus 之后,老夫下载的是: prometheus-2.13.0.linux-amd64.tar.gz . 解压到指定的目录:

tar -zxvf prometheus-2.13.0.linux-amd64.tar.gz -C /opt/module

执行:

./prometheus

这样,一个简单的 Prometheus 服务就启动了。

配置 监控服务

这里,当我们需要监控某一个服务时,我们需要在配置文件中进行一下配置。这里我们监控一下:

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
    - targets: ['192.168.1.111:9090']
      labels:
        instance: prometheus

这里,我们重新启动一下 Prometheus 服务,为了验证一下,我们需要在浏览器中输入地址: http://192.168.1.111:9090/

然后我们看到的是这个:

使用 Cortex 实现 Prometheus 的多租户管理

按照图中的红色框框,我们可以看到的是这个:

使用 Cortex 实现 Prometheus 的多租户管理

我们看最后一个,最后一个是我配置的 Prometheus 的配置。 他的 state 是 up , 表示当前的监控是 OK 的。上面的三个暂时不管,我有 exporter 没有启动。看到 up 之后,就表示我们的这个服务是正常的。

配置 远程存储

这里我们要将数据写入到 Cortex 中 ,这里,我们是将 Cortex 作为 Prometheus 的一个远程存储点。所以我们需要在 Prometheus 配置中针对这个 远程存储进行配置。

remote_write:
  - url: http://192.168.50.178:8088/api/prom/push
    basic_auth:
      username: "sunyang_2"
      password: "sunyang"

这里,我们的这个 basic_auth 会在请求的 Header 里面添加 Authorization 。 这里的url 是我们的 cortex 服务的地址,可以是你自己的的代理地址,也可以是 cortex 原地址。下面是 cortex 的地址。

remote_write:
- url: http://localhost:9009/api/prom/push

启动 Prometheus

Cortex

安装 Cortex

这里安装 Cortex ,主要看个人的网速。
首先,我们需要先克隆 cortex 下来:

git clone https://github.com/cortexproject/cortex.git

进入 cortex 的根目录:

go build ./cmd/cortex

这里,只要不出问题,那就没问题。出了问题,就只好跟着错误信息进行排除了。

启动 Cortex

./cortex -config.file=./docs/configuration/single-process-config.yaml

Grafana

安装 Grafana

老夫这个安装的是 Windows 版本的。 Linux 版本中,我们的安装也很简单:

Ubuntu & Debian

sudo apt-get install -y adduser libfontconfig1

wget https://dl.grafana.com/oss/release/grafana_6.6.2_amd64.deb

sudo dpkg -i grafana_6.6.2_amd64.deb

Standalone Linux Binaries

wget https://dl.grafana.com/oss/release/grafana-6.6.2.linux-amd64.tar.gz

tar -zxvf grafana-6.6.2.linux-amd64.tar.gz

Redhat & Centos

wget https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm

sudo yum localinstall grafana-6.6.2-1.x86_64.rpm

配置DataSource

我们在 浏览器中 输入 "http://ip:3000" , 默认的账号密码是 : admin / admin

我们进去之后,首先创建一个 数据源,这里,我们需要创建的数据源是 Prometheus ,但是我们的真实地址在 Cortex 。现在他们的这个流程是这样的:

使用 Cortex 实现 Prometheus 的多租户管理

我们这里添加两个数据源,一个是 cortex , 一个是 prometheus .

这里我给大家看一下这两个数据源的配置后:
使用 Cortex 实现 Prometheus 的多租户管理
这里特别注意: cortex 中的 URL : "http://192.168.1.111:9009/api/prom"

我们在配置好数据源后,就开始添加我们的 DashBoard .
使用 Cortex 实现 Prometheus 的多租户管理

使用 Cortex 实现 Prometheus 的多租户管理

这里可以看到,我们的Prometheus , Cortex 添加的 DashBoard 都是有东西的,虽然我们的这个DashBoard 还是初始化的状态。但这说明,我们的DashBoard 是正常的。现在,我们就要来配置我们的 Query .

配置 Query

首先配置我们的 Prometheus-Dashboard .

我们选择 "Edit"

使用 Cortex 实现 Prometheus 的多租户管理

按照我的配置来:

使用 Cortex 实现 Prometheus 的多租户管理

这里我选择的 "metrics" 是 wmi_cpu_time_total , 这个大家可以随意 , 大家可以直接填 "up" . 我这里的是对我的 Windows 系统做的监控。然后,我们保存:
使用 Cortex 实现 Prometheus 的多租户管理

配置完Prometheus ,我们配置我们的 Cortex-Dashboard

使用 Cortex 实现 Prometheus 的多租户管理

这里,我为了方便查看 Cortex 和 Prometheus , 我把监控放在了一起。

使用 Cortex 实现 Prometheus 的多租户管理

两边都有了数据,说明我们的配置成功。

点赞
收藏
评论区
推荐文章
DevOpSec DevOpSec
4年前
Prometheus架构与实践分享
Prometheus已经被广泛应用于数据中心监控,尤其是和Kubernetes结合的容器监控。本文主要从架构分析到落地实践,详细介绍Prometheus原理和使用。对比Prometheus与其他监控工具(Zabbix、OpenFalcon)的特点与使用场景。然后介绍Prometheus与Kubernetes集成,主要从监控和自动伸缩两个方面。最后通过企业案
Johnny21 Johnny21
4年前
Prometheus学习系列(四)之FAQ
一、一般问题1\.Prometheus是什么?Prometheus是一款高活跃生态系统的开源系统监控和警告工具包。详见2\.Prometheus与其他的监控系统比较详见3\.Prometheus有什么依赖?Prometheus服务独立运行,没有其他依赖4\.Prometheus有高可用的保证吗?
Johnny21 Johnny21
4年前
Prometheus学习系列(二)之Prometheus first steps
欢迎来到Prometheus!Prometheus是一个监控平台,通过在监控目标上的HTTP端点来收集受监控目标的指标。本指南将向您展示如何使用Prometheus安装,配置和监控我们的第一个资源。您将下载,安装并运行Prometheus。您还将下载并安装exporter,这些工具可在主机和服务上公开时间序列数据。我们的第一个exporter将是Prome
Johnny21 Johnny21
4年前
Prometheus学习系列(三)之监控对比
一、Prometheusvs.Graphite1.1范围Graphite专注于查询语言和图表特征的时间序列数据库。其他都需要依赖外部组件实现。Prometheus是一个基于时间序列数据的完整监控系统和趋势系统,包括内置和主动抓取、存储、查询、图表展示和报警功能。它懂得监控系统和趋势系统应该是什么
Wesley13 Wesley13
3年前
victoriametrics 快速高效&&可扩展的时序数据库
victoriametrics是一个时序数据库,可以用来作为prometheus的longterm远端存储特性支持promtheus查询api,同时实现了一个metricsql查询语言支持全局查询视图,好处多prometheus实例写数据到victoriametrics,然后提供一个统一的查询同时也提供
Stella981 Stella981
3年前
Prometheus在Kubernetes下的服务发现机制
Prometheus作为容器监控领域的事实标准,随着以Kubernetes为核心的云原生热潮的兴起,已经得到了广泛的应用部署。灵活的服务发现机制是Prometheus和Kubernetes两者得以连接的基础,本文将对这部分内容进行介绍,从而让读者了解Prometheus如何对Kubernetes集群本身以及对运行其上的各种应用进行有效地监控。
Stella981 Stella981
3年前
Prometheus 和 它的监控需求朋友们 ;)
这篇博文的面向群体是还不太了解Prometheus和想要开始使用Prometheus的人群.本文想做的事是想尽力讲清楚Prometheus是如何看待监控这件事情以及Prometheus是如何实现这些需求的.本文中不会出现的内容:跟Prometheus实现细节有太多相关的东西等当想看监控的时候,我们到底想要什么?
Stella981 Stella981
3年前
Prometheus监控神器
在Kubernetes中手动部署Statefulset类型的Prometheus、Alertmanager集群,并使用StorageClass来持久化数据。本篇使用StorageClass来持久化数据,搭建Statefulset的Prometheus联邦集群,对于数据持久化,方案众多,如Thanos、M3DB、InfluxDB、VictorMetri
Stella981 Stella981
3年前
Prometheus监控告警浅析
前言最近有个新项目需要搞一套完整的监控告警系统,我们使用了开源监控告警系统Prometheus;其功能强大,可以很方便对其进行扩展,并且可以安装和使用简单;本文首先介绍Prometheus的整个监控流程;然后介绍如何收集监控数据,如何展示监控数据,如何触发告警;最后展示一个业务系统监控的demo。监控架构Prometheus的整个
手牵手带你实现mini-vue | 京东云技术团队
Vue的双向数据绑定实现原理是什么样的,如果让我们自己去实现一个这样的双向数据绑定要怎么做呢,本文就与大家分享一下Vue的绑定原理及其简单实现