在ubuntu上搭建系统监控系统

大纲

  • 数据生产方
    • 安装和运行
    • 验证
  • 数据收集、存储和分发方
    • 下载和解压
    • 修改配置
    • 运行
    • 验证
  • 数据消费方
    • 下载和运行
    • 验证
      • 新增数据源
      • 新增看板
      • 关联看板和数据源
      • 效果展现
  • 参考资料

在一个监控系统中,一定会有“数据生产方”和“数据消费方”存在。“数据生产方”用于产出需要监控的相关指标数据;“数据消费方”使用这些数据产生额外的信息和功能,比如数据图表化表达、异常数据预警等。
请添加图片描述
当“数据生产方”变多时,系统往往会演化出“数据收集方”用于统一收集数据。这个时候“数据消费方”可以通过“数据收集方”获得全部数据。
请添加图片描述
当“数据消费方”变多时,不同的“数据消费方”会有不同诉求。比如有的只要A“数据生产方”的数据;有的既要A的、也要B的数据。于是整个系统又会演化出“数据分发方”,用于满足消费方的不同诉求。
在这里插入图片描述
随着数据越来越多,且生产和消费并非一定要紧密连接,在“数据收集方”和“数据分发方”之间就会演化出“数据仓储方”。它的出现让“数据收集方”和“数据分发方”实现了解耦,且提升了系统的健壮性。
在这里插入图片描述
在实际生产中,我们往往使用prometheus和grafana来实现该系统中重要的两部分。
prometheus主要用于收集、存储和分发数据。虽然prometheus可以展现数据,但是功能并不强大,所以将其限定在非消费区域。
grafana主要用于消费数据。主要体现就是各种报表形式展现数据,以及提供一些基于规则数据告警。
在这里插入图片描述
“数据生产方”需要给prometheus提供规定协议的数据。本文我们并不对此进行介绍,而是专注于将系统搭建和验证。为了简单起见,我们选用了prometheus开源项node_exporter作为“数据生产方”。

数据生产方

安装和运行

