prometheus 標簽修改promSQL


relabel_configs

根據prometheus 監控k8s配置文件中學習
未修改前默認配置文件:

網頁顯示:

修改配置文件后:

網頁顯示:

服務發現網頁:

總結:
在數據采集之前對任何目標的標簽進行修改,重打標簽的意義就是如果標簽有重復的可以幫你重命名

relabel_config語法

relabel_configs: 
  [ source_labels: '[' <labelname> [, ...] ']' ]   ##源標簽,指定對哪個現有標簽進行操作
  [ separator: <string> | default = ; ]            ##多個源標簽時連接的分隔符
  [ target_label: <labelname> ]                    ##要將源標簽換成什么名字
  [ regex: <regex> | default = (.*) ]              ##怎么來匹配源標簽,默認匹配所有
  [ modulus: <uint64> ]                            ##不怎么會用到
  [ replacement: <string> | default = $1 ]         ##替換正則表達式匹配到的分組,分組引用$1,$2,$3
  [ action: <relabel_action> | default = replace ] ##基於正則表達式匹配執行的操作,默認替換

action重新打標簽動作

值	            描述
replace	            默認,通過正則匹配 source_label 的值,使用 replacement 來引用表達式匹配的分組
keep	         刪除 regex 於鏈接不匹配的目標 source_labels
drop	         刪除 regex 與連接匹配的目標 source_labels
labeldrop	    匹配 Regex 所有標簽名稱
labelkeep	    匹配 regex 所有標簽名稱
hashmod	            設置 target_label 為 modulus 連接的哈希值 source_lanels
labelmap	    匹配 regex 所有標簽名稱,復制匹配標簽的值分組,replacement 分組引用 (${1},${2}) 替代

節點貼標簽

未修改前:

修改后:
配置:

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: ['192.168.190.139:9090']
  - job_name: 'promethues-node'
    static_configs:
    - targets: 
        - 192.168.190.139:9100
      labels:          ##添加的標簽
        server: local  ##添加的標簽
    relabel_configs:
    - target_label: __address__
      replacement:  127.0.0.1:9100

效果:

標簽重命名

修改前:

修改后配置:

  - job_name: 'promethues-node'
    static_configs:
    - targets: 
        - 192.168.190.139:9100
      labels:
        server: local
    relabel_configs:
    - action: replace       ##動作:替換
      source_labels: ['job']   ##對源標簽操作,標簽名為‘job’
      regex: (.*)              ##正則,會匹配到job值
      replacement: $1          ##引用正則匹配到的內容 
      target_label: ttt        ##賦予新的標簽,名為ttt

修改后展示:

因為原來的標簽名未刪除,所以還會展示,現在刪除原來的標簽
配置文件:

  - job_name: 'promethues-node'
    static_configs:
    - targets: 
        - 192.168.190.139:9100
      labels:
        server: local
    relabel_configs:
    - action: replace
      source_labels: ['job']
      regex: (.*)
      replacement: $1
      target_label: ttt
    - action: labeldrop 
      regex: job

受影響的只是標簽,對采集的主機並沒有產生影響

不想采集目標標簽數據

scrape_configs:
  - job_name: 'server21'

    static_configs:
    - targets: ['localhost:9090']
    relabel_configs: 
    - action: replace
      source_labels: ['job']
      regex: (.*)
      replacement: $1
      target_label: local
    - action: drop     ##刪除標簽為 job 的節點,采集不到數據了
      source_labels: ["job"]

基於文件的服務發現

原始配置:

[root@redhat /usr/local/prometheus]# cat prometheus.yml
global:
  scrape_interval:     15s 
  evaluation_interval: 15s 

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'

修改配置文件,通過文件服務發現監控主機

[root@redhat /usr/local/prometheus]# cat prometheus.yml
global:
  scrape_interval:     15s 
  evaluation_interval: 15s 

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    file_sd_configs: 
      - files: ['/usr/local/prometheus/files_sd_configs/*.yaml']  ##指定服務發現文件位置
        refresh_interval: 5s                                      ##刷新間隔改為5秒

在指定目錄編寫需要監控的文件

[root@redhat  /usr/local/prometheus/files_sd_configs]# cat configs.yml 
- targets: ['localhost:9090'] 
  labels:
    name: ttt123

PromSQL


查詢標簽,以node 開頭的element 都是node_expores 采集的。

node節點5M中cpu的平均使用率

1,
node_cpu_seconds_total{mode="idle"}[5m]
節點5分鍾內空閑的cpu 采集來的數據

2,統計平均值irate 函數
irate(node_cpu_seconds_total{mode="idle"}[5m])*100
5分鍾內所有節點cpu的平均空閑率

3,100 - irate(node_cpu_seconds_total{mode="idle"}[5m])*100

內存使用率

100 - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes *100

硬盤使用率

查看收集到的信息
node_filesystem_files

100- (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{mountpoint="/",fstype=~"ext4|xfs"} *100)
node_filesystem_size_bytes 查的是 / 總大小,node_filesystem_free_bytes 查的是剩余大小,只匹配 ext4&xfs 類型的
查詢標簽
node_filesystem_size_bytes{mountpoint='/'}

查詢系統服務運行狀態

監控以 systemctl 啟動的服務
在節點配置啟動參數,支持該功能

cat  /etc/systemd/system/node-exporter.service
[Unit]
Description=Prometheus Node Exporter
After=network.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(prometheus|sshd).service
[Install]
WantedBy=multi-user.target



systemctl daemon-reload
systemctl restart node_exporter.service 

查詢
node_systemd_unit_state
node_systemd_unit_state{name=~"(prometheus|sshd).service"}

state=active 的值為 0,說明正常運行 ,寫告警規則去判斷這個值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM