使用基于文件的服务发现机制发现抓取目标

浏览 0      扫码          2019-12-14 16:48:55     码农文档      译文原文 英文原文

公告:如果您也想加入翻译队伍,或者您有相关中文文档想要贡献给大家,请联系coderdocument@163.com ,谢谢!

Prometheus为发现抓取目标提供了多种服务发现机制,包括KubernetesConsul 等等。如果你需要使用当前不支持的服务发现系统,那么你最好使用Prometheus的基于文件的服务发现机制,该机制允许你在JSON文件中列出抓取目标以及关于这些目标的元数据)。

在本指南中,我们将:

  • 在本地安装并运行Prometheus节点导出器
  • 创建一个 targets.json 文件,用于指定节点导出器的主机和端口信息;
  • 安装并运行一个Prometheus实例,该实例配置为使用targets.json 文件发现节点导出器。

安装并运行节点导出器

请参阅使用节点导出器监控Linux主机指标指南中安装并运行节点导出器部分。节点导出器运行在9100端口。查看节点导出器是否正在暴露指标:


   
       

指标输出类似如下:


   
       

安装、配置并运行Prometheus

与节点导出器类似,Prometheus是一个静态二进制文件,你可以通过tarball安装它。要安装Prometheus,下载适合你平台的最新版本并压缩:


   
       

解压后的目录中有一个 prometheus.yml配置文件。将该文件的当前内容替换为如下内容:


   
       

此配置指定有一个名为node(针对节点导出器)的作业,该作业从targets.json 文件中检索节点导出器实例的主机和端口信息。

现在创建 targets.json文件,并添加以下内容:


   
       

注意:在本指南中,为了简单起见,我们将手动处理JSON服务发现配置。但是,通常我们建议你使用某种json生成工具。

此配置指定有一个目标为localhost:9100node作业。

现在你可以启动Prometheus:


   
       

如果Prometheus已经成功启动,你应该在日志中看到如下一行:


   
       

查看服务指标

启动并运行Prometheus之后,你可以使用Prometheus表达式浏览器来查看node服务暴露的指标。例如,如果你查看 up{job="node"}指标,你可以看到节点导出器已被发现。

动态修改目标列表

在使用Prometheus的基于文件的服务发现机制时,Prometheus实例将监控文件的变化,并自动更新抓取目标列表,而不需要重新启动实例。为了演示这一点,在端口9200上启动第二个节点导出器实例。首先进入包含节点导出器二进制文件的目录,并在一个新的终端窗口中运行如下命令:


   
       

现在,在 targets.json文件中添加一个新的节点导出器:


   
       

当你保存更改时,Prometheus将自动感知新的目标列表。up{job="node"}指标应该会显示两个实例,实例标签为localhost:9100localhost:9200

总结

在本指南中,你安装并运行了Prometheus节点导出器,并配置Prometheus使用基于文件的服务发现从节点导出器发现并抓取指标。

返回顶部