監視システムプロメテウスでは、プロメテウスの義務は、収集、格納およびクエリとのAlertManagerにアラームをプッシュすることです。本論文では、プロメテウスのプロファイルの下で。
グローバル・コンフィギュレーション・ファイルの概要
デフォルトの設定ファイル
Ctrl + Cを押してコードをコピーします
Ctrl + Cを押してコードをコピーします
- グローバル:このフラグメントは、そのような取得間隔としてグローバルコンフィギュレーションプロメテウスを、指定されたタイムアウト時間がフェッチされます。
- rule_files:このフラグメントアラームルールファイルは、プロメテウスの情報は、アラーム情報は、のAlertManagerにプッシュされますこれらの規則に従って、指定します。
- scrape_configs:このフラグメントは、このセグメント構成によって把持構成、プロメテウスデータ取得を指定。
- 警告:このフラグメント指定アラーム設定、例えば、指定されたアドレスのAlertManagerプロメテウスプッシュを指定メインアラームルールを。
- remote_write:書き込みアドレス格納されているAPIバックエンドを指定します。
- remote_read:読み出しアドレス格納されているAPIバックエンドを指定します。
主なパラメータグローバルセグメント
#どのくらいの頻度で、デフォルトでは、ターゲットをこすりします。
[scrape_interval:< 期間> | デフォルト= 1メートル]#抓取间隔
#どのくらいこすり要求がタイムアウトになるまで。 [scrape_timeout:< 期間> | ルールを評価するためにどのくらいの頻度でデフォルト= 10秒]#抓取超时时间#。[evaluation_intervalは:< 期間> | #外部システム(フェデレーション、リモートストレージ、のAlertManager)と通信するときにデフォルト= 1メートル]#评估规则间隔#ラベルは、任意の時系列または警告に追加します。external_labels:#外部一些标签设置[ < ラベル名>:< labelvalue > ...]
scrapy_config片段主要参数
Scrape_config断片を標的とパラメータのセットを指定し、ターゲットの例は、エンドポイントの取得、取得パラメータは次のようにこれらの実施例、主なパラメータである方法を説明指定されています
- scrape_interval:デフォルトはグローバル値を継承し、間隔をキャプチャします。
- scrape_timeout:クロールのタイムアウト、デフォルトではグローバル値を継承します。
- metric_path:クロール・パスは、デフォルトでは/メトリックです
- スキームは:使用されるコレクションプロトコル、HTTPまたはHTTPSを指定します。
- params:urlパラメータを指定します。
- BASIC_AUTH:認証情報を指定します。
- * _Sd_configs:サービス検出設定を指定します。
- static_configs:静的サービスジョブを指定しました。
- relabel_config:设置リラベル。
static_configsサンプル
scrape_configs:
ジョブ名がラベル`ジョブとして追加されます。#= < job_nameを> `この設定から掻き取りいかなる時系列に。 - JOB_NAME: 'プロメテウス'
'/メトリクス'に#のmetrics_pathのデフォルトは 'HTTP'に#スキームのデフォルト設定。
static_configs: -ターゲット:[ 'はlocalhost:9090'] - JOB_NAME: "ノード" static_configs: -ターゲット: - "192.168.100.10:20001" - 「192.168.100.11:20001 - "192.168.100.12:20001"
file_sd_configsサンプル
scrape_configs:
ジョブ名がラベル`ジョブとして追加されます。#= < job_nameを> `この設定から掻き取りいかなる時系列に。 - JOB_NAME: 'プロメテウス'
'/メトリクス'に#のmetrics_pathのデフォルトは 'HTTP'に#スキームのデフォルト設定。
static_configs: -対象:[ 'localhostを:9090'] - JOB_NAME: "ノード" file_sd_configs: - REFRESH_INTERVAL:1メートルのファイル: - "/usr/local/prometheus/prometheus/conf/node*.yml"
#別の設定ファイルは、confにCAT /ノードdis.conf以下
:ターゲット-
- "192.168.100.10:20001"
- "192.168.100.11:20001"
- "192.168.100.12:20001"
又は[ルート@ node00のCONF]に構成されてもよいしCAT-dis.ymlノード#
-ターゲット:
- "192.168.100.10:20001"
ラベル:
ホスト名:node00
-ターゲット:
- "192.168.100.11:20001"
ラベル:
ホスト名:node01
-ターゲット:
- "192.168.100.12:20001"
ラベル:
ホスト名:node02で
対応する取得ファイル(node_dis.yml)を変更、プロメテウスを再起動することなく、我々は可能な構成によってfile_fd_files後、指定された時間(内REFRESH_INTERVAL)、プロメテウスの作業は、構成情報をロード終了します。
consul_sd_fileサンプル
領事の領事の構成としては、ここで領事サービスの簡単な展開の下で、サービスプロバイダが必要です。
# 进入下载目录
[root@node00 prometheus]# cd /usr/src/
# 下载 [root@node00 src]# wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip
# 解压 [root@node00 src]# unzip consul_1.6.1_linux_amd64.zip Archive: consul_1.6.1_linux_amd64.zip inflating: consul
# 查看 [root@node00 src]# ls consul consul_1.6.1_linux_amd64.zip debug kernels node_exporter-0.18.1.linux-amd64.tar.gz prometheus-2.12.0.linux-amd64.tar.gz
# 查看文件类型 [root@node00 src]# file consul consul: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
# 防止到系统bin目录 [root@node00 src]# mv consul /usr/local/bin/
# 确保环境变量包含 [root@node00 src]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# 运行测试 [root@node00 consul.d]# consul agent -dev
# 测试获取成员
[root@node00 ~]# consul members # 创建配置目录 [root@node00 ~]#mkdir /etc/consul.d [root@node00 consul.d]# cat prometheus-node.json {
"addresses": {
"http": "0.0.0.0",
"https": "0.0.0.0"
},
"services": [{
"name": "prometheus-node",
"tags": ["prometheus","node"],
"port": 20001
}]
}
# 指定配置文件运行
consul agent -dev -config-dir=/etc/consul.d
打开web管理界面 192.169.100.10:8500,查看相应的服务信息。
上面我们可以看到有2个service , 其中prometheus-node是我们定义的service。
和prometheus集成样例:
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"
consul_sd_configs:
- server: localhost:8500
services:
- prometheus-node
# tags:
# - prometheus
# - node
#- refresh_interval: 1m
- job_name: 'node_exporter'
consul_sd_configs:
- server: 'consul_ip:8500'
services: ['node_exporter']
# 匹配service关键字
- job_name: 'service'
consul_sd_configs:
- server: 'consul_ip:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*service.*
action: keep
在prometheus的target界面上我们看到服务注册发现的结果。
我们通过api接口给该service添加一个节点, 看看是否可以同步过来。
[ルート@のnode00〜]#カール-XPUT [email protected] 127.0.0.1:8500/v1/catalog/register
真
[ルート@ node00〜]#猫node01.json
{
"ID": "0cc931ea-9a3a-a6ff -3ef5-e0c99371d77d "
"ノード": "node01"、
"住所"、 "192.168.100.11"、
"サービス":
{
"ポート":20001、
"ID": "プロメテウス・ノード"、
"サービス"、"プロメテウスノード」
}
}
領事とプロメテウスの観点から
例としては、ノード領事特定のサービスにアドレスを追加することによって求めることができ、それは動的変更プロメテウスで取得することができます。