成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

「云原生」Prometheus Pushgetway講解與實戰操作

云計算 云原生
Pushgateway是Prometheus的一個組件,prometheus server默認是通過Exporter主動獲取數據(默認采取pull拉取數據),Pushgateway則是通過exporter主動方式推送數據到Pushgateway,再由Prometheus主動去拉取 Pushgateway數據,用戶可以寫一些自定義的監控腳本把需要監控的數據發送給Pushgateway。

一、概述

PushgatewayPrometheus的一個組件,prometheus server默認是通過Exporter主動獲取數據(默認采取pull拉取數據),Pushgateway則是通過exporter主動方式推送數據到Pushgateway,再由Prometheus主動去拉取 Pushgateway數據,用戶可以寫一些自定義的監控腳本把需要監控的數據發送給Pushgateway。從prometheus server角度看,都是由prometheus server主動去拉取各個數據源(例:Exporter和Pushgateway)的數據。

1、Pushgateway優點:

  • Prometheus 默認采用定時pull 模式拉取targets數據,但是如果不在一個子網或者防火墻,prometheus就拉取不到targets數據,所以可以采用各個target往pushgateway上push數據,然后prometheus去pushgateway上定時pull數據。
  • 在監控業務數據的時候,需要將不同數據匯總, 匯總之后的數據可以由pushgateway統一收集,然后由 Prometheus 統一拉取,起到給Prometheus 減壓的作用。
  • 自定義采集指標簡單。

2、Pushgateway缺點:

  • Prometheus拉取狀態只針對 pushgateway, 不能對每個節點都有效。
  • Pushgateway出現問題,整個采集到的數據都會出現問題。
  • Pushgateway 可以持久化推送給它的所有監控數據。因此,即使你的監控已經下線,prometheus 還會拉取到舊的監控數據,需要手動清理 pushgateway 不要的數據。
  • 官方文檔:https://prometheus.io/docs/prometheus/
  • Prometheus GitHub地址:https://github.com/prometheus/prometheus/
  • Pushgetway GitHub地址:https://github.com/prometheus/pushgateway/

關于Prometheus整體介紹

二、Pushgateway 架構

  • Pushgateway就是個數據中轉站。提供API,支持數據生產者隨時將數據推送過來。
  • Pushgateway提供exporter功能,在promethus server拉取數據時,將自己保存的數據反饋給promethus server端。

三、Prometheus server 安裝

Prometheus基于Golang編寫,編譯后的軟件包,不依賴于任何的第三方依賴。用戶只需要下載對應平臺的二進制包,解壓并且添加基本的配置即可正常啟Prometheus Server。

1)下載

下載地址:https://prometheus.io/download/

wget https://github.com/prometheus/prometheus/releases/download/v2.40.6/prometheus-2.40.6.linux-amd64.tar.gz

tar -xf prometheus-2.40.6.linux-amd64.tar.gz

2)配置

解壓后當前目錄會包含默認的Prometheus配置文件promethes.yml,下面配置文件做下簡略的解析:

# 全局配置
global:
scrape_interval: 15s # 設置抓取間隔,默認為1分鐘
evaluation_interval: 15s #估算規則的默認周期,每15秒計算一次規則。默認1分鐘
# scrape_timeout #默認抓取超時,默認為10s

# Alertmanager相關配置
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

# 規則文件列表,使用'evaluation_interval' 參數去抓取
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# 抓取配置列表
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

3)啟動服務

# 查看幫助
./prometheus -h

# 直接啟動服務,但是不提倡這種,因為退出控制臺服務也就退出了,雖然可以加nohup啟動,但是也不是特別友好,下面將配置prometheus.server啟動
# 默認端口是:9090,如需要修改默認端口,可以使用--web.listen-address=:9099,還可以指定配置文件--config.file=prometheus.yml
./prometheus

配置prometheus.service 啟動腳本

cat >/usr/lib/systemd/system/prometheus.service<<EOF
[Unit]
Descriptinotallow=Prometheus
After=network.target
[Service]
Type=simple
ExecStart=/opt/prometheus/prometheus_server/prometheus-2.40.6.linux-amd64/prometheus --config.file=/opt/prometheus/prometheus_server/prometheus-2.40.6.linux-amd64/prometheus.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

啟動服務

# 執行 systemctl daemon-reload 命令重新加載systemd
systemctl daemon-reload
# 啟動
systemctl start prometheus
# 檢查
systemctl status prometheus
netstat -tnlp|grep :9090
ps -ef|grep prometheus