下载并解压node_exporter。(可以从https://prometheus.io/download/#node_exporter找到最新的版本)

wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz 
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz 

运行node_exporter

cd node_exporter-1.7.0.linux-amd64/
./node_exporter

验证

在本机上使用localhost:9100/metrics(跨环境使用,则配置IP)访问node_exporter产生的数据。
在这里插入图片描述

数据收集、存储和分发方

下载和解压

下载并解压prometheus。(可以在https://prometheus.io/download/#prometheus找到最新版)

wget https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz .
tar -zvxf prometheus-2.51.0.linux-amd64.tar.gz

修改配置

进入prometheus目录下可以找到prometheus.yml

cd prometheus-2.51.0.linux-amd64/

修改prometheus.yml文件,新增对node_exporter的监控。
原来的部分配置

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"]

修改后的配置

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"]
  - job_name: "node_exporter"
    static_configs:
      - targets: ["localhost:9100"]

运行

通过指定配置的方式启动prometheus。

./prometheus --config.file=./prometheus.yml 

验证

在本机上使用localhost:9090(跨环境使用,则配置IP)访问prometheus后台页面。
在这里插入图片描述
可以看到node_exporter已经被监控。
在这里插入图片描述

我们还可以在图形化(Graph)的输入框中输入以下指令查看数据图表展现效果。

MetricMeaning
rate(node_cpu_seconds_total{mode=“system”}[1m])在最后一分钟内,每秒在系统模式下花费的平均CPU时间(以秒为单位)
node_filesystem_avail_bytes非root用户可用的文件系统空间(以字节为单位)
rate(node_network_receive_bytes_total[1m])最后一分钟内每秒接收的平均网络流量(以字节为单位)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据消费方

prometheus虽然可以配置一些看板和告警,但是可视化并不是它的核心。于是我们引入效果更好的grafana来做“数据消费方”。

下载和运行

下载并解压grafana。(可以在https://grafana.com/grafana/download找到最新版)

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.1.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-10.4.1.linux-amd64.tar.gz
cd grafana-v10.4.1/
./bin/grafana server

验证

在本机上使用localhost:3000(跨环境使用,则配置IP)访问grafana后台页面。
第一次登录时,我们可以使用admin名称登录,密码也是admin。进入这个账号后会提示修改初始密码,我们还是设置为admin以方便记忆。

新增数据源

我们要让grafana连接prometheus,以提供数据。具体操作如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新增看板

在这里插入图片描述
我们到grafana官网上找为node_exporter定制的开源看板。
在这里插入图片描述
在这里插入图片描述
把上一步看板网页地址https://grafana.com/grafana/dashboards/1860-node-exporter-full/复制到下图的输入框中,以加载它。
在这里插入图片描述

关联看板和数据源

上个页面往下滚动,可以看到输入数据源的地方。我们选择之前步骤创建的prometheus。
在这里插入图片描述

效果展现

在这里插入图片描述

参考资料

  • https://github.com/prometheus/node_exporter
  • https://prometheus.io/docs/guides/node-exporter/
  • https://prometheus.io/download/
  • https://grafana.com/grafana/download
  • https://grafana.com/docs/grafana/latest/setup-grafana/sign-in-to-grafana/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

三个表的联合查询的场景分析-场景4:c表维护a和b表的id关联关系(一对多)

基础SQL演练,带详细分析,笔记和备忘。 目录 背景介绍 表数据 需求1:查询g表所有记录,以及关联的h的id 需求2:在需求1基础上,查出关联的h的其它字段(name) 需求3:在需…

Java基本语法(变量,数据类型,关键字、)

目录 什么是变量 声明 声明方式 赋值方式 声明的同时进行赋值 变量命名规范 字符组成:变量名可以包含以下字符: 开头限制: 空格禁止: 关键字/保留字: 大小写敏感: 长度限制: 推荐风…

软考101-上午题-【信息安全】-网络安全

一、网络安全 1-1、安全协议 SSL(Secure Socket Layer,安全套接层)是 Netscape 于 1994年开发的传输层安全协议,用于实现 Web 安全通信。1996 年发布的 SSL3.0 协议草案已经成为一个事实上的Web 安全标准。 端口号是43。 SSL HTTP HTTPS TLS(Transpo…

FL Studio21中文版百度云网盘下载及切换中文语言教程

FL Studio 21,即广为人知的“水果”软件,拥有众多强大的功能,满足了音乐制作人在创作过程中的各种需求。 首先,它具备出色的多轨道音频录制功能,能够同时处理多个音频轨道的录制,非常适合制作复杂的音乐作…

K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(中)

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 在上一章节中,我们详细探讨了Pod的亲和性&…

基于 StarRocks 的风控实时特征探索和实践

背景 金融风控特征是在金融领域中用于评估和管理风险的关键指标。它们帮助金融机构识别潜在风险,降低损失,并采取措施规避风险。例如,用户最后一次授信提交时间就是一个重要的金融风控特征。 金融风控实时特征场景是一个典型的大数据实时业务…

代码随想录算法训练营 DAY 24 | 回溯理论基础 77.组合 + 剪枝优化

回溯理论 回溯法就是递归函数,纯暴力搜索 解决的问题 组合(无顺序) 1 2 3 4 给出大小为2的所有组合 切割字符串 子集问题 1 2 3 4,子集有1 2 3 4,12,13,14,…123 124… 排列(有顺序) 棋盘…

OpenAI发布Voice Engine模型!用AI合成你的声音!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

合集:JS异步的六个解决方案详解。

Hello,各位老铁,最近发表了js异步的解决方案,是分开发的,这次我把他汇总起来,方便大家收藏、查看,欢迎点赞评论私信交流。 01.详解:JS异步解决方案之回调函数,及其弊端 02.详解&…

函数指针的运用

这段代码使用了函数指针,实现了根据用户输入的命令选择不同的操作,并对两个数进行相应的处理。以下是代码的总结: getMax, getSmall 和 getSum 函数分别用于获取两个数中的较大值、较小值和它们的和。 dataHandler 函数接收两个数据 data 和…

ElementUI表格table组件实现单选及禁用默认选中效果

在使用ElementUI&#xff0c;需要ElementUI表格table组件实现单选及禁用默认选中效果, 先看下效果图&#xff1a; 代码如下&#xff1a; <template><el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"widt…

2024 ccfcsp认证打卡 2022 03 02 出行计划

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 出行计划数目int m sc.nextInt(); // 查询个数int k sc.nextInt(); // 等待核酸检测结果所需时间final int N 200010;i…

ROS 2边学边练(4)-- 何为主题(topics)

概念 主题是一种节点间的通信方式&#xff0c;某个节点充当发布特定&#xff08;主题&#xff09;消息&#xff08;数据&#xff09;的角色&#xff0c;另外一些节点则可以订阅接收该特定&#xff08;主题&#xff09;消息&#xff08;数据&#xff09;。两者&#xff0…

Centos JDK1.8 下载安装

https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html 一 RPM包安装 rpm -ivh jdk-8u391-linux-x64.rpm /etc/profile export JAVA_HOME/usr/java/jdk1.8.0-x64 export PATH$JAVA_HOME/bin:$PATHsource /etc/profile二 tar.gz 包手动…

如何在极狐GitLab 配置 邮件功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了在极狐GitLab 用户…

封装性练习

练习 1 &#xff1a; 创建程序&#xff1a;在其中定义两个类&#xff1a; Person 和 PersonTest 类。定义如下&#xff1a; 用 setAge() 设置人的合法年龄 (0~130) &#xff0c;用 getAge() 返回人的年龄。在 PersonTest 类中实例化 Person 类的对象 b &#xff0c;调用 set…

基于Web的社区医院管理服务系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 1. 系统功能…

模型 可编程思想

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_总纲目录。一切皆有可能。 1 可编程思想的应用 1.1 自动化智能投资顾问服务 传统的财富管理服务通常需要专业的财务顾问来为客户提供投资建议和资产管理服务。随着技术的发展&#xff0c;越来越多的投资者开始寻求…

【群晖】白群晖如何公网访问

【群晖】白群晖如何公网访问 ——> 点击查看原文 在使用默认配置搭建好的群晖NAS后&#xff0c;我们可以通过内网访问所有的服务。但是&#xff0c;当我们出差或者不在家的时候也想要使用应该怎么办呢&#xff1f; 目前白群提供了两种比较快捷的方式&#xff0c;一种是直接注…

广发期货:从灾备中心、信创云到主中心,超融合支撑云化与国产化双转型

案例亮点 超过 30 节点承载灾备中心、信创云及主中心的 60% 以上业务系统。超融合信创资源池稳定运行超 1 年&#xff0c;承载 80% 以上的信创系统&#xff0c;顺利通过信创验收。引入超融合架构后&#xff0c;业务在 1 周内快速上线&#xff0c;稳定运行 3 年&#xff1b;减少…