マイクロサービスの監視と警報(2)-Prometheusはじめと環境の構造

1、プロメテウスはじめに

  プロメテウスは、ツールキットを監視および警告オープンソースシステムのアクティブ生態系です。図プロメテウスは、アーキテクチャコンポーネントと特定の生態系です。最も中心的な場所は、主な役割は、時系列データを収集し、保存するために、当社の構成に応じて行くことで、プロメテウスサーバです。サービス発見サービス発見は、データを収集するために、2つの方法が存在する場合に、サービスの発見を通じて、プロメテウスサーバが知っているだろう、人は一緒に行くためにファイルを介して、静的であり、他は動的であり、飼育係によって構成されるか、または他のことができます内部は、データをフェッチするために別の場所に行くときに、データが変わるセンター、。データをフェッチするジョブ/輸出、私たちのアプリケーションは、一般的にプロメテウスサーバーのために提供されるが、ここでは、プルモデルがあり、利益は我々のアプリケーションのためのもの、サービスはプロメテウス、唯一の嵐が我々のデータを排出場所を知る必要はありません。その上に。Pushgatewayは、時々 、私たちのデータの一部は、このようなデータ・タイミング・タスクとして、常に存在していないので、我々は短いライブデータがPushgatewayからプロメテウスサーバ引っ張るデータのために、Pushgatewayにプッシュしている、サポートプッシュモードに使用されています。ここではコンポーネントのデータ取得が完了し紹介します。データはPromQL、可視化とデータをエクスポートすることにより、使用を照会するために、アプリケーションのフロントエンドをこぼした暴力のいくつかのデータを通じて、HTTPサーバをプロメテウスサーバーを配置するために収集された後、コンポーネントはGrafanaをお勧めします。AlertManagerがあり、多くの点では、アラーム、電子メール、マイクロチャネル、釘があるか、あなたは、のAlertManagerにプッシュされているルールを定めプロメテウスサーバーの時系列データの規則の一部をカスタマイズすることができ、独自のインタフェースを記述しますが、それはない、警報を行いますアラームすぐに、私たちは誤報を防ぐために、何回かを評価します。

ビルドに2、プロメテウス環境

ドッキングウィンドウプロメテウスのインストールファイル構造を使用して2.1、

  2.1.1、ドッカー-compose.yml

バージョン: "3" 
のサービス:
  プロメテウス:
    画像:プロム /prometheus:v2.4.3 
    CONTAINER_NAME: 'プロメテウスの' 
    ボリューム:
     - ./prometheus/:/etc/prometheus/ 
    ポート:
     - '8999:9090'

  2.1.2、prometheus.yml

#グローバルコンフィギュレーションは
、(株)無料入会:
  データ#頻度を引っ張るために
  scrape_interval:15S 

どこプル目標に#がある
:scrape_configs 
#私たちのspringbootプロジェクト
「springbootアプリ」: - JOB_NAME 
  #間隔10Sは、グローバルコンフィギュレーションをカバーし、一度データを引っ張っ
  scrape_interval:10秒
  #要求パス
  metrics_path:「/アクチュエータ/プロメテウス」

  static_configs:
  クロールの#、私たちのプロジェクトは、ローカルコンピュータで実行するため、ホスト実行中のドッキングウィンドウの設定
   -ターゲット:[」host.docker.internal: 9080 ' ] 
    、データをフェッチタグを追加する#
    ラベルを:
      ファイルアプリケーション: ' springbootアプリ' 

マシン#prometheus監視
 - JOB_NAME:'プロメテウス

  scrape_interval:5S 

  static_configs:
   -対象:[ 'localhostを:9090']

  2.1.3、監視ディレクトリ、コマンドアップドッキングウィンドウ・コン-fドッキングウィンドウ-compose.ymlの実装を入力して、コマンドラインを開始

   2.1.4、訪問http://127.0.0.1:8999/は  ステータス- >ターゲットによって、血管展開プロメテウスを訪問することができますが、当社の構成されているデータの取得対象のうちの2つを見ることができます。エンドポイントは、データエンドポイントに代わって、国は、ラベルの代わりにラベルを現在の状態を表し、最後のスクレイプ代表は、前回からのエラーメッセージの代わりにエラーが私を得ました。

3、SpringBoot統合プロメテウスは、我々は例えば、オーダーサービスに持っています

3.1、エンドポイントは頼りSpringBootアクチュエータのモニターを追加します

        <依存性> 
            <のgroupId> org.springframework.boot </のgroupId> 
            <たartifactId>ばねブートスタータアクチュエータ</たartifactId> 
        </依存>

依存3.2、添加したマイクロメートルレジストリプロメテウスアクチュエータエンドプロメテウスの増加

        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

3.3、application.yml配置对外暴漏端点,这里我们控制只暴露三个

3.4、资源服务配置端点请求,不用身份验证

package cn.caofanqi.security.config;

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;

/**
 * 资源服务器配置
 *
 * @author caofanqi
 * @date 2020/2/14 14:07
 */
@Configuration
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {


    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll()
                .anyRequest().authenticated();
    }
}

3.5、启动order服务,刷新http://127.0.0.1:8999/targets 页面,可以看到我们配置的端点,状态为up了

 3.6、我们可以通过http://order.caofanqi.cn:9080/actuator/prometheus,看到服务为Prometheus提供的数据,都是一个数据名称跟着一个数字,有的数据名称带{},里面是这个数据名称的标签。

 3.7、我们可以通过Prometheus的Graph来查看这些数据,这里{}中的标签,比我们项目中的多,那是因为它把prometheus.yml配置文件中一些配置也添加成标签了,job_name -> job、static_configs.labels.application -> application、static_configs.targets -> instance ,有利于我们对数据进行过滤。

 3.8、还可以通过标签进行过滤、通过Graph看图分析

但是它自己提供的这个界面属实不太好看,下节我们用grafana来代替

 

 项目源码:https://github.com/caofanqi/study-security/tree/dev-prometheus1

おすすめ

転載: www.cnblogs.com/caofanqi/p/12307635.html