Prometheus系列(二)Grafana可视化部署

news/2024/5/18 22:21:48 标签: prometheus, grafana, 服务器

概念

Grafana 是一个监控仪表系统,它是由 Grafana Labs 公司开源的的一个系统监测工具,它可以大大帮助我们简化监控的复杂度,我们只需要提供需要监控的数据,它就可以帮助生成各种可视化仪表,同时它还有报警功能,可以在系统出现问题时发出通知。

Grafana 支持许多不同的数据源,每个数据源都有一个特定的查询编辑器,每个数据源的查询语言和能力都是不同的,我们可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源。目前官方支持以下数据源:

Alertmanager
AWS CloudWatch
Azure Monitor
Elasticsearch
Google Cloud Monitoring
Graphite
InfluxDB
Loki
Microsoft SQL Server (MSSQL)
MySQL
OpenTSDB
PostgreSQL
Prometheus
Jaeger
Zipkin
Tempo

我们这里当然重点需要介绍的就是 Prometheus 这个数据源了。

监控系统组成

1. Granfana

从数据源中查询数据,并将查询到的数据进行可视化展示。

2. Prometheus

Prometheus是一个时间序列数据库。但是,它不仅仅是一个时间序列数据库。它涵盖了可以绑定的整个生态系统工具集及其功能。Prometheus主要用于对基础设施的监控,包括服务器(CPU、MEM等)、数据库(MYSQL、PostgreSQL等)、Web服务等,几乎所有东西都可以通过Prometheus进行监控。而它的数据,则是通过配置,建立与数据源的联系来获取的。

虽然Grafana可以从多种数据(如Prometheus、MySQL/PostgreSQL、OpenTSDB)等等中获取数据,不过Prometheus天生就是为了监控而生,所以我们用的最多的还是Prometheus。这也是我们的标配哦~

3. 数据源

在Prometheus的架构设计中,Prometheus并不直接服务监控特定的目标,就比如我们监控linux系统,Prometheus不会自己亲自去监控linux的各项指标。其主要任务负责数据的收集,存储并且对外提供数据查询支持。

因此为了能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Exporter是一个相对开放的概念,不是专门指某一个程序。它可以是一个独立运行的程序,独立于监控目标以外(如Node Exporter程序,独立于操作系统,却能获取到系统各类指标)。也可以是直接内置在监控目标中的代码(如在项目代码层面接入普罗米修斯API,实现指标上报)。总结下来就是,只要能够向Prometheus提供标准格式的监控样本数据,那就是一个Exporter。

而Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。

对于大家常见的监控主机运行的指标如CPU, 内存,磁盘等信息,我们可以为linux系统下载Node Exporter程序,该程序会监控linux各项指标,并通过:http://:9100/metrics来展示各项指标。而其给我们返回的内容如下图所示:
在这里插入图片描述

上图是访问Node Exporter暴露的HTTP服务,获取到了一系列的监控指标。而这些监控指标便是Prometheus可以采集到当前主机所有监控指标的样本数据:

## 含义:
图中以#开头相当于注释,我们不用太关注。

图中以非#开头的每一行则表示当前Node Exporter采集到的一个监控样本。

对于图中可见的node_cooling_device_max_state和node_cpu_guest_seconds_total,代表了当前监控样本的名称。

紧跟指标后大括号中的键值对中的键被称为标签,它与键值对的值共同组成筛选条件,相当于Mysql里的Where后面的内容。键值对整体反映了当前样本的一些特征和维度。

而右大括号后的值则是该监控样本监控下的具体值。  

4. 工作原理

现在我们有了以下3个部分:

Exporter 监控工具,获取数据
Prometheus 普罗米修斯时序数据库,用来存储和查询你的监控数据
Grafana 仪表盘

在这里插入图片描述

安装

1. 下载安装包

>官网地址:https://grafana.com
>官方文档:https://grafana.com/docs/grafana/next/

>二进制包下载:
[root@localserver /root]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.2.5.linux-amd64.tar.gz
[root@localserver /root]# tar xf grafana-enterprise-9.2.5.linux-amd64.tar.gz
[root@localserver /root]# mv grafana-enterprise-9.2.5 /usr/local/grafana-9.2.4
[root@localserver /root]# cd /usr/local/grafana-9.2.4/bin
[root@localserver /usr/local/grafana-9.2.4/bin]# nphup ./grafana-server web > ./grafana.log >2&1 &

2. 浏览器登录

浏览器输入:http://192.168.178.150:3000/login

## 首次登录用户名吗、密码默认都是admin/admin
## 当然也可以在配置文件 /usr/local/grafana-9.2.4/conf/defaults.ini 中配置 admin_user 和 admin_password 两个参数来进行覆盖。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7d98c7845a8f4420b2573a1868e9ef4c.png)