web訪問:http://ip:9090

四、Pushgateway 安裝

1)下載

下載地址:https://prometheus.io/download/#pushgateway

wget https://github.com/prometheus/pushgateway/releases/download/v1.5.1/pushgateway-1.5.1.linux-amd64.tar.gz

2)啟動服務

# 查看幫助
./pushgateway -h

# 啟動服務,這里也不使用直接啟動的方式,配置pushgateway.service啟動
./pushgateway

默認監聽的是9091端口。可以通過以下配置進行更改:

usage: pushgateway [<flags>]
Flags:
--web.listen-address=":9091" 監聽Web界面,API和遙測的地址。
--web.telemetry-path="/metrics" 公開metrics的路徑。
--web.external-url= 可從外部訪問Pushgateway的URL.
--web.route-prefix="" Web端點內部路由的前綴。 默認為--web.external-url的路徑.
--persistence.file="" 歸檔以保留metrics。 如果為空,則metrics僅保留在內存中.
--persistence.interval=5m 寫入持久性文件的最小間隔。
--log.level="info" 僅記錄具有給定嚴重性或更高嚴重性的消息。 有效級別:[debug, info, warn, error, fatal]
--log.format="logger:stderr" 設置日志目標和格式。 示例:“ logger:syslog?appname = bob&local = 7”或“ logger:stdout?json = true”
--version 顯示應用程序版本。

配置pushgateway.service 啟動腳本

cat >/usr/lib/systemd/system/pushgateway.service<<EOF
[Unit]
Descriptinotallow=Pushgetway
After=network.target
[Service]
Type=simple
ExecStart=/opt/prometheus/pushgateway/pushgateway-1.5.1.linux-amd64/pushgateway
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

啟動服務

# 執行 systemctl daemon-reload 命令重新加載systemd
systemctl daemon-reload
# 啟動
systemctl start pushgateway
# 檢查
systemctl status pushgateway
netstat -tnlp|grep :9091
ps -ef|grep pushgateway

web訪問:ip:9091/metrics

3)接入Prometheus

更改prometheus配置文件,增加如下內容:

- job_name: 'pushgateway_name' 
scrape_interval: 30s
honor_labels: true #加上此配置,exporter節點上傳數據中的一些標簽將不會被pushgateway節點的相同標簽覆蓋
static_configs:
- targets: ["192.168.182.110:9091"]
labels:
instance: pushgateway_instance
# pushgateway 中的數據我們通常按照 job 和 instance 分組分類,所以這兩個參數不可缺少。

重啟Prometheus服務,或進行熱加載

# curl -X POST http://192.168.182.110:9090/-/reload
systemctl restatus prometheus

再查看prometheus web界面:http://ip:9090/targets

五、實戰操作演示

1)推送數據定義

  • 推送路徑的URL部分定義為

/metrics/job/<JOB_NAME>{/<LABEL_NAME>/<LABEL_VALUE>}

其中job是必須參數,label_name部分是可選的,URL中的job和label組合唯一標識pushgateway中的Group。

  • 在推送的數據部分,格式定義如下:

## TYPE metric_name type
metric_name{lable_name="label_value",...} value

1)推送數據

推送一個group定義為{job=“some_job”}的數據

echo "some_metric 3.14" | curl --data-binary @- http://192.168.182.110:9091/metrics/job/some_job

推送一個group定義為{job=“some_job”,instance=“some_instance”}的數據

#  --data-binary 表示發送二進制數據,注意:它是使用POST方式發送的!
cat <<EOF | curl --data-binary @- http://192.168.182.110:9091/metrics/job/some_job/instance/some_instance
# TYPE some_metric counter
some_metric2{label="val1"} 42
# TYPE another_metric gauge
# HELP another_metric Just an example.
another_metric 2398.283
EOF

2)刪除數據

刪除group定義為{job=“some_job”}下的所有數據

curl -X DELETE http://192.168.182.110:9091/metrics/job/some_job/instance/some_instance

刪除所有group下的所有metrics(啟動pushgateway時需加上命令行參數--web.enable-admin-api)

curl -X PUT http://192.168.182.110:9091/api/v1/admin/wipe

