Prometheus之图形化界面grafana与服务发现

news2024/11/24 19:12:02

前言

上一篇文章中我们介绍了Prometheus的组件,监控作用,部署方式,以及如何通过在客户机安装exporter再添加监控项的操作。
        但是不免会发现原生的Prometheus的图像化界面对于监控数据并不能其他很好的展示效果。所以本次我们将介绍一款开源非常适用于Prometheus的图形化软件grafana 。

        除此之外,上面的exporter监控项都是通过手动添加,这样效率慢而且需要中止Prometheus的工作进程,所以本次我们将介绍几种让Prometheus自动完成服务发现的方法

一、部署 Grafana 进行展示

 1.1 grafana的下载与安装

(1)下载和安装

下载地址:https://grafana.com/grafana/download
          https://mirrors.bfsu.edu.cn/grafana/yum/rpm/

yum install -y grafana-7.4.0-1.x86_64.rpm
#注意,直接yum安装没有这个包 需要先到浏览器下载grafana-7.4.0-1.x86_64.rpm,再linux中安装
该包放在哪就在那个目录yum安装。

systemctl enable --now grafana-server

netstat -natp | grep :3000

浏览器访问:http://192.168.80.15:3000 ,默认账号和密码为 admin/admin

(2)配置数据源

Configuration -> Data Sources -> Add data source -> 选择 Prometheus
HTTP -> URL 输入 http://192.168.10.80:9090
点击 Save & Test

点击 上方菜单 Dashboards,Import 所有默认模板
Dashboards -> Manage ,选择 Prometheus 2.0 Stats 或 Prometheus Stats 即可看到 Prometheus job 实例的监控图像

(3)导入 grafana 监控面板

浏览器访问:https://grafana.com/grafana/dashboards ,在页面中搜索 node exporter ,选择适合的面板,点击 Copy ID 或者 Download JSON

在 grafana 页面中,+ Create -> Import ,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板

可以使用 12633 ,这个是中文页面的监控面板 

(4)删除模板操作

1.2 grafana的 中文插件安装

二、部署 Prometheus 服务发现

2.1 基于文件的服务发现

        基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式。
        Prometheus Server 会定期从文件中加载 Target 信息,文件可使用 YAML 和 JSON 格式,它含有定义的 Target 列表,以及可选的标签信息。

实验前准备

将就手动添加的监控项清除。

(1)创建用于服务发现的文件,在文件中配置所需的 target 
cd /usr/local/prometheus
mkdir targets

vim targets/node-exporter.yaml
- targets:
  - 192.168.80.7:9100
  - 192.168.80.11:9100
#  - 192.168.80.12:9100
#这里我们注释是为了演示添加节点的操作。
  labels:
    app: node-exporter
    job: kubernetes


vim targets/mysqld-exporter.yaml
- targets:
  - 192.168.80.16:9104
  labels:
    app: mysqld-exporter
    job: mysqld

#修改 prometheus 配置文件,发现 target 的配置,定义在配置文件的 job 之中
vim /usr/local/prometheus/prometheus.yml
......
scrape_configs:
  - job_name: kubernetes
    file_sd_configs:                  #指定使用文件服务发现
    - files:                          #指定要加载的文件列表
      - targets/node*.yaml            #文件加载支持通配符
      refresh_interval: 2m            #每隔 2 分钟重新加载一次文件中定义的 Targets,默认为 5m
  
  - job_name: mysqld
    file_sd_configs:
    - files:
      - targets/mysqld*.yaml
      refresh_interval: 2m

curl -X POST http://192.168.80.15:9090/-/reload
# systemctl reload prometheus
浏览器查看 Prometheus 页面的 Status -> Targets

我们在载入的文件中添加新的node节点监控 

vim targets/node-exporter.yaml

2.2 基于 Consul 的服务发现

        Consul 是一款基于 golang 开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。
       提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。

下载地址:Install | Consul | HashiCorp Developer 

(1)部署 Consul 服务
mkdir -p /opt/prometheus/consul
cd /opt/prometheus/consul
unzip consul_1.9.2_linux_amd64.zip
mv consul /usr/local/bin/
 
#创建 Consul 服务的数据目录和配置目录
mkdir /var/lib/consul-data
mkdir /etc/consul/
 
#使用 server 模式启动 Consul 服务
consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-config-dir=/etc/consul/ \
-bind=192.168.80.15 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &
 
#查看 consul 集群成员
consul members

(2)在 Consul 上注册 Services
#在配置目录中添加文件
vim /etc/consul/nodes.json
{
  "services": [
    {
      "id": "node_exporter-node01",
      "name": "node01",
      "address": "192.168.80.11",
      "port": 9100,
      "tags": ["nodes"],
      "checks": [{
        "http": "http://192.168.80.11:9100/metrics",
        "interval": "5s"
      }]
    },
    {
      "id": "node_exporter-node02",
      "name": "node02",
      "address": "192.168.80.12",
      "port": 9100,
      "tags": ["nodes"],
      "checks": [{
        "http": "http://192.168.80.12:9100/metrics",
        "interval": "5s"
      }]
    }
  ]
}

#让 consul 重新加载配置信息
consul reload

浏览器访问:http://192.168.80.15:8500

(3)修改 prometheus 配置文件,让Prometheus基于consul进行服务发现
vim /usr/local/prometheus/prometheus.yml
......
  - job_name: kubernetes
    consul_sd_configs:                  #指定使用 consul 服务发现
    - server: 192.168.80.15:8500        #指定 consul 服务的端点列表
      tags:                             #指定 consul 服务发现的 services 中哪些 service 能够加入到 prometheus 监控的标签
      - nodes
      refresh_interval: 2m
 

curl -X POST http://192.168.80.15:9090/-/reload
# systemctl reload prometheus
浏览器查看 Prometheus 页面的 Status -> Targets

添加consul节点

在consul中添加master01节点,从而改变Prometheus的监控节点

vim /etc/consul/nodes.json
######## 向consul中新添加的master节点 ##################
.......
        "http": "http://192.168.80.12:9100/metrics",
        "interval": "5s"
      }]
    },
    {
      "id": "node_exporter-master01",
      "name": "master01",
      "address": "192.168.80.7",
      "port": 9100,
      "tags": ["nodes"],
      "checks": [{
        "http": "http://192.168.80.7:9100/metrics",
        "interval": "5s"
      }]
    }
  ]
}



#让 consul 重新加载配置信息
consul reload

最长等待两分钟,就会发现新的master节点加入到Prometheus的监控中 

consul注销与重新注册service

#让 consul 注销 Service
consul services deregister -id="node_exporter-node02"
 
#重新注册
consul services register /etc/consul/nodes.json

2.3  基于 Kubernetes API 的服务发现

官网:https://prometheus.io/docs/prometheus/2.42/configuration/configuration/
        基于 Kubernetes API 的服务发现机制,支持将API Server 中 Node、Service、Endpoint、Pod 和 Ingress 等资源类型下相应的各资源对象视作 target, 并持续监视相关资源的变动

●Node、Service、Endpoint、Pod 和 Ingress 资源分别由各自的发现机制进行定义

●负责发现每种类型资源对象的组件,在 Prometheus 中称为一个 role

●支持在集群上基于 DaemonSet 控制器部署 node-exporter 后发现各 Node 节点,也可以通过 kubelet 来作为 Prometheus 发现各 Node 节点的入口

#基于 Kubernetes 发现机制的部分配置参数
# The API server addresses. If left empty, Prometheus is assumed to run inside 
# of the cluster and will discover API servers automatically
and use the pod's
# CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
[ api_server: <host> ]

# The Kubernetes role of entities that should be discovered. One of endpoints, service, pod, node, or ingress.
role: <string>

# Optional authentication information used to authenticate to the API server.
# Note that 'basic_auth', 'bearer_token'和'bearer_token_file' 等认证方式互斥;
[ bearer_token: <secret> ]
[ bearer_token_file: <filename> ]

# TLS configuration.
tls_config:
# CA certificate to validate API server certificate with.
[ ca_file: <filename> ]

# Certificate and key files for client cert authentication to the server.
[ cert_file: <filename> ]
[ key_file: <filename> ]

# ServerName extension to indicate the name of the server.
[ server_name: <string> ]

# Optional namespace discovery. If omitted, all namespaces are used.
namespaces:
names:
[ - <string> ]

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

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

相关文章

RabbitMQ实践——利用随机交换器做负载均衡

大纲 启用Random Exchange创建Exchange绑定队列测试 在《RabbitMQ实践——利用一致性Hash交换器做负载均衡》中&#xff0c;我们使用了Consistent Hash Exchange实践了消息路由的负载均衡。本文我们将使用一种更简单的交换器来实现该功能&#xff0c;这就是“随机交换器”&…

图书馆图书可视化分析+大屏

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 目录 摘要前言技术栈开发环境数据说明 正文数据获取数据存储数据清理数据分析数据挖掘关联规则二分类预测 数据可视化书籍价格区间柱状图书籍评…

Python求子数组和的所有元素(附Demo)

目录 前言1. 暴力求解2. 前缀和哈希表3. 滑动窗口 前言 工作需要&#xff0c;对应需要优化查找子数组和等于特定值的算法 对应的算法推荐&#xff1a;子数组相关题目 以下算法主要针对Python 1. 暴力求解 双重循环时间复杂度为 O(n2) def subarrays_with_sum_equal_k(num…

项目干系人管理

目录 1.概述 2.四个子过程 2.1. 识别干系人&#xff08;Identify Stakeholders&#xff09; 2.2. 规划干系人参与&#xff08;Plan Stakeholder Engagement&#xff09; 2.3. 管理干系人参与&#xff08;Manage Stakeholder Engagement&#xff09; 2.4. 监督干系人参与&…

探究肥胖致血糖异常的原因与运动的意义

肥胖对身体血糖存在影响&#xff0c;原因主要在于以下两方面。 首先&#xff0c;肥胖者体内的脂肪组织大量积聚&#xff0c;会释放诸多有害物&#xff0c;对胰岛素的正常功能形成干扰&#xff0c;致使胰岛素抵抗加剧&#xff0c;从而造成血糖调节失常。 其次&#xff0c;肥胖往…

路由器虚拟服务器有什么作用

现如今在IPv4时代&#xff0c;由于公网IP地址的匮乏&#xff0c;约有70%的电脑都处于内网中&#xff0c;上网需要通过路由器。如果反过来想要访问身处内网的电脑&#xff0c;我们就需要在路由器里开放相应的端口才能实现。而这开放端口的功能&#xff0c;在路由器里就叫做虚拟服…

15.docker-compose(单机版的容器编排工具)

docker-compose(单机版的容器编排工具) 类似ansible剧本 安装docker-compose编排工具 yum install -y docker-compose #&#xff08;需要epel源&#xff09;##docker-compose配置文件详细指令详解&#xff0c;参考如下链接 http://www.jianshu.com/p/2217cfed29d7 上传两个d…

17.Meta AI 大模型家族 LLaMA

Meta LLaMA 1 大模型技术解读 LLaMA 1&#xff1a;小模型大数据 LLaMA 1 在万亿 Token 公开数据集上预训练 LLaMA 1 模型网络架构改进 大模型网络架构差异性配置总览 典型大模型网络架构对比 LLaMA 1 预训练超参数配置 典型大模型训练超参数对比 LLaMA 1 预训练效率提升与成本…

Linux shell 重定向输入和输出

Linux shell 重定向输入和输出 1. Standard I/O streams2. Redirecting to and from the standard file handles (标准文件句柄的重定向)2.1. command > file2.2. command >> file2.3. command 2> file2.4. command 2>> file2.5. command < file2.6. comm…

