Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取、存储和可视化展示
Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取、存储和可视化展示
- 1. 前言
- 2. Node_exporter
- 2.1 安装 node_exporter
- 2.2 运行 node_exporter
- 3. Prometheus
- 3.1 安装Prometheus
- 3.2 运行Prometheus
- 3.3 配置 prometheus 的监控数据源为 node_exporter
- 3.4 Prometheus UI 查看监控数据
- 4. Grafana
- 4.1 安装 Grafana
- 4.2 运行 Grafana
- 4.3 配置数据源
- 4.4 配置面板
- 5. 总结
1. 前言
本文将通过Node_exporter+Prometheus+Grafana三者结合,快速提取Linux内核数据,数据包括但不限于CPU、内存、磁盘、网络IO等,并进行可视化展示。当然,这一套对于分布式也同样适用。
2. Node_exporter
Node_exporter 是 prometheus 提供的一个可以采集到主机信息的应用程序,它能采集到系统的 CPU、内存、网络、磁盘等信息。
2.1 安装 node_exporter
cd ~ && mkdir npg && cd npg
wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz
不同系统或其它安装方法请参考:https://prometheus.io/download/
2.2 运行 node_exporter
解压后运行 node_exporter,可以使用 8080 端口运行:
cd node_exporter-1.1.2.linux-amd64
./node_exporter --web.listen-address 127.0.0.1:8080
启动成功后,可以看到如下输出:
在浏览器访问 http://localhost:8080/
可以看到以下页面:
在浏览器访问 http://localhost:8080/metrics
,可以看到当前 node_exporter
获取到的当前主机的所有监控数据,如下所示:
每一个指标都会有 HELP 和 TYPE,其中 HELP 用于解释当前指标的含义,TYPE 则说明当前指标的数据类型。
了解想详细的内容,可以访问:
https://github.com/prometheus/node_exporter
3. Prometheus
Prometheus 是一个数据监控解决方案,能简单快速地搭建起一套可视化的监控系统。Prometheus的基本架构如下图所示:
3.1 安装Prometheus
Prometheus Server 负责数据的采集,首先安装 Prometheus Server ,针对Ubuntu,可使用以下命令来安装:
cd ~/npg
wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
tar -zxvf prometheus-2.26.0.linux-amd64.tar.gz
不同系统或其它安装方法请参考:https://prometheus.io/download/
3.2 运行Prometheus
解压后可以看到如下目录:
其中:
- data 目录是数据的存储路径,也可以通过运行时的 --storage.tsdb.path=“data/” 命令另行指定;
- prometheus.yml 是 Prometheus的配置文件;
- prometheus 是运行的命令。
启动prometheus,会默认加载当前路径下的prometheus.yaml文件,也可以手动指定配置文件地址:
./prometheus --config.file=prometheus.yml
启动 prometheus 后,正常情况下会输出以下内容:
在浏览器输入访问地址:http://localhost:9090/graph
可以看到Prometheus 自带的监控管理界面:
3.3 配置 prometheus 的监控数据源为 node_exporter
配置 prometheus 的配置 prometheus.yml
文件,使 prometheus 服务器定时去业务数据源拉取数据。编辑prometheus.yml
并在 scrape_configs
节点下添加以下内容:
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']# 采集node exporter监控数据- job_name: 'node'static_configs:- targets: ['localhost:8080']
上面配置文件配置了两个任务,一个是名为 prometheus 的任务,其从localhost:9090
地址读取数据,另一个是名为 node 的任务,其从localhost:8080
地址读取数据。配置完成后,重新启动 prometheus。
./prometheus --config.file=prometheus.yml
配置完 prometheus 读取的数据源之后,prometheus 便可以从 Node Exporter 获取到数据了。
3.4 Prometheus UI 查看监控数据
Prometheus UI 是 Prometheus 内置的一个可视化管理界面,通过浏览器访问地址 http://localhost:9090
就可以访问到该页面。
通过 Prometheus UI 可以查询 Prometheus 收集到的数据,而 Prometheus 定义了 PromQL 语言来作为查询监控数据的语言。
在浏览器访问 http://localhost:9090
,进入到 Prometheus Server。输入 up 并且点击执行按钮以后,可以看到如下结果:
可以看到有两个名为 node 和 prometheus 的 job ,其后面的 value 为 1,代表他们是激活状态。
如果想查看 NodeExporter 节点所在机器 CPU 1 分钟的负载情况,可以输入 node_load1
查看:
Prometheus UI 提供了快速验证 PromQL 以及临时可视化支持的能力,但其可视化能力却比较弱。我们可以用 Grafana 来实现 Prometheus 的可视化。
4. Grafana
Grafana 是一个用来展示各种各样数据的开源软件,只需要在 Grafana 上配置一个 Prometheus 的数据源,然后配置各种图表,Grafana 就会自动去 Prometheus 拉取数据进行展示。
4.1 安装 Grafana
可使用以下命令来安装 Grafana:
cd ~/npg
wget https://dl.grafana.com/oss/release/grafana-7.5.2.linux-amd64.tar.gz
tar -zxvf grafana-7.5.2.linux-amd64.tar.gz
不同系统或其它安装方法请参考:https://grafana.com/grafana/download
4.2 运行 Grafana
解压后使用以下命令来启动 Grafana:
cd grafana-7.5.2.linux-amd64
./grafana-server web
正常启动会输出如下信息:
Grafana 默认使用 3000 端口启动,浏览器访问:http://localhost:3000
查看对应页面:
默认的账号:admin,密码: admin,登录后显示如下页面:
4.3 配置数据源
设置菜单添加 Prometheus 数据源:
添加一个名为 Prometheus 的数据源,数据获取地址为:http://localhost:9090
。
4.4 配置面板
Grafana 中有 Dashboard 和 Panel 的概念,Dashboard 可以理解成看板,Panel 可以理解成图表,一个看板中包含了无数个图表。下面创建一个图表来显示系统 1 分钟平均负载。
点击右上角Apply,数据可视化结果如下:
可以展示的图表样式有:
详细使用方法可以参考:https://grafana.com/docs/?pg=community&plcmt=topnav
5. 总结
本文主要通过Node_exporter+Prometheus+Grafana三者结合,介绍了快速提取Linux内核数据,并进行可视化展示。随着eBPF技术的发展,其应用场景也越来越多,本文目前使用传统工具对内核数据进行提取和展示,接下来将基于eBPF技术,结合Prometheus和Grafana进行数据提取,存储和展示,同样也可以应用于分布式场景。
参考资料:
https://shuyi.tech/archives/00-why-learn-prometheus
https://prometheus.io/
https://grafana.com/
https://github.com/prometheus/node_exporter
Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取、存储和可视化展示相关推荐
- prometheus+grafana简介与linux下的安装
1.简介 prometheus+grafana为一份监控平台的解决方案.其中可以监控linux服务器,nginx,rabbitmq,springboot项目等,功能非常强大. prometheus负责 ...
- Linux之数据提取操作
数据提取操作 1.操作命令(都可以结合pipe使用) 1.cut:切分操作(可以切分出一整列) 2.grep:检索(可以使用正则表达式) 3.sort:排序(可以对整列排序) 4.wc:统计字符.字数 ...
- Python抓取电商平台数据 / 采集商品评论 / 可视化展示 词云图...
前言 大家早好.午好.晚好吖 ❤ ~ 我给大家准备了一些资料,包括: 2022最新Python视频教程.Python电子书10个G (涵盖基础.爬虫.数据分析.web开发.机器学习.人工智能.面试题) ...
- Prometheus和Grafana的监控Linux服务器和MYSQL数据库
[使用root用户执行以下操作] 目录 一.安装Prometheus和Grafana 1.安装 Prometheus 1)下载 Prometheus 2)解压安装包 3)启动prometheus 4) ...
- Grafana Prometheus 服务安装部署(Linux服务器监控)
文章目录 一.概述 二.安装Prometheus 1.安装node_exporter 2.安装Prometheus 三.安装Grafana展示监控 监控进程 一.概述 Prometheus 介绍 Pr ...
- Linux安装prometheus+grafana监控
一.在业务中遇到服务器负载过高问题,由于没有监控,一直没发现,直到业务方反馈网站打开速度慢,才发现问题.这样显得开发很被动.所以是时候搭建一套监控系统了. 由于是业余时间自己捯饬,所以神马业务层面的监 ...
- Prometheus+Grafana安装配置并配置linux服务器监控dashboard
一.简介: prometheus是谷歌用golang语言开发的一款开源的监控软件,使用安装在远程机器上的exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上. Promet ...
- 视频教程-Prometheus+Grafana搭建全方位的监控告警系统-Linux
Prometheus+Grafana搭建全方位的监控告警系统 高级运维工程师.资深DevOps工程师,精通kubernetes容器编排工具,熟练使用linux操作系统,多年线上线下教学经验 韩先超 ¥ ...
- Jmeter+Prometheus+Grafana性能监控平台:将JMeter压测数据输出到Prometheus
前言 1.小编之前写过一篇文章详细讲解了如何搭建一个HTTP接口性能实时监控测试平台,是用Grafana+Influxdb+Jmeter组合实现的,可以参考我写的这篇博客https://editor. ...
最新文章
- pip、conda 换国内源,大大提高下载速度
- python显示图片
- LeetCode Construct Binary Tree from Inorder and Postorder Traversal
- 接上一篇Ansible和celery的结合,在celery的tasks.py文件里为了实现并发不阻塞的需求,用到了多进程
- Tutorial on Variational AutoEncoders
- 【Android】系统目录理解
- Spring Boot核心配置
- tf.acos_带有Python示例的math.acos()方法
- (转) java 复制文件,不使用输出流复制,高效率,文件通道的方式复制文件
- Chrome开发者工具之JavaScript内存分析
- 网友评论:Struts漏洞为什么来势凶猛
- Mac终端编c语言,【新手提问】有知道用mac终端编c语言的网络编程的人吗?
- 洛谷——P2820 局域网
- FireFox的插件
- 【渝粤教育】广东开放大学 商务翻译实务 形成性考核 (49)
- 带遮挡效果的轮廓线(描边)在3D实时渲染中的一种实现
- 计算机科学学院宣传标语,师范学院宣传标语
- ReactNative解决方案研究
- 什么是计算机立体化教程,全国计算机等级考试立体化应试教程
- VUE实现PDF在线阅读
热门文章
- NSMutableArray 如果只进行了声明,而没有进行初始化,那么程序不会报错,但是,声明的那个变量不起任何作用...
- sqlite3.h--dbhelp.h数据库底层文件
- 周日21点50:关注电子阅读的大潮到来
- 什么是.NET 程序集强签名
- 业务系统设计之一:系统菜单设计
- 机器学习--信息 信息熵 信息增益
- sql server 备份与恢复系列一 必备知识
- liferay笔记之copy-request-parameters
- GPUImageMovieWriter实现暂停录制,重新录制
- Android更新Ui的几种方法