すぐに大きな力グリッド監視プラットフォームを作成プロメテウス+ Grafanaを使用します

プロメテウスの紹介

プロメテウスは、オープンソースの監視システムである囲碁言語の開発を使用し、GoogleのBorgMon監視システム同様の実装です。

プロメテウスは、定期的コンポーネントを監視HTTPプロトコルクロール状態の基本的な原理である、対応するHTTPインターフェース限り、任意の構成要素は、監視にアクセスすることができ、より適切なドッカー、環境モニタリングシステムKubernetesの一つです。出力監視情報は、HTTPインタフェースと呼ばれる輸出

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

プロメテウスは、使用PullHTTPプル方法を介してそれぞれの監視対象データをプルするモデル、プロメテウスサーバ。

プロメテウスチャート

  • 検索:プロメテウスServerはどのような場所からデータを取得する必要がある定義
    • ジョブズ/輸出:プロメテウスの監視データは、ジョブや輸出業者から引き出すことができます。外部被ばくデータ収集インタフェースの形で輸出業者のWeb API。
    • プロメテウスサーバー:プロメテウスは、他のプロメテウスのサーバーからデータを取得することができます。
    • Pushgateway:コンポーネントの一時的な仕事のいくつかのインスタンスが実行されるため、プロメテウスは、データを監視からプルする時間を持っていない可能性があり、これらのジョブが終了している、あなたは監視データを実行することができPushgatewayから、ジョブの実行時にPushgatewayにプロメテウスをプッシュデータ損失のモニタリングを防ぐため、データを引き出します。
    • -サービス:プロメテウス手段は、動的にDNS、Kubernetes、領事から見られるように、データモニタを引き出し、いくつかの製品を見つけることができます。
  • ストレージ:すなわちプロメテウスストレージ、ローカルストレージプロメテウスサーバーを使用します。
  • PromQL:プロメテウスは、クエリで、あなたはPromQLと(例えばGrafanaなど)のWebUIの一部を使用することができます統合
  • AlertManager:アラーム監視システムのための別の外部コンポーネントプロメテウスでは、構成ファイルを介してアラームルールの数を設定することができ、アラームがプロメテウスのAlertManagerをプッシュします。

プロメテウスの機能

  • 多次元データ・モデル、タグの複数の時系列とを決定するための重要なメトリック。
  • 柔軟なクエリ言語、時系列データを収集リストラ。
  • 内蔵のブラウザ、ともGrafanaとの統合をサポートに加えて、強力なデータ可視化機能、;
  • 効率的なストレージメモリに加えて、ローカルディスク、および連合のスライスが演奏機能によって拡張することができます。
  • 操作と簡単なメンテナンスは、他のパッケージがライブラリに依存しないバイナリパッケージを行く、唯一のローカルディスクに依存します。
  • 正確な警報;
  • クライアントライブラリのロット。
  • エクスポートが指標を収集するために、多くの一般的なシステムを提供しています。
  • シーケンスデータプッシュは、中間ゲートウェイによって行うことができる場合。
  • ターゲットクライアントを見つけるための静的構成やサービスディスカバリによる。

コアの概念

データモデル

プロメテウスに保存されているすべてのデータは、基本的に时间序列数据(時間セリエデータは、時系列データと呼びます)。タイミングデータは、インデックスの下でタイムスタンプ・データ・ストリーム、特定の指標に属するデータストリーム(メートル)と測定タグ(ラベル)の複数です。

  • メトリック(メトリック):監視する指標の特性について説明します。ASCII文字、数字、アンダースコアおよびコロンの組成物のメトリック名は、正規表現に一致している必要があります[a-zA-Z_:][a-zA-Z0-9_:]*
  • タグ(タグ):値の異なる組合せに対するメトリックは、特定の次元のタイミングタグを形成することになります。プロメテウスのオープンラベル多次元データモデル。プロメテウスのクエリ言語と重合時系列データの指標とラベルを介して濾過することができます。ラベル名は、ASCII文字、数字、およびアンダースコアを含めることができ、それが正規表現に一致しなければなりません[a-zA-Z_][a-zA-Z0-9_]*_とラベル名が内部で使用するために予約されて強調する。タグの値は、中国を含む任意のUnicode文字を含めることができます。
  • サンプル値(サンプル):時系列データは、実際のサンプルの系列です。各サンプル値は:
    • 64ビット浮動小数点データ
    • ミリ秒単位の正確なタイムスタンプ
  • 注釈(アノテーション):メトリックのセットと鍵タグ対の音符。

