入门指南:使用Prometheus监控Linux服务器

Prometheus介绍

image-20230331095757061

Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析。以下是Prometheus的架构图介绍:

Prometheus的架构由四个主要组件组成:

  1. Prometheus Server(Prometheus服务器) :Prometheus Server是Prometheus的核心组件,主要负责从各个目标(target)中收集指标(metrics)数据,并对这些数据进行存储、聚合和查询。Prometheus Server还提供了一个Web界面,用于展示和查询监控数据。
  2. Client Libraries(客户端库) :Prometheus提供了多种客户端库,用于在应用程序中嵌入Prometheus的指标收集功能。客户端库支持多种编程语言,包括Go、Java、Python等,用户可以根据自己的需求选择合适的客户端库。
  3. Exporters(导出器) :Exporters是用于将第三方系统的监控数据导出为Prometheus格式的组件。Prometheus支持多种Exporters,例如Node Exporter、MySQL Exporter、HAProxy Exporter等,用户可以根据自己的需求选择适合的Exporter。
  4. Alertmanager:Alertmanager是Prometheus的告警组件,用于根据用户定义的规则对监控数据进行告警。Alertmanager支持多种告警方式,例如邮件、Slack、PagerDuty等。用户可以根据自己的需求选择适合的告警方式。

同时Prometheus有以下优点

  1. 灵活的数据模型:Prometheus采用的是key-value对的形式存储指标数据,每个指标都可以包含多个标签(labels),这样可以更加灵活地描述指标数据。例如,可以使用标签来描述不同的机器、不同的应用程序、不同的数据中心等,从而更加细粒度地监控系统。

  2. 高效的存储和查询:Prometheus使用自己的时间序列数据库,可以高效地存储和查询大量的指标数据。同时,Prometheus提供了灵活的查询语言(PromQL),可以对指标数据进行复杂的查询和聚合操作。

  3. 强大的可视化和告警功能:Prometheus提供了Web界面和API,可以方便地展示和查询监控数据。同时,Prometheus还提供了灵活的告警功能,可以根据用户定义的规则对监控数据进行告警,并支持多种告警方式。

  4. 可扩展性强:Prometheus的架构非常灵活,可以根据需要选择合适的组件进行配置。同时,Prometheus还支持多种扩展方式,例如使用Pushgateway将非常规的指标数据推送到Prometheus,使用Federation将多个Prometheus Server进行联合查询等。

  5. CNCF的成员项目:CNCF是一个非营利组织,致力于推广云原生技术,包括容器、服务网格、微服务、不可变基础设施等。Prometheus作为CNCF的项目之一,得到了广泛的关注和支持,并且得到了来自全球各地的贡献者的积极参与和开发。作为一个CNCF的项目,Prometheus不仅具有开源、社区化的特点,而且还受到了CNCF的支持和认可,可以更好地满足云原生环境下的监控需求。

下面就Prometheus基于本地环境进行监控报警进行讲解

下载

docker pull prom/prometheus:v2.43.0

image-20230329170341774

配置

创建文件夹data

image-20230329170516593

创建配置文件prometheus.yml,可以根据需要进行配置

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# 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'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

因为路径过长,创建一个软链

 ln -s /Users/weizhao.dong/Documents/soft/prometheus /data/prometheus

启动

docker run --name prometheus -d -p 9090:9090 -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml   -v /data/prometheus:/prometheus prom/prometheus:v2.43.0

image-20230330141947743

image-20230330233346072

Grafana安装

下载

docker pull grafana/grafana-enterprise:8.5.22

image-20230330143946592

启动

docker run -d --name=grafana -p 3000:3000 grafana/grafana-enterprise:8.5.22

image-20230330233325310

配置数据源

添加prometheus数据源

image-20230330233452500

image-20230515232307244

Linux服务器资源监控

下载node-exporter