在这里插入图片描述

首次登录界面:

在这里插入图片描述输入admin/admin会提示设置新密码,按照指引设置即可
在这里插入图片描述
之后,正常进入 grafana 界面:
在这里插入图片描述

3. 设置数据源

Grafana 并不负责采集数据,只是它可以将采集来的数据通过查询进行可视化展示。
那么这个数据从何而来呢?答案就是 datasources,在可视化界面中,可以在设置中进行设置数据源,也就是后续的指标查询展示都是从这个数据源获取。
在这里插入图片描述数据来源选择 Prometheus,之后设置 http url,填写部署 Prometheus 的链接即可,之后保存。
在这里插入图片描述在 HTTP 项中配置 URL 地址默认为 http://localhost:9090,其实就是 Prometheus 的地址,由于我们这里 Grafana 和 Prometheus 都在同一个节点上,所以用 localhost 即可访问,当然用 IP 也可以,配置完成后,拉到最下方点击 Save & test,提示添加成功即表面数据源添加成功了。然后在数据源列表中就会出现我们刚刚添加的 Prometheus 这个数据源了:

在这里插入图片描述
如果想要添加其他支持的数据源则也可用同样的方式进行添加。

4. 配置面板

数据源已经配置了,那么如何才可以看到监控面板呢?
Grafana 官网有提供很多现成的 dashboard,可以直接下载使用:
地址:https://grafana.com/grafana/dashboards/

这里我们下载一个 node-exporter 来使用:
https://grafana.com/grafana/dashboards/15172-node-exporter-for-prometheus-dashboard-based-on-11074/

官网的 dashboard 就需要采用导入的方式:
在这里插入图片描述
在这里插入图片描述
导入成功,效果图如下:
在这里插入图片描述


http://www.niftyadmin.cn/n/10220.html

相关文章

Python基础语法入门

14天学习训练营导师课程: 李宁《Python Pygame游戏开发入门与实战》 李宁《计算机视觉OpenCV Python项目实战》1 李宁《计算机视觉OpenCV Python项目实战》2 李宁《计算机视觉OpenCV Python项目实战》3 上一节课,我们了解了基础环境如何配置&#xff0c…

MySQL JDBC编程

✏️作者:银河罐头 📋系列专栏:MySQL 🌲“种一棵树最好的时间是十年前,其次是现在” 文章目录前置知识APIJDBC的使用安装数据库代码插入操作查找操作前置知识 API API(Application Program Interface)被定义为应用程…

Himall商城字符串帮助类分割、截取字符串

/// <summary> /// 获得字符串的长度,一个汉字的长度为1 /// </summary> public static int GetStringLength(string s) { if (!string.IsNullOrEmpty(s)) return Encoding.Default.GetBytes(s).Lengt…

Redis

目录 1、NoSQL数据库简介 1.1NoSQL数据库 1.1.1NoSQL数据库概述 1.1.2NoSQL不适用场景 1.1.3NoSQL适用场景 1.1.4Memcache 1.1.5Redis 1.1.6MongoDB 1.2行式存储数据库&#xff08;大数据时代&#xff09; 1.2.1行式数据库 1.2.2列式数据库 2、Redis6概述和安装 2.1应…

表单标签。。

一、任务目标 掌握表单标签及其属性的使用 二、任务背景 HTML表单用于收集用户输入。表单元素指的是不同类型的 input 元素、复选框、单选按钮、提交按钮等。 三、任务内容 1、<form></form>标签 用于创建HTML表单&#xff0c;常用属性如下&#xff1a; action&…

bat脚本启动Java服务

bat脚本启动Java服务1.终端cmd窗口运行jar2. bat脚本启动jar包3.后台启动bat脚本4. 运行bat只启动一次jar服务及停止脚本5.注意事项6.所用资源1.终端cmd窗口运行jar Java项目一般会被打包成jar后启动&#xff0c;在windows系统中可以通过终端窗口cmd启动jar包&#xff0c;即在…

C语言小游戏之扫雷(万字详解)

hello&#xff0c;大家好&#xff0c;今天我们继续为大家带来一个小游戏&#xff0c;扫雷。相信这个游戏又是很多人的童年&#xff0c;那么我们今天就来实现一下这个扫雷游戏。 目录 一、游戏简介 二、游戏的基本设计 1.游戏基本思路 2.游戏基本框架 3.如何设计布置雷与排查…

家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?

前言 其实这个专题很久很久之前就想写了&#xff0c;但是一直因为各种原因拖着没动笔。 因为没有资格&#xff0c;也没有钱在一线城市买房 (&#x1f602;&#x1f602;&#x1f602;); 但是在要结婚之前&#xff0c;婚房又是刚需。 我和太太最终一起在一线城市周边的某二线城…