JavaFX GridPane布局

网格布局 GridPane通常用于布局&#xff1a;表单布局 GridPane可以在行&#xff0c;列或单元格级别指定约束。 例如&#xff0c;我们可以设置包含输入文本字段的第二列&#xff0c;以在窗口调整大小时调整大小。 使用Java FX创建表格的时候&#xff0c;这个布局非常方便。 包…

39、基于深度学习的(拼音)字符识别(matlab)

1、原理及流程 深度学习中常用的字符识别方法包括卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;。 数据准备&#xff1a;首先需要准备包含字符的数据集&#xff0c;通常是手写字符、印刷字符或者印刷字体数据集。 数据预处理&#xff1…

AI大模型-本科生24暑期实习NLP(Infra LLM)算法工程师面经

Brief Intro 今年暑假&#xff0c;在科研和工业界之间&#xff0c;我选择在国内工业界找一份实习&#xff0c;参与到百模大战的浪潮中&#xff0c;主要的意向是知名的LLM领域的独角兽&#xff0c;期望能避免做Dirty Work&#xff0c;在实习过程中也能被重视&#xff0c;做一些…

AI数据分析:集中度分析和离散度分析

在deepseek中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个Python脚本编写的任务&#xff0c;具体步骤如下&#xff1a; 读取Excel表格&#xff1a;"F:\AI自媒体内容\AI行业数据分析\toolify月榜\toolify2023年-2024年月排行榜汇总数据.xlsx&qu…

浙江广厦大学第七届程序设计比赛(重现赛)(个人题解)(未完成)

前言&#xff1a; 今天晚上实验室的一场比赛&#xff0c;题目难度感觉还行&#xff0c;有几道题大家都没做出来&#xff0c;老规矩&#xff0c;这些没写出来的题都放在这&#xff0c;等我有能力补的时候再来写。 正文&#xff1a; 原比赛链接&#xff1a;(1条未读私信) 浙江广…

NASA数据:南极海洋生物资源

Antarctic Marine Living Resources (AMLR) program 南极海洋生物资源许可证 南极海洋生物资源保护委员会公约区受到管制。任何打算从该区域捕获海洋生物的人都必须获得许可证。 简介 美国是南极海洋生物资源保护委员会&#xff08;Commission for the Conservation of Anta…

热管式换热器

热管式换热器是一种高效、紧凑的换热设备&#xff0c;其核心部件是热管。热管技术基于热管内部工作介质&#xff08;通常是液体&#xff09;的相变原理来传递热量&#xff0c;能够实现快速、大温差的热量传输&#xff0c;特别适用于需要高效换热或者在空间受限条件下进行热能交…

【APP_汽修宝】数据采集案例APP_数据解密分析

如果不会写代码&#xff0c;那就出书、写博客、做视频、录播客。 &#x1f4da; S35赛季末王者昭君罗 关键代码定位 使用方法【逆向-快速定位关键代码】通过hook常用函数HashMap方法 动态分析 下面是我们通过访问目标页面时 Frida hook 捕获HashMap的调…

Linux之BCC 性能工具的移植和使用

一、bcc 工具 bcc 的全称&#xff1a;BPF Compiler Collection BCC&#xff08;BPF Compiler Collection&#xff09;是一个用于创建高效的内核跟踪和操作程序的工具包&#xff0c;包含了几个有用的工具和示例。它利用了扩展的BPF&#xff08;Berkeley Packet Filters&#x…

【C/C++】【学生成绩管理系统】深度剖析

可接各类C/C管理系统课设 目录 实现功能 部分1&#xff1a;系统设置和主菜单 1. 引入头文件 2. 定义结构体 3. 函数声明 4. 主函数 部分2&#xff1a;添加学生信息 部分3&#xff1a;删除学生信息 部分4&#xff1a;修改学生信息 部分5&#xff1a;查询学生信息 部分…

大众点评_token,mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可禁止转载&#xff0…