由于我的电脑是arm架构所以使用了arm64的包,如果是其他架构请访问此链接进行下载https://github.com/prometheus/node_exporter/releases

wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-arm64.tar.gz

下载解压执行node_exporter文件暴漏9100端口,即可采集到监控信息

image-20230330233733640

image-20230330233840865

安装node-exporter

由于直接启动node-exporter关闭窗口此进程就会挂掉,所以不是我们想要的,因此可以采用systemctl方式进行配置

  1. /usr/lib/systemd/system/目录,创建node_exporter.service文件,内容如下,ExecStart指向的就是node_exporter执行文件

    [Unit]
    Description=Node Exporter
    
    [Service]
    ExecStart=/usr/local/node_exporter
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    
  2. 执行systemctl daemon-reload

  3. 执行 systemctl start node_exporter启动node_exporter

  4. 执行netstat -aon|grep 9100查看9100是否启动成功

    image-20230330234533527

修改prometheus配置文件

增加以下任务,5s采集一次

  - job_name: 'linux'
    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    static_configs:
      - targets: ['10.211.55.4:9100']

image-20230330234805218

重启prometheus

docker restart prometheus

image-20230330234904188

image-20230330234938650

Grafana文件配置

访问官网https://grafana.com/grafana/dashboards/下载node_export配置文件

image-20230330235849765

点击进去,点击右边的DownloadJson文件进行下载

image-20230330235927788

文件下载以后导入到Grafana

image-20230331000109536

导入完成以后,查看可以看到对应的数据采集到

image-20230331000226890

到这Linux监控就告一段落。

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

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

相关文章

Win10 安装.NET Framework 3.5 报错0x80240438

环境&#xff1a; Win10专业版 NET Framework 3.5 问题描述&#xff1a; Win10 安装.NET Framework 3.5 报错0x80240438 解决方案&#xff1a; 1.检查自动更新服务是否未开启&#xff0c;开启自动更新失败&#xff0c;用工具开启自动更新,重启电脑&#xff08;未解决&am…

JVM虚拟机:如何查看JVM初始和最终的参数?

本文重点 在前面的课程中&#xff0c;我们学习了如何查看当前程序所处于的xx参数&#xff0c;本文再介绍一种如何参看JVM的xx参数&#xff1f; 查看JVM的所有初始化参数 方式一&#xff1a;java -XX:PrintFlagsInitial 方式二&#xff1a;java -XX:PrintFlagsInitial -versio…

Java基础50题:14. 使用方法求最大值(2种方法)

概述 使用方法求最大值。 创建方法求两个数的最大值max2&#xff0c;随后再写一个求3个数的最大值函数max3。 要求&#xff1a; 在max3这个方法中&#xff0c;调用max2函数&#xff0c;来实现3个数的最大值计算。 方法一 【代码】 public class P14 {public static int max…

AI烟火识别智能视频分析系统解决方案

引言 随着城市化进程的加快和高科技的迅猛发展&#xff0c;传统的消防系统逐渐显露出局限性。在这种背景下&#xff0c;AI烟火识别智慧消防解决方案应运而生&#xff0c;它融合了最新的AI技术&#xff0c;旨在提高火灾的预防、检测、应对和控制能力&#xff0c;保护人民生命财…

Halcon threshold_sub_pix (Operator)

read_image(Image,fabrik) threshold_sub_pix(Image,Border,35) dev_display(Border)Image是输入的原始图像&#xff0c;Threshold是设定的阈值&#xff0c;Width和Height是像素值计算区域的大小&#xff0c;ThresholdedRegion是经过分割后得到的二值化结果。 在对图像进行二值…

“line“

