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