从一开始通俗地解释了Prometheus [亲手实操]

Prometheus でサーバ監視 - 長生村本郷Engineers'Blog

概况

Prometheus是一个开源的系统监控和警报工具包,由SoundCloud服务的工程师开发。它内置了一个时间序列数据库,并采用了Pull模型的数据模式。

请参阅 https://prometheus.io 以获取详细信息。

特点

Prometheus的主要功能包括如下内容。

    • 柔軟なクエリ言語であるPromQLを持つ

 

    • Pull型(over HTTP)の監視サービスで時系列の収集

 

    • 独自のデータストア

 

    グラフ化とダッシュボードのサポートの複数のモード(ただしGrafanaを使うことが多いです)

生态系统

普羅米修斯系統有一些非常出色的優點。

    • 時系列データをスクレイプして保存するメインのPrometheusサーバー

アプリケーションコードを計測するためのクライアントライブラリ

短命の仕事をサポートするためのプッシュゲートウェイ

HAProxy、StatsD、Graphiteなどのサービス用の専用エクスポーター

アラートを処理するalertmanager

以下是一种可能的汉语表述:”架构”

プロメテウスアーキテクチャ

一开始看到架构可能会觉得复杂,但实际上非常容易上手。

作为上图中流程的一个示例,首先,左下角的JobExporters(Prometheus Target)向中间的Prometheus Server拉取指标。然后,从收集的数据中使用Alertmanager检测错误并发送到Slack,使用PromQL进行日志的可视化和分析。

出场的角色

这部分内容的引述是关于Prometheus的,虽然需要花费10分钟来理解,但非常易懂。因此,我将它放在这里。

尽管上面的架构图涉及多个组件,但只需先了解以下两个,就可以暂时解决问题。

名称説明exporter監視対象サーバー上で動かすプログラム
テキスト形式でリソース情報を公開するWeb API のようなもの
監視対象のリソース毎に exporter が用意されているprometheus監視サーバーのプログラム
定期的に全ての exporter をポーリングしてリソース情報を収集する
監視したデータは prometheus 内の DB に保持される

出口 → 架构图左下角

普罗米修斯 → 架构图的中央位置

普罗米修斯的优势

以下是介绍使用Prometheus的几个优点,并与综合监控工具ZABBIX进行比较。

    • 時系列DBにデータを格納するのでI/Oが速く、画面表示が軽快(ただしGrafana経由が多い) ⇦ ZABBIXはRDBMSのため、重くなって画面表示が遅くなることがある。

 

    • 分散管理が容易で、Diskやメモリの追加でスケールアップできる。 ⇦ ZABBIXはRDBMSのレプリケーションやDBのメモリチューニングが必要

 

    • APIを介してホストの自動検出、削除が標準機能で可能であり、環境変更への対応が容易。

 

    • エンドポイントを登録すればホストに紐づかなくても監視可能、柔軟性が高い。 ⇦ ZABBIXでもWEBを使えばできるが設定が必要

 

    Grafanaの機能だが、グラフやダッシュボードUIの作成が綺麗で容易

Prometheus的缺点

在中国,也存在一些缺点。

    • データの長期保存を前提としていないので、別途に長期保存用のサーバが必要 ⇦ RDBMSなら問題ない

 

    • デフォルトの設定だとID/PassなしのWEBアクセスでデータの閲覧や監視の無効化などができてしまうので、接続制限やBasic認証が必要

 

    ストレージ問題 ⇦ 一つ目と被りますが、Prometheusは、デフォルトではTSDB(Time Series Database)というローカルのストレージを利用するのですが、これは冗長化や可用性が考慮されていません。対策として、Metricsの容量設計やRemoteStorageという機能を用い、外部のDBに保存する必要があります。

我认为虽然有长有短,但总体来说它是一款相当优秀的软件。

图形用户界面

我們將輕鬆地貼上實際儀表板的屏幕。

图表等

スクリーンショット 2021-03-01 23.52.17.png

这种隐约的动作已经被视觉化了。

所有的目标

スクリーンショット 2021-03-01 23.52.47.png

正常系 – xì

スクリーンショット 2021-03-01 23.51.44.png

警报

スクリーンショット 2021-03-01 23.58.53.png

实例停止了嘛,如果使用AlertManager还可以通过Slack进行通知。⬇︎

スクリーンショット 2021-03-02 0.00.21.png

有很多警报正不断发送过来。

Grafana 是一种数据可视化工具。

如果使用日志数据可视化工具Grafana,可以很酷地实现数据可视化。(重要)

grafana_s.png

这个设计看起来很好。


如果你因为有点了解而觉得没关系的话,那么到这里为止辛苦了。

如果你真的想亲自体验一下,就再迈出一步吧!

动手实践

目标

    • Prometheusなんとなく触れるようになる

環境が構築できる
起動できる
targetとかなんとなくわかるようになる

前提的认知

本次我们将使用Docker-compose,因此需要基本知识。

    Docker-compose

设置环境

虽然您可以选择在本地环境中进行安装,但由于通常使用容器,我们将使用Docker进行设置。

文件夹结构

tree
.
├── docker-compose.yaml
└── prometheus
    └── prometheus.yml

1 directory, 2 files

我们将使用docker-compose.yaml和prometheus.yml。在实际的开发环境中,我们还会创建和定制alert manager、grafana.env和alert规则等内容。

创建docker-compose.yaml文件

version: "3"

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus:/etc/prometheus/
    ports:
      - 127.0.0.1:9090:9090

  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - 3000:3000

在9090端口启动Prometheus服务器,并在3000端口启动Grafana服务器。通过volumes:将本地的Prometheus配置文件挂载到容器内。

创建prometheus.yml文件

global:
    scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
    evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
    external_labels:
      monitor: "codelab-monitor"

rule_files:

scrape_configs:
  - job_name: "prometheus"

    static_configs:
      - targets: ["localhost:9090"]

这是用来描述Prometheus的详细设置的文件。您可以在static_configs的位置上设置要测量的端点。此外,监视间隔和异常检测的定义(如alert_rules等)也需要在这个文件中进行记录。

启动

docker-compose up -d

我想Prometheus服务器和Grafana服务器已经启动了。

当您转到 http://localhost:9090,您可以访问Prometheus。

另外,当你点击状态标签中的目标时,你会发现http://localhost:9090/metrics正常工作。

スクリーンショット 2021-03-02 0.03.04.png

那么,现在让我们访问Grafana吧!

当您转至 http://localhost:3000,即可访问 Grafana。在首次启动时,会要求您输入用户名和密码,但您可以使用 admin 登录。

login.png

为了与Prometheus进行协作,需要从数据源中添加Prometheus。

スクリーンショット_2016-12-12_07-49-38.png

请点击”Save&Test”,然后再点击”Prometheus Status”按钮,查看图表是否绘制成功!

dashboard.png

我完成了

最终

在本次的Hands-on中,我们进行了一些并不太有意义的Prometheus服务器监控,但是Prometheus可以监控各种服务,如API服务器、缓存服务器、基础设施等等。如果有任何疑问,请随时留下评论。

文献引用

官方网站
在grafana上展示prometheus的数据图表试试看
在10分钟内了解Prometheus
下一代监视器的首选!尝试实际操作Prometheus
在10分钟内了解Grafana
开始使用可观测性!(后篇)~Metrics/Logs/Traces教程~

bannerAds