热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Prometheus指标采集常用配置

一、node-exporter配置textfile收集器textfile收集器作用:运行暴露自定义指标。例如,需要在某个被监控节点上添加一个地理位置的指标.node-exporte

一、node-exporter配置textfile收集器

textfile收集器作用:

运行暴露自定义指标。例如,需要在某个被监控节点上添加一个地理位置的指标.

node-exporter会自动启动textfile收集器,只需要指定textfile收集器指标所在的目录即可。使用--collector.textfile.directory指定

如下,定义了一个metadata,里面包含两个标签,一个是role,一个是datacenter(nj南京)。最后,指标的值为1,因为它不是计数型、测量型或计时型的指标,而是提供上下文。

echo 'metadata{role="docker_server",datacenter="NJ"} 1' >> /zhao/node-exporter/textfile_collector/metadata.prom

启动命令./node_exporter --collector.textfile.directory=/zhao/node-exporter/textfile_collector。效果如下

二、node-exporter配置只收集部分系统服务指标

通过systemd收集器白名单过滤

--collector.systemd.unit-whitelist="(docker|ssh|rsyslog).service"

以上两个收集器完整使用示例

三、Prometheus配置多个targets

如果一个job里有多台主机,只需要在targets里配置多个ip和端口即可,使用逗号隔开

[[email protected] prometheus]# cat prometheus.yml |grep -v '#'|grep -v ^$|tail -n 7
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['192.168.68.17:9104']
- job_name: 'node'
static_configs:
- targets: ['192.168.68.17:9100']
[[email protected] prometheus]#

重启Prometheus

四、过滤不需要收集的指标

如下,只收集和返回cpu和内存相关的指标

- job_name: 'node'
static_configs:
- targets: ['192.168.68.17:9100']
params:
collect[]:
- cpu
- meminfo

五、配置记录规则,返回自定义计算指标

有时候,需要将指标做相应计算后再进行返回。这时候我们就需要添加记录规则

配置prometheus.yml文件,在rule_file:部分添加一行 - "rules/node_rules.yml" 同时,在prometheus.yml配置文件的同级目录下,创建一个rules文件夹并新增一个node_rules.yml文件,文件内容如下:

groups:
- name: node_rules
rules:
- record: instance:node_cpu:avg_rate5m
expr: 100 - avg (irate(node_cpu_seconds_total{job="node",mode="idle"}[5m])) by (instance) * 100

配置文件解析:记录规则在规则组groups中定义,这里的规则组叫做node_rules,规则组名称在服务器中必须是唯一的。编写规则rules,记录一个规则值node_cpu:avg_rate5m(节点cpu在5m内的平均速率),计算公式为expr。如需添加多个规则,只需添加多个- record和expr即可。搜索该时间序列只需要输入instance:node_cpu:avg_rate5m就能搜索到。

六、基于文件的服务发现

静态配置需要维护一长串主机列表,并不是一个可拓展的任务,一旦规模起来了,这种局限性更为明显。

基于文件的服务发现比静态配置更先进一小步,非常适合配置管理工具,例如puppet、ansible。定期执行脚本生成这些文件,Prometheus会按照指定时间计划从这些文件重新加载目标。这些文件可以是yaml或json格式。

用file_sd_configs块替换prometheus.yml中的static_configs块。

- job_name: node
file_sd_configs:
- files:
- targets/nods/*.json
refresh_interval: 5m
- job_name: docker
file_sd_configs:
- files:
- targets/docker/*.json
refresh_interval: 5m

默认情况下,这些文件发生变化是,Prometheus会自动重新加载文件内容。为以防万一,还可以指定refresh_interval选项,该值为每个间隔结束时重新加载文件列表中的目标时间。也就是每隔5m重新加载文件列表中的文件。同样,我们需要在prometheus.yml的同级目录下,创建targets/{nodes,docker}文件夹

同时,我们还要在刚才新创建的文件夹下创建对应的json文件,内容如下

[{
"targets": [
"ip地址:端口",
"ip地址:端口"
],
"labels": {
"datacenter": "nj"
}
}]

以上json文件,还添加了一个nj标签。也可以使用yaml格式,如下

- targets:
- "ip地址:端口",
- "ip地址:端口"

七、基于API的服务发现

某些工具和平台上提供了原生的服务发现集成,内置支持prometheus。例如Amazon EC2,Azure、Consul,Google Compute Cloud,Kubernetes。这个后续实际使用到了,再进行补充

八、基于DNS的服务发现

暂时没搞懂什么意思,后续明白了,再进行补充



推荐阅读
  • 开发笔记:UEditor调用上传图片上传文件等模块
    1、引入ue相关文件,写好初始代码为了更好的封装整一个单独的插件,这里我们要做到示例化ue后隐藏网页中的编辑窗口,并移除焦点。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • top命令使用方法及解读
    本文介绍了top命令的使用方法和解读,包括查看进程信息、系统负载、内存状态、CPU占用等内容。通过top命令可以持续观察系统上运行的进程,并了解系统负载情况,及时关闭一些进程以减轻系统负担。同时,还介绍了top命令的快捷键和安全模式启动方法。通过本文的学习,读者可以更好地使用top命令来管理系统进程。 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
author-avatar
海家罗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有