メトリック

次のタイプでプロメテウスの指標:

  • カウンター(カウンター):累積メトリックの一種、それが唯一の増分値です。カウンターは、サーバー要求に似まとめ、そのデータエラーの数と完了したタスクの数に使用されます。
  • メーター(ゲージ):いずれかの増加を意味するだけでなく、メトリックを減らすことができます。このような瞬間的なように、温度、メモリ使用状況データに主に類似し測定するための計器。
  • ヒストグラム(ヒストグラム):サンプリングで観測(例えば、要求持続時間やデータサイズに典型的に対応)、および構成統計バケット。(とそのメトリックを想定してヒストグラムを生成するには、いくつかの方法があります<basename>):
    • プレスバケット数に相当<basename>_bucket{le="<upper inclusive bound>"}
    • サンプリング値の総和に対応<basename>_sum
    • 対応するサンプル値の総数<basename>_countだけでなく、全てのサンプル値に相当バケットカウントに<basename>_bucket{le="+Inf"}
  • 概要(概要):観測のサンプリング。統計的サンプリングと値の総和に加えて、だけでなく分位統計によります。要約を生成するには、いくつかの方法があります(としてその指標を仮定して<basename>):
    • 変位値は、中央値のサンプル値は、比は総数未満である点の数よりも少ないさφに対応し、<basename>{quantile="<φ>"}
    • サンプリング値の総和に対応<basename>_sum
    • に対応するサンプル値の総数、<basename>_count

タスクと例

プロメテウス、グラブサンプル値を例と呼ばれ、そこからエンドポイントにおいて、拡張コピー・タスクのうちの形成のためのパフォーマンスの複数のインスタンス。

  • タスク(仕事):あなたのタスクをつかみます。
  • インスタンス(インスタンス):ソース・インスタンスをつかみます。

プロメテウスは、実際の監視します

プロメテウスのインストールと展開

# 1. 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.10.0/prometheus-2.10.0.linux-amd64.tar.gz

# 2. 解压
tar zxvf prometheus-2.10.0.linux-amd64.tar.gz

# 3. 启动
cd prometheus-2.10.0.linux-amd64
./prometheus --config.file=prometheus.yml
复制代码

輸出のインストールと展開

node_exporter

# 1. 下载
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.darwin-amd64.tar.gz

# 2. 解压
tar zxvf node_exporter-0.18.1.darwin-amd64.tar.gz

# 3. 启动
cd node_exporter-0.18.1.darwin-amd64
./node_exporter
复制代码

nginxの-VTS-輸出国

私はそれは同じであるあなたがnginxのを使用している場合は、openrestyあり、ここで使用しています

依存パッケージをダウンロードしてください

cd /usr/local/src/openresty-1.15.8.1/bundle

# openssl
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz

# ngx_cache_purge
wget http://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.zip -O ngx_cache_purge.zip

# nginx-module-vts
wget http://github.com/vozlt/nginx-module-vts/archive/v0.1.18.zip -O nginx-module-vts.zip

# upstream 健康检查
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip -O nginx_upstream_check_module.zip
unzip nginx_upstream_check_module.zip
cd nginx-1.15.8
patch -p1 < ../nginx_upstream_check_module-master/check_1.14.0+.patch
复制代码

nginxのをコンパイルしてインストールします

