Prometheus が NAT 経由でメトリックをスクレイピングできるようにするツール - PushProx

Prometheus が NAT 経由でメトリックをスクレイピングできるようにするツール - PushProx

Prometheus は Pull モードを使用して監視インジケーターをプルすることがわかっていますが、直接アクセスできないシナリオでは、追加のメソッドが必要になります。このシナリオでは PushProx が使用されます。 PushProx は、メトリックをプルするための Pull モデルに従いながら、Prometheus が NAT やその他の同様のネットワーク トポロジを通過できるようにするクライアントおよびプロキシです。

建築

PushProx は主にプロキシとクライアントの 2 つの部分で構成されます。プロキシは、Prometheus サーバーからメトリック要求を受信する役割を担い、要求情報をクライアントにプロキシします。クライアントはローカル デバイスからメトリックを取得した後、その結果をプロキシに返します。プロキシは Prometheus がアクセスできる場所にデプロイする必要があり、クライアントは収集が必要なノードが配置されているネットワークにデプロイされます。

以下のネットワーク環境に適用可能です。

  • Prometheus はクライアント ECS に直接アクセスできません。
  • Prometheus は、クライアントが配置されている VPC 内の ECS (PushProx プロキシ) にアクセスでき、イントラネットを貫通するかパブリック ネットワークを公開することで PushProx プロキシに到達できます。
  • 顧客 EC と PushProx エージェントは同じ VPC 内にあります。

各クライアントには FQDN 識別子があります。 Prometheus は PushProx を通じてターゲット fqdn-x を取得すると、次の操作を実行します。

  • クライアントはプロキシにフェッチ要求をポーリングし、そのポーリングに FQDN を含めます (1)。クライアントはプロキシに POST リクエストを送信しますが、プロキシは応答しません。
  • Prometheusはプロキシ(2)を介してホスト名fqdn-xを持つターゲットをクロールしようとします。 Prometheus は GET リクエストをプロキシに送信し、プロキシはそれを fqdn-x に基づいて正しいクライアントにルーティングします。現時点ではプロキシは応答しません。
  • フェッチ要求は、ステップ 1 (3) のクライアント POST 要求に応答してプロキシがクライアントに送信する応答メッセージに含まれています。
  • フェッチ要求はクライアントによって実行されます(4)。
  • キャプチャされたデータにはインジケーター(5)の応答が含まれており、エージェント(6)に公開されます。
  • プロキシは、Prometheusがステップ2でGETリクエストを送信すると、それを応答メッセージとしてP​​rometheus(7)に返します。

PushProx はすべての HTTP ヘッダーを透過的に渡し、圧縮や accept-encoding などの機能はスクレイピング Prometheus サーバーに依存します。

テスト

ここでは、テストに次のコンポーネントを使用する必要があります。

  • node_exporter はノードのいくつかの基本的なメトリックを公開します。
  • pushprox-client と node_exporter は、データを収集する必要がある NAT 環境のノードに一緒にデプロイされます。
  • pushprox-proxy と prometheus は両方とも外部ネットワークにデプロイされます。 prometheus は pushprox-proxy サービスにアクセスできます。

プロキシはクライアント上でTLS認証を実行します

プロキシとクライアントの間に認証がなく、クライアントの IP アドレスが不確かで、プロキシがクライアントのファイアウォール ポリシーを構成できないため、プロキシとクライアントの間に認証を追加する必要があります。

tls を使用してクライアントを検証します。 Pushprox-proxy は tls をサポートしていないため、pushprox-proxy へのリバース プロキシとして nginx が必要であり、次に tls が nginx で構成され、ssl_verify_client が nginx で有効になります。 pushprox-client は、nginx への TLS クライアント接続をサポートします。 pushprox-client では、SSL 標準 x509 で定義された拡張機能である SAN (Subject Alternative Name) をサポートするために tls が必要です。したがって、自己署名証明書を生成するときは SAN をサポートする必要があります。ここで、https://github.com/ljq/gen-tlsv3-san-ca を参照して自己署名証明書を生成できます。

pushprox-proxyを起動する

pushprox-proxy はパブリック ネットワーク上のサーバーに展開する必要があり、各クライアントとの長い接続を維持する必要があります。クライアントが多数ある場合、プロキシは負荷分散を考慮する必要があります。

 ./pushprox-プロキシ

nginxの設定

nginx リバース プロキシを pushprox-proxy に接続し、nginx で tls を設定します (pushprox.conf):


