Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

news2024/12/22 19:22:15

一、查看可安装的版本

docker search prom/prometheus

 二、拉取镜像

docker pull prom/prometheus

 三、查看镜像

docker images

 四、书写配置文件-以及创建挂载目录

宿主机挂载目录位置:

以及准备对应的挂载目录:

/usr/local/docker/promethues/server

准备如下:

data、config、rules、ClientAll、server

  授权相关文件夹权限

chmod -R 777 /usr/local/docker/promethues/data
chmod -R 777 /usr/local/docker/promethues/config
chmod -R 777 /usr/local/docker/promethues/rules
chmod -R 777 /usr/local/docker/promethues/ClientAll
chmod -R 777 /usr/local/docker/promethues/server

 目标容器位置:

/etc/prometheus/prometheus.yml

使用代码编辑配置文件:

vim /usr/local/docker/promethues/server/prometheus.yml

书写如下配置: 

global:
  scrape_interval: 15s # 设置抓取间隔为每15秒。
  evaluation_interval: 15s # 每隔15秒评估规则。

rule_files:
  - /prometheus/rules/*.yml # 这里匹配指定目录下所有的.rules文件

scrape_configs:
  - job_name: "阿丹服务器" #使用配置来发现服务
    static_configs:
      - targets: ['ip:9090']
        labels:
          instance: prometheus
  - job_name: "服务发现"
    file_sd_configs:
      - files:
        - /prometheus/ClientAll/*.json # 用json格式文件方式发现服务,下面的是用yaml格式文件方式,都可以
        refresh_interval: 10m
      - files:
        - /prometheus/ClientAll/*.yaml # 用yaml格式文件方式发现服务
        refresh_interval: 10m

解释配置:

这个prometheus.yml文件是Prometheus的配置文件。它定义了Prometheus如何收集和存储监控数据,以及如何使用这些数据进行规则评估和告警。

让我们逐行解读这个文件:

  • global: scrape_interval: 60s: 这行设置了全局的抓取间隔(scrape interval)为60秒。这意味着Prometheus会每隔60秒从它所监控的目标(targets)中抓取数据。默认的抓取间隔是每分钟。
  • evaluation_interval: 60s: 这行设置了全局的规则评估间隔(evaluation interval)为60秒。这意味着Prometheus会每隔60秒评估(evaluate)它的规则(rules)。默认的评估间隔也是每分钟。
  • scrape_configs:: 这个字段表示包含抓取配置(scrape configurations)的列表。每个抓取配置定义了一个或多个要监控的目标以及如何从这些目标中抓取数据。
  • - job_name: prometheus: 这行开始一个新的抓取配置。这个配置的job_nameprometheus,表示它监控的是Prometheus服务器自身的数据。
  • static_configs:: 这个字段表示静态配置,它定义了要监控的目标和目标上的标签。
  • - targets: ['172.17.0.1:8892']: 这行定义了一个监控目标。在这个例子中,目标是一个运行在IP地址172.17.0.1和端口8892上的Prometheus服务器。
  • labels: instance: prometheus: 这行定义了一些标签(labels)。标签是附加在目标上的元数据,可以用于过滤和分组。在这个例子中,添加了一个instance标签,其值为prometheus

总的来说,这个配置文件设置了Prometheus从自身(IP地址为172.17.0.1,端口为8892)收集数据,并且每60秒收集一次数据,每60秒评估一次规则。

目前配置只是监控了自己:

如果想让Prometheus监控其他的服务器,您需要修改targets中的值。替换为要监控的服务的IP地址和端口号。

一个任务配置监控多个:

您可以配置多个监控目标,只需在同一个static_configs下添加多个targets即可。每个目标都需要使用相应的IP地址和端口号。例如:

scrape_configs:
 - job_name: 'prometheus'
   static_configs:
     - targets: ['target1_ip:port', 'target2_ip:port']

在上述示例中,target1_ip:porttarget2_ip:port是您要监控的服务的实际IP地址和端口号。您可以根据需要添加更多的目标。

请注意,如果需要监控的目标数量较多,可能需要使用不同的抓取配置方式,如使用动态配置(dynamic_configs)或配置文件自动加载(file_sd_configs)。这些方法可以从文件中读取目标配置,以便更方便地管理和维护大量的监控目标。

配置出多个任务对应监控(配置对应):

        如果想要监控多个目标,需要在scrape_configs中配置多个job_name

        对于每个要监控的目标,需要创建一个新的job_name,并在static_configs下配置相应的targetslabels

以下是一个示例配置文件,其中配置了两个监控目标:

global:
  scrape_interval: 60s
  evaluation_interval: 60s

scrape_configs:
  - job_name: prometheus1
    static_configs:
      - targets: ['ip:9090']
        labels:
          instance: prometheus1
  - job_name: prometheus2
    static_configs:
      - targets: ['ip2:9090']
        labels:
          instance: prometheus2

        在上述示例中,我们创建了两个不同的job_nameprometheus1prometheus2。对于每个job_name,我们配置了相应的目标(targets)和标签(labels)。

        可以根据需要添加更多的job_name来监控更多的目标。只需按照相同的模式为每个目标创建一个新的job_name并在static_configs下配置相应的目标即可。

五、运行prometheus

使用下面的代码,进行运行prometheus,注意自定义的

# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
 
 
docker run -itd --name prometheus -p 9090:9090 \
-v /usr/local/docker/promethues/server/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/docker/prometheus/data:/prometheus/data \
-v /usr/local/docker/prometheus/config:/prometheus/config \
-v /usr/local/docker/prometheus/rules:/prometheus/rules \
-v /usr/local/docker/prometheus/ClientAll:/prometheus/ClientAll \
prom/prometheus --web.enable-lifecycle

使用ip+9090访问 

访问成功! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/850602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode每日一题】——219.存在重复元素II

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 简单 三【题目编号】 219.存在重复元素II 四【题目描述】 给你一个…

[考研机试] KY20 完数VS盈数 清华大学复试上机题 C++实现

描述 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6321。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述: 题目没有任何输入。 输出描述&#…

体验自制免费开源闯关学SQL

文章目录 前言mac安装nodejs启动体验 前言 sql是常用必不可少的一种语言,我们都或有各种各样的学习经历,最近看鱼皮大佬开源了一款自制的闯关学SQL项目,该项目是纯前端语言,不需要太多依赖以及前置知识,直接下载就可以…

flutter开发实战-video_player视频播放功能及视频缓存

flutter开发实战-video_player视频播放功能及视频缓存 最近开发过程中video_player播放视频, 一、引入video_player 在pubspec.yaml引入video_player video_player: ^2.7.0在iOS上,video_player使用的是AVPlayer进行播放。 在Android上,…

python中文官网下载安装,python官方中文文档下载

大家好,小编来为大家解答以下问题,python官网下载步骤图解,python官方中文文档下载,现在让我们一起来看看吧! python官网网址 python官方网站 python官网网址中文。像我们想要抓住一门好的编程语言,如何开始…

Yolov5缺陷检测/目标检测 Jetson nx部署Triton server

使用AI目标检测进行缺陷检测时,部署到Jetson上即小巧算力还高,将训练好的模型转为tensorRT再部署到Jetson 上供http或GRPC调用。1 Jetson nx 刷机 找个ubuntu 系统NVIDIA官网下载安装Jetson 的sdkmanager一步步刷机即可。 本文刷的是JetPack 5.1, 其中包…

PS透明屏,在科技展示中,有哪些优点展示?

PS透明屏是一种新型的显示技术,它将传统的显示屏幕与透明材料相结合,使得屏幕能够同时显示图像和透过屏幕看到背后的物体。 这种技术在商业展示、广告宣传、产品展示等领域有着广泛的应用前景。 PS透明屏的工作原理是利用透明材料的特性,通…

(树) 剑指 Offer 36. 二叉搜索树与双向链表 ——【Leetcode每日一题】

❓ 剑指 Offer 36. 二叉搜索树与双向链表 难度:中等 输入一棵二叉搜索树,将该二叉搜索树转换成一个 排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为…

python+vue生成条形码码并展示

需求 最近想做一个小工具,大概要实现这样的效果:后端生成条形码后,不保存到服务器,直接返回给前端展示。 大概思路是,通过 python-barcode库 生成条码的字节流,生成字节流后直接编码成base64格式返回给前…

关于Vue构建低代码平台的思考

一、前言 在项目实战开发中,尤其是大平台系统的搭建,针对不同业务场景,需要为用户多次编写用于录入、修改、展示操作的相应表单页面。一旦表单需求过多,对于开发人员来说,算是一种重复开发,甚至是繁杂的工作…

国产语音芯片里面可重复擦写语音芯片有哪些?可以在线烧写语音

目录 详细测试 主要是做一个测试板,对KT148A一线通讯的芯片进行测试和验证,实现的功能有两点。 2.1 第一步--硬件环境的搭建 2.2 第二步--自己更换声音的测试 三、总结 简介 基本目前的语音芯片,尤其是SOP8的封装类型的芯片,都绕…

网络安全---正则回溯

目录 一、题目引入 二、举出回溯例子进行分析 第一步: 正则往前匹配 第二步:匹配到头 第三步:往回匹配 第四步:直到分号结束 (匹配上) 原因: 三、进入正题一(分析题型&#x…

【MOOC】北京理工大学Python网络爬虫与信息提取慕课答案-综合挑出了一些很难评的慕课测验题

1 Requests库中的get()方法最常用,下面哪个说法正确?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬…

解决 Android Studio 的 Gradle 面板上只有关于测试的 task 的问题

文章目录 问题描述解决办法 笔者出问题时的运行环境: Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 17 问题描述 笔者最近发现一个奇怪的事情。笔者的 Android Studio 的 Gradle 面板上居然除了用于测试的 task 之外,其它什…

【架构设计】如何设计一个高性能短链系统

一、前言 所谓系统设计,就是给一个场景,让你给出对应的架构设计,需要考虑哪些问题,采用什么方案解决。很多面试官喜欢出这么一道题来考验你的知识广度和逻辑思考能力。 虽然各个系统千差万别,但是设计思想基本一致&a…

sql刷题

文章目录 section A1 各部门工资最高的员工(难度:中等)2 换座位(难度:中等)3 分数排名(难度:中等)4 连续出现的数字(难度:中等)5 树节…

leetcode每日一练-第70题-爬楼梯

一、思路 动态规划 二、解题方法 使用一个动态规划数组 dp 来记录到达每个台阶的不同方法数。初始情况下,当台阶数为 1 时,方法数为 1,当台阶数为 2 时,方法数为 2。然后,我们从第 3 阶开始逐步计算每一阶的方法数&…

剑指Offer12.矩阵中的路径 C++

1、题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平…

vue去掉所有输入框两边空格,封装指令去空格,支持Vue2和Vue3,ElementUI Input去空格

需求背景 就是页面很多表单输入框,期望在提交的时候,都要把用户两边的空格去掉 ❌使用 vue 的指令 .trim 去掉空格 中间会输入不了空格, 比如我想输入 你好啊 中国, 这中间的空格输入不了,只能变成 你好啊中国 ❌在提交的时候使用…

[HDLBits] Exams/m2014 q4i

Implement the following circuit: module top_module (output out);assign out1b0; endmodule