說明:

  1. 刪除數據是以Group為單位的,Group由job name和URL中的label唯一標識。
  2. 舉例中刪除{job=“some_job”}數據的語句并不會刪除{job=“some_job”,instance=“some_instance”}的數據。因為屬于不同的Group。如需要刪除{job=“some_job”,instance=“some_instance”}下的數據,需要使用。
  3. 這里刪除數據是指刪除pushgateway中的數據,跟promethues沒有關系。

上面的演示示例是官方提供:https://github.com/prometheus/pushgateway/

3)?定義編寫腳本的?法 發送pushgateway 采集

模板

cat <<EOF | curl --data-binary @- http://192.168.182.110:9091/metrics/job/some_job/instance/some_instance
# A histogram, which has a pretty complex representation in the text format:
# HELP http_request_duration_seconds A histogram of the request duration.
# TYPE http_request_duration_seconds histogram
disk_usage{instance="local-168-182-110",job="disk",disk_name="/run/user/0"} 11
disk_usage{instance="local-168-182-110",job="disk",disk_name="/run/user/1"} 22
disk_usage{instance="local-168-182-110",job="disk",disk_name="/run/user/2"} 33
disk_usage{instance="local-168-182-110",job="disk",disk_name="/run/user/3"} 44
disk_usage{instance="local-168-182-110",job="disk",disk_name="/run/user/4"} 55
EOF

編寫采集腳本推送數據到Pushgateway

cat >disk_usage_metris.sh<<EOF
#!/bin/bash

hostname=`hostname -f | cut -d '.' -f1`

metrics=""
for line in `df |awk 'NR>1{print $NF "=" int($(NF-1))}'`
do
disk_name=`echo $line|awk -F'=' '{print $1}'`
disk_usage=`echo $line|awk -F'=' '{print $2}'`
metrics="$metrics\ndisk_usage{instance=\"$hostname\",job=\"disk\",disk_name=\"$disk_name\"} $disk_usage"
done

echo -e "# A histogram, which has a pretty complex representation in the text format:\n# HELP http_request_duration_seconds A histogram of the request duration.\n# TYPE http_request_duration_seconds histogram\n$metrics" | curl --data-binary @- http://192.168.182.110:9091/metrics/job/pushgateway/instance/disk_usage
EOF

查看Pushgetway web

查看Prometheus web



責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-03-06 07:19:50

2022-11-08 08:55:31

2023-03-07 07:56:37

Sqoopk8s底層

2022-10-14 07:42:50

LuceneHTTPWeb

2023-03-03 07:54:21

2023-03-27 07:43:35

2023-03-01 07:42:12

HBase編排部署數據

2022-11-06 21:31:11

云原生Sentinel集群模式

2023-01-26 23:59:24

Ansibleplaybook列表

2023-08-08 00:11:57

命令行工具查詢

2022-10-10 12:54:00

Flink運維

2023-03-26 08:41:37

2023-02-03 08:18:01

2022-11-28 17:22:32

高可用master節點

2023-09-27 00:12:23

2023-08-29 10:27:32

2021-06-15 09:57:23

云計算云原生云開發

2020-12-01 17:44:15

華為云Go語言云原生

2020-07-07 14:09:16

云原生JavaGolang

2023-07-13 15:24:13

云計算云原生架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美精品一区二区三区 | 欧美日韩亚洲视频 | 久久性av | 日韩精品一区二区三区第95 | 国内毛片毛片毛片毛片 | 中文字幕av亚洲精品一部二部 | 精品久久99 | 美女黄18岁以下禁止观看 | 国产精品日韩欧美一区二区 | 欧美激情 一区 | 天天碰日日操 | 91一区二区三区 | 综合五月 | 在线中文视频 | 97伦理影院 | 久一久 | 精品国产精品三级精品av网址 | 最新国产视频 | 亚洲视频在线免费观看 | 91在线观看| 日本亚洲一区 | 精品国产乱码久久久久久88av | 久久性色 | 国产成人综合亚洲欧美94在线 | 成人免费一区二区三区视频网站 | 国产三级在线观看播放 | 免费在线观看一区二区三区 | 成人av网站在线观看 | 国产1页| 岛国av在线免费观看 | 男人天堂视频在线观看 | 欧美福利在线 | 国产精品视频一二三区 | 日韩精品视频一区二区三区 | 羞羞视频在线网站观看 | 日韩中文字幕一区 | 久久69精品久久久久久久电影好 | 国产精品久久久久久中文字 | 亚洲在线 | 亚洲欧美在线一区 | 国产日韩视频在线 |