服务端 package work; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.util.ArrayList; import java.util.List; public class UDPServer { private static final int PORT 9876; private static List<ClientInfo> clients …

小航助学2023年6月GESP_Scratch一级真题(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号 单选题3.00分 删除编辑附件图文 答案:A 第1题以下不属于计算机输出设备的有&#xff08; &#xff09;。 A、麦克风B、音箱C、打印机D、显示器 答案解析&#xff1a; 单选…

机器学习之全面了解模型验证

本专栏我们将和大家一起探讨机器学习与数据科学的主题&#xff0c;解释相关背景知识&#xff0c;并就一些来自社区的问题进行解答。 本文主要介绍模型验证及其相关主题&#xff0c;如过拟合和超参数调优。我将概括介绍该主题及其重要性&#xff0c;然后探讨以下四个问题&#…

HarmonyOS系统架构及项目结构浅析

语雀知识库地址&#xff1a;语雀HarmonyOS知识库 飞书知识库地址&#xff1a;飞书HarmonyOS知识库 基本概念 UI框架 HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xf…

Vulnerability: File Upload(low)--MYSQL注入

选择难度&#xff1a; 1.打开DVWA&#xff0c;并登录账户 2.选择模式&#xff0c;这里我们选择 文件上载的最低级模式&#xff08;low&#xff09; 在vsc里面写个一句话木马 这里我们注意&#xff0c;因为这个是木马很容易被查杀&#xff0c;从而无法使用&#xff0c;所以我们…

uni-app 微信小程序之好看的ui登录页面(三)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面&#xff08;一&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;二&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;三&#xff09; uni-app 微信小程…

Chrome浏览器禁止更新策略

在做爬虫过程中&#xff0c;需要用到Selenium驱动浏览器去做动态爬虫 这里我一般用到的是Chrome谷歌浏览器进行爬虫 但是&#xff0c;目前python和Chrome浏览器适配最好的是110.版本 尽管我用了很多种方法 去取消浏览器自动更新 但是 过一段时间 浏览器总是会自动更新到最新…

Excel 表列序号

题目链接 Excel 表列序号 题目描述 注意点 columnTitle 仅由大写英文组成1 < columnTitle.length < 7 解答思路 对于"CAB"&#xff0c;计算其序列号的思路&#xff1a;字母B的贡献值为2&#xff0c;字母A的贡献值为1 * 26&#xff0c;字母C的贡献值为3 * …

Java 简易版 TCP(一对一)聊天

客户端 import java.io.*; import java.net.Socket; import java.util.Date; import javax.swing.*;public class MyClient {private JFrame jf;private JButton jBsend;private JTextArea jTAcontent;private JTextField jText;private JLabel JLcontent;private Date data;p…

使用Python实现轮盘赌选择法Roulette Wheel Selection Method in Python

一、引言 最近在手写遗传算法&#xff0c;想尝试解决一些优化问题。然而&#xff0c;在编码的过程中&#xff0c;自己发现了很多都不懂的问题。比如&#xff0c;交叉的操作&#xff0c;有单点交叉、两点交叉和多点交叉&#xff0c;具体选哪一种会更好呢&#xff1f;未知。还有交…

探索Spring事件监听机制的奇妙世界

文章目录 什么是Spring事件监听机制主要组件内置的事件监听类自定义事件监听类总结 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 什么是Spring事件监听机制 Spring事件监听机制是Spr…

【Java基础系列】Cron表达式入门

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

12月7日作业

pp登录界面 widget.cpp #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口设置this->setWindowTitle("pp"); //窗口名为ppthis->setWindowIcon(QIcon("C:\\Users\\86198\\Desktop\\tubiao\\pictrue\\kunkun.webp…

Implicit Neural Representation for Cooperative Low-light Image Enhancement

GitHub - Ysz2022/NeRCo: [ICCV 2023] Implicit Neural Representation for Cooperative Low-light Image Enhancement 参考&#xff1a;ICCV2023 | 将隐式神经表征用于“低光增强”&#xff0c;北大张健团队提出NeRCo (qq.com) 以下三个因素限制了现有低光图像增强方法的应用…

Stable Diffusion AI绘画系列【20】:美丽动人的雀羽婚纱风,你心动了吗?

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…