./configure --prefix=/opt/openresty \
--with-http_auth_request_module \
--with-http_realip_module \
--with-http_v2_module \
--with-debug \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module  \
--with-http_gunzip_module \
--with-http_random_index_module \
--with-threads \
--with-pcre \
--with-luajit \
--with-mail \
--with-file-aio \
--with-http_v2_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_dav_module \
--with-http_sub_module \
--with-http_addition_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-http_secure_link_module \
--with-stream_ssl_preread_module \
--with-openssl=./bundle/openssl-1.1.1c \
--add-module=./bundle/ngx_cache_purge-2.3 \
--add-module=./bundle/nginx-module-vts-0.1.18 \
--add-module=./bundle/nginx_upstream_check_module-master \
-j2  

gmake && gmake install
复制代码

nginxの設定

http {
    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_host on;   #开启此功能,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个上。
    ...
    server {
        ...
		location /status {
    		vhost_traffic_status_display;
    		vhost_traffic_status_display_format html;
		}
        # vhost_traffic_status off;
    }
}

复制代码

あなたが必要とする、ドメイン名を監視したくない場合はserver、設定モジュールをvhost_traffic_status off;

インストールnginxの-VTS-輸出国

# 1. 下载
wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.0/nginx-vts-exporter-0.10.0.linux-amd64.tar.gz
# 2. 解压
tar zxvf nginx-vts-exporter-0.10.0.linux-amd64.tar.gz
# 3. 启动
cd nginx-vts-exporter-0.10.0.linux-amd64
复制代码

redis_exporter

# 1. 下载
wget https://github.com/oliver006/redis_exporter/releases/download/v1.0.3/redis_exporter-v1.0.3.linux-amd64.tar.gz
# 2. 解压
tar zxvf redis_exporter-v1.0.3.linux-amd64.tar.gz
# 3. 启动
cd redis_exporter-v1.0.3.linux-amd64
./redis_exporter -redis.addr 192.168.102.55:7000 -redis.password test --web.listen-address 0.0.0.0:9121
复制代码

プロメテウスは、エクスポータの設定を追加します

インストールが輸出を終えた後、次のように、輸出国のプロメテウスは、設定を追加する必要があり、簡単な構成は以下のとおりです。

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']
    
  - job_name: "node"
    static_configs:
    - targets: 
      - '192.168.26.18:9100'
      - '192.168.102.51:9100'
      - '192.168.102.58:9100'
      - '192.168.102.59:9100'
      #labels:
      #  instance: "192.168.26.18:9100"
      #  env: "pro"
      #  name: "192.168.26.18"
    
  - job_name: 'nginx'
    static_configs:
    - targets: 
      - '192.168.102.51:9913'
      - '192.168.102.58:9913'
      - '192.168.102.59:9913'
    
  - job_name: 'redis-exporter'
    file_sd_configs:
    - files: ['./redis.json']

复制代码

redis.json設定ファイルを次のように

[{
        "targets": [
            "192.168.102.53:9121",
            "192.168.102.53:9122",
            "192.168.102.54:9121",
            "192.168.102.54:9122",
            "192.168.102.55:9121",
            "192.168.102.55:9122",
            "192.168.102.70:9121",
            "192.168.102.70:9122",
            "192.168.102.71:9121",
            "192.168.102.71:9122",
            "192.168.102.72:9121",
            "192.168.102.72:9122"
        ],
        "labels": {
            "service": "redis"
        }
    }
]
复制代码

プロメテウスは、再起動することができます。最後のステップは、Grafanaを可視化設定することです。

Grafanaインストール構成

Grafanaは、クロスプラットフォームのオープンソースメトリック解析と可視化ツールである、それが収集したデータと視覚表示、およびタイムリーな通知を照会することができます。

  1. Grafanaインストールガイド

  2. Grafanaは、データソースプロメテウスを追加しました

  3. インポートダッシュボード

レンダリング:

  • nginxの監視

nginxの監視

  • Redisの監視

Redisの監視

  • ノード監視

ノード監視

- 終わり -
世間の注目番描画長押しへようこそDigNewを

世間の注目番DigNewを引く長押しへようこそ


推奨読書:

おすすめ

転載: juejin.im/post/5d397c2fe51d45775e33f64a