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,说明正常运行 ,写告警规则去判断这个值

prometheus 标签修改promSQL的更多相关文章

  1. Prometheus 标签使用示例整合

    Prometheus 监控实例 一.Prometheus 根据标签聚合总CPU使用率 1.主机添加标签(可在多个主机内添加相同标签实现聚合):vim prometheus.conf static_co ...

  2. prometheus 标签使用

    标签的配置使用 考虑到要明智地使用标签,我们需要给事物重新命名.在一个集中的.复杂的监视环境中,我们有时无法控制正在监视的所有资源以及它们公开的监视数据.重新标记允许在自己的环境中控制.管理和潜在地标 ...

  3. 使用<label>标签修改input[type="checkbox"]的样式

    因为<label>的特性有两点 : ①不呈现任何效果, ②用户点击该标签, 浏览器能自动将焦点转移到相关的表单控件上. <form> <input type=" ...

  4. table标签修改tr,td标签的行距

    修改tr标签的行距,tbale标签的td标签间距 看如下Css文件的代码,其都没有table的tr行距产生效果 tr{ margin-top: 10px; padding: 10px; } td{ m ...

  5. 根据pom标签修改

    sed -i "s/<count>1<\/count>/<count>2<\/count>/g"  pom.xml

  6. C# 添加、修改、删除Excel图表数据标签

    图表中,图表数据标签以数据化形式表现图表中的特定数据,可增强图表的可读性.我们可以对图表添加数据标签,也可以对已有的数据标签进行修改或者删除,下面将通过C#代码形式来实现. 使用工具:Spire.XL ...

  7. Prometheus监控学习笔记之Prometheus普罗米修斯监控入门

    0x00 概述 视频讲解通过链接网易云课堂·IT技术快速入门学院进入,更多关于Prometheus的文章. Prometheus是最近几年开始流行的一个新兴监控告警工具,特别是kubernetes的流 ...

  8. Prometheus 自动发现

    目录 简介 环境说明 静态配置 重新加载配置文件 基于文件发现配置 重新加载配置文件 添加主机测试 基于DNS的A记录 修改配置文件 重新加载配置文件 基于DNS的SRV记录自动发现 修改配置文件 重 ...

  9. Prometheus 运维监控

    Prometheus 运维监控 1.Prometheus 介绍详解 2.Prometheus 安装部署 3.Prometheus 配置文件详解 4.Prometheus PromSQL 常用资源 5. ...

随机推荐

  1. sass安装:webpack sass编译失败,node-sass安装失败的终极解决方

    文章来源:sass安装:webpack sass编译失败,node-sass安装失败的终极解决方 sass难言之隐-sass安装的坑 之前花了很多时间折腾node-sass,发现sass老是安装不上 ...

  2. aws 基于延迟策略配置dns故障切换

    前提:由于国内访问首尔地区经常出现不稳定情况,现将请求从nginx(sz)转发到nginx(hk)再转发到首尔地区,在基于不改变nginx(seoul)的配置的前提下,引入aws的延迟策略,同时保证国 ...

  3. PTA(Basic Level)1021.个位数统计

    给定一个 k 位整数 \(N=d_{k−1}10^{k−1}+⋯+d_110^1+d_0 (0≤d_i≤9, i=0,⋯,k−1, d_{k−1}>0)\),请编写程序统计每种不同的个位数字出现 ...

  4. mysql 5.6 后热数据的加载

    mysql 5.6 后热数据的加载 转自:http://blog.itpub.net/20892230/viewspace-2127469/ 故障现象:在数据库重启后,碰巧遇到业务高峰期,连接数满,导 ...

  5. iframe高度/宽度自适应(使用body而不是docuemntElement对象)

    iframe在ie11中会显示过于短.为了自适应,增加如下代码: <iframe *** onload='changeFrameHeight()' > <script> fun ...

  6. 坦克大战--Java类型 ---- (3)实现socket通信

    一.实现思路 使用socket通信的一些方法来实现socket通信,客户端和服务端两边需要约定好通信的接口Port(尽量选高的),客户端需要服务端的IP地址,以实现数据交流. 同时,客户端和服务端需要 ...

  7. Python-RabbitMQ-fanout(广播模式)

    生产者:fanout_publiser.py import pika import sys connection = pika.BlockingConnection(pika.ConnectionPa ...

  8. 牛客 2C 圈圈

    题面: shy有一个队列a[1], a[2],…,a[n].现在我们不停地把头上的元素放到尾巴上.在这过程中我们会得到n个不同的队列,每个队列都是a[k],a[k+1],…,a[n],a[1],…,a ...

  9. JVM(6)之 二次标记

    开发十年,就只剩下这套架构体系了! >>>   上一章我们讲到了标记,但是不是被标记了就肯定会被回收呢?不知道小伙伴们记不记得Object类有一个finalize()方法,所有类都继 ...

  10. django-Auth模块(详细介绍)

    转载自https://www.cnblogs.com/liuqingzheng/articles/9628105.html 1 Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们 ...