アップストリームプロキシバックエンド{
サーバー127.0.0.1 : 8080 ;
}
サーバー{
443 ssl をリッスンします
サーバー名promprox .k8s .local ;
ssl オン;
ssl_certificate / opt / xk-self-cert / server .crt ; #証明書の場所を設定する
ssl_certificate_key / opt / xk-self-cert / サーバー.key ; #キーの場所を設定する
ssl_client_certificate / opt / xk-self-cert / ca .crt ; #双方向認証
ssl_verify_client オン; #双方向認証
ssl_session_timeout 5分;
ssl_プロトコルSSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 ; # このプロトコルに従って設定する
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256 : HIGH : !aNULL : !MD5 : !RC4 : !DHE ; #このスイートに従って構成する
ssl_prefer_server_ciphers オン;
位置/ {
proxy_pass http :// prox-backend /;
}
}

クライアントを起動する

pushprox-client は、自己署名証明書の ca とクライアント crt を構成する必要があります。

 ./ pushprox-client --proxy-url = https :// promprox .k8s .local --tls .cacert =/ opt / xk-self-cert / ca .crt --tls .cert =/ opt / xk-self-cert / client .crt --tls .key =/ opt / xk-self-cert / client .key

プロメテウスを起動

 ./ prometheus --config .file = prometheus-prox .yml

設定ファイルは次のようになります。

 # プロメテウスprox.yml
グローバル:
スクレイプ間隔: 15秒
評価間隔: 15秒
# スクレイピングするエンドポイント1 つだけ含むスクレイピング設定:
# ここプロメテウスそのものです。
scrape_configs : スクレイプ設定:
- ジョブ名: ノード
proxy_url : http : //xx.xx.xx.xx :8080 / # プロキシアドレスとして設定
静的構成:
- ターゲット: [ ' ceph-local:9100' ] # クライアントFQDN 「client」 であると想定します

通常、インジケーターデータを取得できます。

<<:  コンテナ管理に最適な Docker の代替品 9 つ

>>:  VMware は最新のセキュリティをリードし、開発から本番まで最新のアプリケーションを保護します。

推薦する

韓国無制限帯域幅VPS

韓国の無制限トラフィック VPS は非常に人気があります。主な理由は、韓国の VPS は登録不要、高...

SEO最適化にはコンテンツマーケティングが必要

Baidu のアルゴリズムルールが変更された後、ユーザーエクスペリエンスに重点が置かれたため、著者の...

「9つの言葉、1つの手、専用のクラウド」、Youfu Networkのクラウドへの道

[51CTO.com オリジナル記事]プロプライエタリクラウドと専用クラウドは単に名前が違うだけでし...

推奨事項: AS フォーラムが設立されました。ぜひご参加ください。

みなさんこんにちは。HostCatは設立されてから2年以上経ち、多くの忠実なネットユーザーから支持を...

SEOサービス企業が今後勝ち残る方法

SEO サービス会社は、ターゲットとなる法人顧客に対して SEO サービスを提供し、ユーザーが We...

ランキングフロー:百度の重み増減の定量的指標

私が勤務するf600起業ネットワークのウェブサイトが格下げされた後、f600起業ネットワークの重みは...

ウェブサイトマーケティングの3次元的思考と運用モデルについて詳しく解説

近年のインターネットと実店舗でのマーケティングモデルへの理解を通じて、私は独自のマーケティングモデル...

ウェブサイトの再設計をウェブサイト開発の加速器にしましょう

ウェブマスターとして、ウェブサイトの改訂に遭遇することは避けられません。ドメイン名を変更する必要があ...

4Kテレビと4K産業の発展の解釈

最近、従来の家電メーカーが相次いで4Kテレビを発売した後、インターネットテレビの代表格であるLeTV...

friendhosting: 夏のプロモーション、8 つのデータ センター、無制限のトラフィック VPS、半年あたり 7.18 ユーロから

7月31日から8月31日まで、friendhostingの毎年恒例のサマープロモーションが開催中です...

エッジコンピューティングとモノのインターネット: インターネット接続の効率とセキュリティの向上

モノのインターネット技術の急速な発展により、ますます多くのデバイスやセンサーがインターネットに接続さ...

年配のウェブマスターの経験について語る

何かを検索していたところ、昔のウェブマスターが書いた良い記事を見つけたので、皆さんと共有するために再...

最適化されたウェブマスターの垂直思考をお持ちですか?

ウェブサイトの最適化は、もはや神秘的なものではありません。多くのウェブマスターは、大量の外部リンクを...

locvpsの日本のVPSはどうですか? locvpsの実態を簡易評価する日本のvps

locvps の日本の VPS は、さまざまなニーズを持つ顧客に対応するために、小帯域幅無制限トラフ...