当前位置: 首页 > news >正文

Prometheus、Grafana使用

文章目录

  • 系统性能监控
    • 相关命令
      • lscpu
      • top
      • free
      • htop
      • dstat
      • glances
      • iftop
      • iptraf
      • nethogs
    • 监控软件
    • Prometheus
      • 安装、使用
      • 将promethues做成服务
      • 监控其他机器
    • exporter
    • grafana
      • 配置、使用
      • 密码忘记重置

系统性能监控

相关命令

lscpu

lscpu 是一个 Linux 命令,用于显示关于 CPU(中央处理器)架构和信息的详细信息。它提供了关于 CPU 型号、核心数量、线程数量、缓存大小和其他与 CPU 相关的特性的信息。以下是 lscpu 命令输出的一些常见信息及其解释:

  1. Architecture(架构):显示操作系统所运行的 CPU 架构,如 x86、x86_64、ARM 等。

  2. CPU(s)(CPU 数量):显示系统中的物理 CPU 数量。

  3. Thread(s) per core(每核线程数):显示每个 CPU 核心支持的线程数。如果 CPU 支持超线程技术,该值将大于 1,表示每个物理核心可以同时运行多个线程。

  4. Core(s) per socket(每个插槽核心数):显示每个物理 CPU 插槽中的核心数。

  5. Socket(s)(插槽数量):显示系统中的物理 CPU 插槽数量。

  6. Model name(型号名称):显示 CPU 的型号和描述信息。

  7. CPU MHz(CPU 主频):显示 CPU 的主频(运行频率)。

  8. CPU max MHz(CPU 最大主频):显示 CPU 的最大主频。

  9. CPU min MHz(CPU 最小主频):显示 CPU 的最小主频。

  10. L1d cache(一级数据缓存):显示 CPU 的一级数据缓存大小。

  11. L1i cache(一级指令缓存):显示 CPU 的一级指令缓存大小。

  12. L2 cache(二级缓存):显示 CPU 的二级缓存大小。

  13. L3 cache(三级缓存):显示 CPU 的三级缓存大小。

  14. Virtualization(虚拟化支持):显示 CPU 是否支持虚拟化技术。

  15. Flags(特性标志):显示 CPU 支持的特性标志,如 SSE(流式 SIMD 扩展)、AVX(高级矢量扩展)、AES(高级加密标准)等。

以上是 lscpu 命令输出中常见的一些信息,它们提供了有关系统中 CPU 架构和特性的详细信息。可以使用 lscpu 命令来查看您的系统上 CPU 的相关信息,以了解 CPU 的配置和功能。

top

top 是一个常用的终端命令,用于实时监视和显示系统中运行的进程和系统性能指标。它可以让您查看正在运行的进程的资源使用情况,例如 CPU 占用率、内存占用率、交换空间使用情况等。以下是 top 命令输出的一些常见信息及其解释:

  1. 第一行:整体系统性能指标

    • top:显示当前时间和运行时间。
    • up:系统的运行时间。
    • users:当前登录用户数量。
    • load average:过去 1 分钟、5 分钟和 15 分钟的平均负载。
  2. 第二行:进程统计信息

    • Tasks:当前运行的进程数量。
    • total:总进程数。
    • running:正在运行的进程数。
    • sleeping:休眠(等待)的进程数。
    • stopped:停止的进程数。
    • zombie:僵尸进程数。
  3. 第三行:CPU 占用率信息

    • %Cpu(s):CPU 使用率统计。
    • us:用户空间程序占用 CPU 的百分比。
    • sy:系统空间程序占用 CPU 的百分比。
    • ni:以较低优先级运行的用户空间程序占用 CPU 的百分比。
    • id:空闲 CPU 的百分比。
    • wa:等待 I/O 的 CPU 时间百分比。
    • hi:硬件中断(Hardware IRQ)占用 CPU 的百分比。
    • si:软件中断(Software IRQ)占用 CPU 的百分比。
  4. 进程列表:显示当前运行的进程列表

    • PID:进程 ID。
    • USER:进程的所属用户。
    • PR:进程的优先级。
    • NI:进程的优先级修改值。
    • VIRT:进程使用的虚拟内存大小。
    • RES:进程使用的物理内存大小(常驻内存)。
    • SHR:进程使用的共享内存大小。
    • S:进程的状态(R: 运行, S: 睡眠, Z: 僵尸进程等)。
    • %CPU:进程占用 CPU 的百分比。
    • %MEM:进程占用内存的百分比。
    • TIME+:进程累计的 CPU 使用时间。
    • COMMAND:进程的命令行。

top 命令会实时更新并显示系统的运行情况,您可以使用键盘上的不同快捷键来执行特定操作,例如杀死进程、改变排序方式、切换显示模式等。要退出 top命令,可以按下 q 键。通过使用 top 命令,您可以及时监测系统的性能指标和进程活动,以便快速了解系统的状态和资源使用情况。

`load average(系统平均负载)

系统平均负载是指过去的1分钟、5分钟、15分组,处于可运行(可运行或就绪的状态)或不可中断状态(阻塞的状态)的进程的平均数量。这是进程的平均数量,用来判断系统是否繁忙的指标,假如我们的系统是1个cpu核心,这个值超过1就说明系统比较繁忙了,但是不超过5说明还没有达到最忙的时候,0~5以内,说明系统还可以接受,只要超过1就比较忙了。

假如有8个核心,这个值就是8,超过8就比较忙,但是可以承受的总值是5*8=40.

交互性命令:

top 命令的交互界面中,可以使用多个键盘快捷键执行不同的操作。以下是一些常见的 top 命令的交互性命令:

  1. 切换排序方式:

    • M:按内存占用排序。
    • P:按 CPU 占用排序。
    • T:按时间/累计 CPU 排序。
  2. 进程操作:

    • k:杀死选中的进程。
    • r:修改选中进程的优先级。
  3. 显示模式切换:

    • 1:显示全局汇总信息。
    • 2:显示每个 CPU 核心的详细信息。
    • 3:显示每个任务(进程)的详细信息。
  4. 刷新频率控制:

    • s:改变刷新间隔时间。
    • dD:改变刷新间隔时间为动态调整模式。
  5. 过滤器和搜索:

    • o:添加或修改显示字段。
    • /:进入进程搜索模式,可输入关键字搜索进程。
    • =:清除进程搜索过滤器。
  6. 系统操作:

    • H:在线程和进程之间切换显示。
    • i:显示内核和 I/O 统计信息。
    • b:显示中断统计信息。
  7. 退出 top

    • q:退出 top 命令。

这只是一些常见的 top 命令的交互性命令示例,实际上 top 命令提供了更多的功能和选项。可以在 top 命令的交互界面中按下 h 键获取更详细的帮助信息,其中包含了所有可用的快捷键和操作说明。

实例

[root@ydh nginx]# top -d 3 -n 1
  • -d 3:表示刷新间隔为 3 秒。这将使 top 命令每隔 3 秒更新一次显示内容。
  • -n 1:表示只执行一次 top 命令后退出。这将使 top 命令只显示一次系统状态和进程信息,然后立即退出。

top -d 3 -n 1 命令将执行一次 top 命令并在终端显示系统的实时状态和进程信息,刷新间隔为 3 秒,然后在显示一次后立即退出。这样可以获取系统状态的一个快照而不会持续监视和更新。

free

free 是一个常用的 Linux 命令,用于显示系统中的内存使用情况。它提供了物理内存(RAM)和交换空间(Swap)的相关统计信息。以下是 free 命令输出的详细解释:

  1. 第一行:系统整体内存使用情况

    • total:物理内存总量。

    • used:应用程序已使用的物理内存量。

    • free:可用的物理内存量。

    • shared:被共享使用的物理内存量(多个进程共享的内存)。

    • buffers:被缓存的文件数据的物理内存量(内存–》buffer–》磁盘)(减少IO的次数)。

    • cached:被缓存的文件系统的物理内存量(磁盘–》cached–》内存)(可以将数据先写道cached,提升速度)。

    • total = used + free + shared +buff/cahce

    • available=free + buff/cached里的为使用完的空间:下一次进程可以使用的内存空间

  2. 第二行:内存详细信息

    • Mem:物理内存统计信息。
      • total:物理内存总量。
      • used:已使用的物理内存量。
      • free:可用的物理内存量。
      • shared:被共享使用的物理内存量。
      • buffers/cache:被缓存的文件数据和文件系统的物理内存量。
      • available:可用的物理内存量,考虑了系统保留的内存和缓存的影响。
  3. 第三行:交换空间(Swap)信息

    • Swap:交换空间(Swap)统计信息。
      • total:交换空间总量。
      • used:已使用的交换空间量。
      • free:可用的交换空间量。

free 命令的输出以字节(Bytes)为单位,但通常也以更友好的格式显示,如千字节(Kilobytes)、兆字节(Megabytes)或千兆字节(Gigabytes)。

参数:

  • -b:以字节(Bytes)为单位显示内存大小。
  • -k:以千字节(Kilobytes)为单位显示内存大小(默认选项)。
  • -m:以兆字节(Megabytes)为单位显示内存大小。
  • -g:以千兆字节(Gigabytes)为单位显示内存大小。
  • -h:以人类可读的格式显示内存大小(自动选择合适的单位)。
  • -s <delay>:指定刷新间隔的时间间隔(以秒为单位)。
  • -c <count>:指定输出的次数后退出。
  • -t:在输出中显示总计行。

可以通过在终端中运行 man free 命令来查看完整的 free 命令的参数列表和详细说明。

注意:

交换分区是从磁盘里划分出来的一块空间临时做内存使用的,当物理内存不足的时候,将不活跃的进程交换到swap分区里(尽量不要使用交换分区,因为速度慢)

实例:

[root@ydh nginx]# cat /proc/sys/vm/swappiness 
30

当物理内存只剩下30%的时候空闲的时候,开始使用交换分区

[root@ydh nginx]# echo 0 >/proc/sys/vm/swappiness 
[root@ydh nginx]# cat /proc/sys/vm/swappiness 
0

htop

htop 是一个交互式的系统监视工具,功能类似于经典的 top 命令,但提供了更丰富的功能和更友好的用户界面。以下是对 htop 命令的详细解析:

  1. 主要显示区域:

    • CPU 利用率:显示每个 CPU 核心的使用率和总体 CPU 使用率。
    • 内存使用情况:显示物理内存和交换空间的使用情况。
    • 任务列表:显示系统上运行的进程和线程的列表,按 CPU 或内存使用排序。
  2. 导航和交互操作:

    • 使用方向键或鼠标滚轮可以滚动浏览任务列表。
    • 使用 F1 到 F10 键可以访问不同的功能键菜单,提供了各种系统监视和操作选项。
    • 使用键盘上的数字键可以快速切换不同的排序方式(如按 CPU 使用率、内存使用率等)。
    • 使用键盘上的快捷键(如 F9)可以对选定的进程执行操作,如终止进程、优先级调整等。
  3. 颜色编码和标识:

    • 不同颜色的文本和背景用于标识不同类型的进程和任务状态,如运行中、睡眠中、僵尸进程等。
    • 显示了进程的 CPU 使用率、内存使用量、虚拟内存、线程数量等关键信息。
  4. 其他功能:

    • 支持在任务列表中搜索进程。
    • 提供了实时的系统负载图表,显示 CPU 和内存的实时使用情况。
    • 可以显示进程树,显示进程之间的父子关系。
    • 支持在任务列表中设置进程筛选器,以过滤显示特定的进程。

htop 提供了一个直观且交互式的界面,使您能够更方便地监视系统状态、查看进程信息和执行操作。它对于系统管理员和开发人员来说是一个非常有用的工具,可以帮助他们更好地了解和管理系统。

dstat

dstat 是一个全能的系统资源监视工具,它提供了丰富的统计数据和信息,并以可配置的格式输出。以下是对 dstat 的数据展示解析:

  1. CPU 相关数据:

    • 用户空间 CPU 使用率(usr):表示用户进程所使用的 CPU 时间的百分比。
    • 系统 CPU 使用率(sys):表示内核进程所使用的 CPU 时间的百分比。
    • 等待 I/O 的 CPU 使用率(iowait):表示 CPU 等待 I/O 完成的时间的百分比。
    • 硬中断的 CPU 使用率(irq):表示处理硬件中断的 CPU 时间的百分比。
    • 软中断的 CPU 使用率(soft):表示处理软件中断的 CPU 时间的百分比。
    • CPU 空闲率(idle):表示 CPU 空闲时间的百分比。
  2. 内存相关数据:

    • 已使用内存量(used):表示系统当前已使用的内存量。
    • 空闲内存量(free):表示系统当前空闲的内存量。
    • 缓存使用量(buff):表示系统当前用于文件缓存的内存量。
    • 缓冲区使用量(cache):表示系统当前用于缓冲 I/O 操作的内存量。
    • 可用内存量(available):表示系统当前可用的内存量。
  3. 磁盘相关数据:

    • 磁盘读取速率(read):表示磁盘读取数据的速率。
    • 磁盘写入速率(writ):表示磁盘写入数据的速率。
    • 磁盘读取操作数(read_ops):表示磁盘读取操作的数量。
    • 磁盘写入操作数(writ_ops):表示磁盘写入操作的数量。
  4. 网络相关数据:

    • 网络传入数据速率(recv):表示网络接收数据的速率。
    • 网络传出数据速率(send):表示网络发送数据的速率。
    • 网络传入数据包数(recv_pkg):表示网络接收的数据包数量。
    • 网络传出数据包数(send_pkg):表示网络发送的数据包数量。
  5. 进程相关数据:

    • 运行进程数(procs):表示系统当前运行的进程数。
    • 阻塞进程数(blocked):表示当前阻塞状态的进程数。
    • 睡眠进程数(sleeping):表示当前睡眠状态的进程数。
    • 线程数(thread):表示当前系统中的线程数。

dstat 的输出可以根据用户需求进行自定义配置,并且支持通过命令行参数选择要显示的数据类型、采样间隔和显示持续时间等。通过监视和分析 dstat 的输出数据,可以获得对系统资源使用情况的全面了解,以便进行性能优化、故障排查和资源规划等操作。

参数:

dstat 是一个功能强大的系统资源监视工具,提供了许多参数和选项,以满足用户对系统性能数据的不同需求。以下是 dstat 常用参数的详细介绍:

  1. -c, --cpu:显示 CPU 相关的统计数据。

    • usr:用户空间 CPU 使用率。
    • sys:系统 CPU 使用率。
    • idl:CPU 空闲率。
    • wai:等待 I/O 的 CPU 使用率。
    • hiq:硬中断的 CPU 使用率。
    • siq:软中断的 CPU 使用率。
  2. -d, --disk:显示磁盘相关的统计数据。

    • read:磁盘读取速率。
    • writ:磁盘写入速率。
    • read_ops:磁盘读取操作数。
    • writ_ops:磁盘写入操作数。
  3. -n, --net:显示网络相关的统计数据。

    • recv:网络传入数据速率。
    • send:网络传出数据速率。
    • recv_pkg:网络传入数据包数。
    • send_pkg:网络传出数据包数。
  4. -m, --mem:显示内存相关的统计数据。

    • used:已使用内存量。
    • free:空闲内存量。
    • buff:缓存使用量。
    • cach:缓冲区使用量。
    • free:可用内存量。
  5. -p, --proc:显示进程相关的统计数据。

    • run:运行进程数。
    • blk:阻塞进程数。
    • slp:睡眠进程数。
    • thd:线程数。
  6. -s, --swap:显示交换空间相关的统计数据。

    • used:已使用交换空间量。
    • free:空闲交换空间量。
  7. -g, --page:显示页面交换相关的统计数据。

    • in:页面交换入速率。
    • out:页面交换出速率。
  8. -y, --sys:显示系统相关的统计数据。

    • intr:每秒中断数。
    • ctxt:每秒上下文切换数。
  9. -l, --load:显示系统负载平均值。

  10. -r, --io:显示系统 I/O 相关的统计数据。

    • read:每秒读取字节数。
    • writ:每秒写入字节数。
  11. -N, --fs:显示文件系统相关的统计数据。

    • read:文件系统读取速率。
    • writ:文件系统写入速率。
    • used:已使用的文件系统空间。
    • free:可用的文件系统空间。
  12. `-S,

–sockets:显示套接字相关的统计数据。 - total:总套接字数。 - udp:UDP 套接字数。 - tcp:TCP 套接字数。 - raw`:RAW 套接字数。

还有其他一些参数和选项可以与上述参数组合使用,以进一步定制 dstat 的输出,例如:

  • -a:显示所有可用的统计数据。
  • -f:显示文件系统统计数据。
  • -T:显示时间戳。

通过在命令行中使用这些参数和选项,可以根据需要监视和分析系统资源的各个方面。可以通过 man dstat 命令查看完整的参数和选项列表以及其详细说明。

glances

Glances是一个跨平台的系统监视工具,提供了实时的系统状态和性能指标的全面视图。下面是Glances的一些主要特点和功能:

  1. 实时监视:Glances提供实时的系统监视,可以即时查看CPU、内存、磁盘、网络、传感器等方面的数据。

  2. 用户友好的界面:Glances采用交互式终端界面,通过命令行展示信息,并以颜色和图表的形式直观地呈现数据。

  3. 多平台支持:Glances可以在Linux、Windows、MacOS等多个操作系统上运行,并提供相应的可执行文件和软件包。

  4. 详细的系统信息:Glances显示了关于系统的详细信息,包括操作系统类型、内核版本、主机名等。

  5. 多项性能指标:Glances提供了广泛的性能指标,包括CPU使用率、内存使用情况、磁盘读写速度、网络流量、进程数量等。

  6. 进程管理:Glances允许查看和管理运行中的进程,包括CPU和内存占用最高的进程。

  7. 警报和通知:Glances可以配置警报和通知,以便在达到特定阈值时通知用户。

  8. 扩展性:Glances支持插件系统,可以通过安装额外的插件来扩展其功能,例如监视数据库、Web服务器等。

总体而言,Glances是一个功能强大且易于使用的系统监视工具,可以为用户提供全面的系统状态和性能数据,并帮助用户监控系统健康、排查问题和优化性能。

[root@ydh ~]# yum install glances -y

进入

[root@ydh ~]# iptraf-ng

按q退出

iftop

iftop是一款开源的命令行工具,用于实时监视网络流量。它提供了一个直观的界面,显示正在进行的网络连接以及每个连接的流量信息。以下是iftop的一些主要特点和功能:

  1. 实时流量监视:iftop以实时的方式监视网络流量,显示当前网络连接的流量情况,包括传入流量和传出流量。

  2. 可视化界面:iftop以交互式的方式展示网络连接和流量信息,使用类似于top命令的界面,易于理解和操作。

  3. 按连接排序:iftop根据流量大小对连接进行排序,使用户可以快速找到产生最多流量的连接。

  4. IP和端口信息:iftop显示与每个连接相关的IP地址和端口号,帮助用户识别网络流量的来源和目标。

  5. 过滤功能:iftop支持根据IP地址、端口号和网络接口等条件进行流量过滤,以便用户关注特定的网络流量。

  6. 网络带宽图表:iftop提供带宽使用情况的实时图表,使用户可以直观地了解网络的使用情况和趋势。

  7. 统计信息:iftop提供有关总体流量、平均流量和流量峰值的统计信息,帮助用户评估网络性能和负载。

iftop是一个强大的工具,特别适用于需要实时监视网络流量的情况,如网络故障排除、带宽优化和网络安全监控等。通过iftop,用户可以迅速获取关于网络流量的详细信息,并对网络连接进行分析和管理。

[root@ydh ~]# yum install iftop -y

iptraf

iptraf是一个实时网络流量监视工具,用于在Linux系统上监视网络接口的活动。它提供了一个交互式的界面,显示网络接口的统计信息、连接状态、端口信息等。以下是iptraf的一些主要特点和功能:

  1. 实时流量监视:iptraf以实时的方式监视网络接口的流量情况,包括传入流量和传出流量。

  2. 多种统计信息:iptraf提供了各种统计信息,如总流量、每秒流量、传输速率、错误包数量等,以便用户了解网络接口的使用情况。

  3. 连接状态监视:iptraf可以显示当前活动的连接状态,包括TCP连接和UDP连接,以及连接的源IP地址和目标IP地址。

  4. 端口监视:iptraf可以监视特定端口的活动情况,包括连接数量、数据传输量等。

  5. 按协议过滤:iptraf支持按照不同的网络协议进行过滤,如TCP、UDP、ICMP等,以便用户查看特定协议的流量情况。

  6. 日志功能:iptraf可以将监视的数据记录到日志文件中,方便后续分析和审查。

  7. 交互式界面:iptraf提供一个交互式的终端界面,允许用户通过按键或菜单选择来查看不同的统计信息和设置选项。

iptraf是一个功能丰富且易于使用的网络流量监视工具,适用于网络管理人员、系统管理员和安全分析师等对网络流量进行实时监视和分析的用户。它可以帮助用户监控网络接口的使用情况、识别潜在的网络问题,并进行网络性能优化和故障排除。

[root@ydh ~]# yum install iptraf -y

nethogs

Nethogs是一款开源的命令行工具,用于实时监视网络接口的流量和进程。它可以显示当前正在使用网络带宽的进程及其相应的流量使用情况。以下是Nethogs的一些主要特点和功能:

  1. 实时流量监视:Nethogs以实时的方式监视网络接口的流量使用情况,显示当前正在使用带宽的进程及其相应的上传和下载流量。

  2. 进程识别:Nethogs能够识别每个网络连接对应的进程,并显示相关进程的PID、用户和执行路径。

  3. 流量分组:Nethogs按照进程进行流量分组,使用户可以快速了解每个进程消耗的带宽情况。

  4. 用户友好的界面:Nethogs提供一个交互式的终端界面,以表格形式展示进程、带宽和流量信息,易于理解和操作。

  5. 排序和过滤:Nethogs支持按照进程名称、PID、上传或下载流量进行排序和过滤,以便用户查找特定进程或关注特定类型的流量。

  6. 统计信息:Nethogs提供有关总体流量、平均流量和流量峰值的统计信息,帮助用户评估网络带宽的使用情况。

Nethogs是一个实用的工具,适用于需要实时监视网络带宽和了解流量消耗情况的场景。通过Nethogs,用户可以迅速发现网络中消耗带宽的进程,并根据需要进行优化和管理。

监控软件

  • cacti
  • nagios
  • zabbix:集合cacti+nagios
  • openfalcon
  • Prometheus

Prometheus

是什么

Prometheus是一个开源的系统监控和告警工具,它最初由SoundCloud开发并于2012年开源。Prometheus的目标是收集和存储系统和服务的时间序列数据,并提供强大的查询语言和灵活的告警机制,以帮助用户监控其应用程序和基础设施的健康状况。

以下是Prometheus的一些重要特点和概念:

  1. 多维度数据模型:Prometheus采用多维度数据模型来描述时间序列数据。每个数据样本都由一个指标名称和一组键值对标签组成,用于区分不同的时间序列。这种模型非常适合动态标记的数据,例如系统资源使用情况、应用程序指标等。

  2. 灵活的查询语言:Prometheus提供了PromQL(Prometheus Query Language)用于查询和聚合时间序列数据。PromQL支持强大的表达式和函数,使用户能够执行复杂的查询和计算。

  3. 数据采集和存储:Prometheus通过使用自己的数据采集器(exporter)或与其他系统集成,从目标应用程序和基础设施中收集时间序列数据。数据存储在本地时间序列数据库中,并通过基于磁盘的块存储格式进行持久化。

  4. 动态发现和服务发现:Prometheus支持动态发现目标实例,可以自动发现和监控新的实例。它还与服务发现机制(如Kubernetes的服务发现)集成,以便自动发现和监控动态变化的服务。

  5. 告警和警报管理:Prometheus具有灵活的告警规则定义和警报通知机制。用户可以定义自定义告警规则,并通过电子邮件、Slack等方式接收警报通知。

  6. 可视化和仪表板:Prometheus提供了一个内置的基本图形化界面,用于数据可视化和监控仪表板。此外,Prometheus还支持与其他监控工具(如Grafana)进行集成,以创建更复杂和丰富的仪表板。

  7. 社区支持和生态系统:Prometheus拥有庞大的活跃社区,并且具有丰富的第三方工具和库的生态系统。用户可以通过使用这些工具和库来扩展和增强Prometheus的功能。

Prometheus是一个功能强大的系统监控和告警工具,具有灵活的数据模型、查询语言和告警机制。它被广泛应用于云原生环境、容器化应用程序和微服务架构中,帮助用户实时监控和调优他们的系统和服务的性能。

组成

安装、使用

解压

tar -xf prometheus-2.45.0.linux-amd64.tar.gz 

改名

mv prometheus-2.45.0.linux-amd64 prometheus

临时修改

PATH=/prom/prometheus:$PATH

永久修改

vim /root/.bashrc 

启动

nohup prometheus --config.file=/prom/prometheus/prometheus.yml &

查看是否运行

[root@prometheus prom]# ps aux|grep prometheus
root       2015  0.8  4.3 797792 42996 pts/0    Sl   11:53   0:00 prometheus --con
root       2025  0.0  0.0 112824   980 pts/0    S+   11:54   0:00 grep --color=aut

查看Prometheus监听的端口号

[root@prometheus prom]# netstat -anplut|grep prometheus
tcp6       0      0 :::9090                 :::*                    LISTEN      2015/prometheus     
tcp6       0      0 ::1:9090                ::1:34724               ESTABLISHED 2015/prometheus     
tcp6       0      0 ::1:34724               ::1:9090                ESTABLISHED 2015/prometheus   

关闭防火墙

[root@prometheus prom]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@prometheus prom]# systemctl disable firewalld 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

看本机的http

http://192.168.2.22:9090/

将promethues做成服务

/usr/lib/systemd/system/创建prometheus.service文件

vim /usr/lib/systemd/system/prometheus.service

promethes.service文件里的代码

[Unit]
Description=prometheus
[Service]
ExecStart=/prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
~                               

重新加载 systemd 的配置文件

[root@prometheus system]# systemctl daemon-reload

systemctl启动

[root@prometheus system]# systemctl start prometheus

查看进程是否启动,启动就代表prometheus.service配置成功了

注意:

第一次如果是用nohup启动的,不能用systemctl停止,需要用kill命令

nohup prometheus --config.file=/prom/prometheus/prometheus.yml &

监控其他机器

前提:被监控的机器需要将数据导出,安装好了exporter,同时知道机器的ip和端口号

/prom/prometheus/prometheus.yml文件,修改代码如下,增加被监控机器的信息。

  - job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: "origin"static_configs:- targets: ["192.168.2.24:8090"]- job_name: "LB1"static_configs:- targets: ["192.168.2.23:8090"]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LHmxOASH-1689353423437)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\image-20230706155937291.png)]

可以看到已经收集到指定机器的数据了

exporter

https://grafana.com/grafana/download下载地址

[root@prometheus grafana]# yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.1-1.x86_64.rpm

解压

[root@ydh ~]# tar xf node_exporter-1.6.0.linux-amd64.tar.gz

移位加改名

[root@ydh ~]# mv node_exporter-1.6.0.linux-amd64 /node_exporter

修改环境变量

[root@ydh node_exporter]# PATH=/node_exporter/:$PATH[root@ydh node_exporter]# vim /root/.bashrc  		#放到该文件下永久修改

运行

[root@ydh node_exporter]# nohup node_exporter --web.listen-address 0.0.0.0:8090 &

查看node是否运行

[root@ydh node_exporter]# ps aux|grep node
root       4955  0.1  0.5 724024 11032 pts/1    Sl   15:43   0:00 node_exporter --web.listen-address 0.0.0.0:8090
root       4985  0.0  0.0 112824   988 pts/1    S+   15:43   0:00 grep --color=auto node

grafana

Grafana是一个开源的监控、度量分析和可视化工具,通常与时序数据库(如Prometheus、InfluxDB等)搭配使用。Grafana的主要功能和优点包括:

  1. 强大的图表和面板可视化。Grafana提供多样化的图表类型,如折线图、柱状图、饼图、热力图等,可以灵活制作出各种监控面板。

  2. 支持多种数据源。Grafana支持接入Prometheus、Elasticsearch、InfluxDB、MySQL等多种时序数据库作为数据源。

  3. 自定义监控仪表板。用户可以通过简单的配置就能快速构建自定义的监控仪表盘,方便查看应用或系统的运行状态。

  4. 丰富的插件系统。Grafana有700多个插件,可以实现警报、访问控制、自动化任务等扩展功能。

  5. 多用户多权限管理。Grafana可以创建不同的组织和用户,以实现灵活的访问控制。

  6. 模板变量和钻取功能。模板变量可以实现交互式的监控面板;钻取功能可以快速探查和关联问题。

  7. 企业级特性。Grafana Enterprise版提供了高级特性,如高可用性、增强的安全控制、数据源权限控制等。

  8. 开源与免费。Grafana是一个成熟的开源软件,社区活跃,使用免费。也提供企业版的高级功能。

总体来说,Grafana是一个功能强大且易于使用的开源监控 visualize 工具,可以快速搭建出美观实用的监控系统,因此被广泛应用于各类监控场景。

配置、使用

下载

[root@prometheus ~]# yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.1-1.x86_64.rpm

启动

[root@prometheus ~]# service grafana-server start
Starting grafana-server (via systemctl):                   [  确定  ]

开机自启

[root@prometheus ~]# systemctl enable grafana-server

查看进程是否启动

[root@prometheus ~]# ps aux|grep grafana

查看端口号

[root@prometheus ~]# netstat -anplut|grep grafana
tcp        0      0 192.168.2.22:35768      34.120.177.193:443      ESTABLISHED 1529/grafana        
tcp6       0      0 :::3000                 :::*                    LISTEN      1529/grafana        

监听端口号是3000

在浏览器上登录

http://192.168.2.22:3000/

默认的用户名和密码都是:admin

grafana配置数据源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-COVr41rx-1689353423438)(D:\Snipaste\03【电脑截图软件】snipaste截图软件\Typora\运维\Prometheus\配置源.png)]

grafana导入模版

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKgWXiIQ-1689353423439)(D:\Snipaste\03【电脑截图软件】snipaste截图软件\Typora\运维\Prometheus\配置源.png)]

nginx的1860画面
在这里插入图片描述

在这里插入图片描述
nginx的8919画面

在这里插入图片描述

在这里插入图片描述

密码忘记重置

grafana-cli admin reset-admin-password '新密码'
systemctl restart grafana-server
grafana-cli admin reset-admin-password 123456

相关文章:

Prometheus、Grafana使用

文章目录 系统性能监控相关命令lscputopfreehtopdstatglancesiftopiptrafnethogs 监控软件Prometheus安装、使用将promethues做成服务监控其他机器 exportergrafana配置、使用密码忘记重置 系统性能监控 相关命令 lscpu lscpu 是一个 Linux 命令&#xff0c;用于显示关于 CP…...

UG\NX二次开发 使用throw重新抛出异常

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan 简介&#xff1a; 在异常处理代码中&#xff0c;可以使用 throw 关键字来抛出异常。如果希望在捕获异常后重新抛出该异常&#xff0c;可以使用类似以下的代码&#xff1a; 在 …...

为什么单片机可以直接烧录程序的原因是什么?

单片机&#xff08;Microcontroller&#xff09;可以直接烧录程序的原因主要有以下几点&#xff1a; 集成性&#xff1a;单片机是一种高度集成的芯片&#xff0c;内部包含了处理器核心&#xff08;CPU&#xff09;、存储器&#xff08;如闪存、EEPROM、RAM等&#xff09;、输入…...

使用 uiautomator2+pytest+allure 进行 Android 的 UI 自动化测试

目录 前言&#xff1a; 介绍 pytest uiautomator2 allure 环境搭建 pytest uiautomator2 allure pytest 插件 实例 初始化 driver fixture 机制 数据共享 测试类 参数化 指定顺序 运行指定级别 重试 hook 函数 断言 运行 运行某个文件夹下的用例 运行某…...

Android APP性能及专项测试

Android篇 1. 性能测试 Android性能测试分为两类&#xff1a; 1、一类为rom版本&#xff08;系统&#xff09;的性能测试 2、一类为应用app的性能测试Android的app性能测试包括的测试项比如&#xff1a; 1、资源消耗 2、内存泄露 3、电量功耗 4、耗时 5、网络流量消耗 6、移动…...

人工智能自然语言处理:N-gram和TF-IDF模型详解

人工智能自然语言处理&#xff1a;N-gram和TF-IDF模型详解 1.N-gram 模型 N-Gram 是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作&#xff0c;形成了长度是 N 的字节片段序列。 每一个字节片段称为 gram&#xff0c;对所…...

linux内核调试工具记录

Linux性能测试使用的工具在github网站可见&#xff0c;网址如下&#xff1a; slides: http://www.slideshare.net/brendangregg/linux-performance-analysis-new-tools-and-old-secrets video: https://www.usenix.org/conference/lisa14/conference-program/presentation/greg…...

XSS 攻击的检测和修复方法

XSS 攻击的检测和修复方法 XSS&#xff08;Cross-Site Scripting&#xff09;攻击是一种最为常见和危险的 Web 攻击&#xff0c;即攻击者通过在 Web 页面中注入恶意代码&#xff0c;使得用户在访问该页面时&#xff0c;恶意代码被执行&#xff0c;从而导致用户信息泄露、账户被…...

Spring后置处理器BeanFactoryPostProcessor与BeanPostProcessor源码解析

文章目录 一、简介1、BeanFactoryPostProcessor2、BeanPostProcessor 二、BeanFactoryPostProcessor 源码解析1、BeanDefinitionRegistryPostProcessor 接口实现类的处理流程2、BeanFactoryPostProcessor 接口实现类的处理流程3、总结 三、BeanPostProcessor 源码解析 一、简介…...

NXP i.MX 6ULL工业开发板硬件说明书( ARM Cortex-A7,主频792MHz)

前 言 本文档主要介绍TLIMX6U-EVM评估板硬件接口资源以及设计注意事项等内容。 创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板&#xff0c;由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证&#xff0c;稳…...

Ubuntu 放弃了战斗向微软投降

导读这几天看到 Ubuntu 放弃 Unity 和 Mir 开发&#xff0c;转向 Gnome 作为默认桌面环境的新闻&#xff0c;作为一个Linux十几年的老兵和Linux桌面的开发者&#xff0c;内心颇感良多。Ubuntu 做为全世界Linux界的桌面先驱者和创新者&#xff0c;突然宣布放弃自己多年开发的Uni…...

高并发的哲学原理(六)-- 拆分网络单点(下):SDN 如何替代百万人民币的负载均衡硬件

上一篇文章的末尾&#xff0c;我们利用负载均衡器打造了一个五万 QPS 的系统&#xff0c;本篇文章我们就来了解一下负载均衡技术的发展历程&#xff0c;并一起用 SDN&#xff08;软件定义网络&#xff09;技术打造出一个能够扛住 200Gbps 的负载均衡集群。 负载均衡发展史 F5 …...

用OpenCV进行图像分割--进阶篇

1. 引言 大家好&#xff0c;我的图像处理爱好者们&#xff01; 在上一篇幅中&#xff0c;我们简单介绍了图像分割领域中的基础知识&#xff0c;包含基于固定阈值的分割和基于OSTU的分割算法。这一次&#xff0c;我们将通过介绍基于色度的分割来进一步巩固大家的基础知识。 闲…...

Spring框架概述及核心设计思想

文章目录 一. Spring框架概述1. 什么是Spring框架2. 为什么要学习框架&#xff1f;3. Spring框架学习的难点 二. Spring核心设计思想1. 容器是什么&#xff1f;2. IoC是什么&#xff1f;3. Spring是IoC容器4. DI&#xff08;依赖注入&#xff09;5. DL&#xff08;依赖查找&…...

Unity自定义后处理——Vignette暗角

大家好&#xff0c;我是阿赵。   继续说一下屏幕后处理的做法&#xff0c;这一期讲的是Vignette暗角效果。 一、Vignette效果介绍 Vignette暗角的效果可以给画面提供一个氛围&#xff0c;或者模拟一些特殊的效果。 还是拿这个角色作为底图 添加了Vignette效果后&#xff0…...

Java读取Excel 单元格包含换行问题

Java读取Excel 单元格包含换行问题 需求解决方案 需求 针对用户上传的Excel数据&#xff0c;或者本地读取的Excel数据。单元格中包含了换行&#xff0c;导致读取的数据被进行了切片。 正常读取如下图所示。 解决方案 目前是把数据读取出来的cell转成字符串后&#xff0c;…...

Django实现接口自动化平台(十)自定义action names【持续更新中】

相关文章&#xff1a; Django实现接口自动化平台&#xff08;九&#xff09;环境envs序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 深入理解DRF中的Mixin类_做测试的喵酱的博客-CSDN博客 python中Mixin类的使用_做测试的喵酱的博客-CSDN博客 本章是项目的一…...

[爬虫]解决机票网站文本混淆问题-实战讲解

前言 最近有遇到很多小伙伴私信向我求助&#xff0c;遇到的问题基本上都是关于文本混淆或者是字体反爬的问题。今天给大家带来其中一个小伙伴的实际案例给大家讲讲解决方法 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 ​​ 个人推荐python学习系列&#xff1a; ☄️爬虫J…...

【已解决】Flask项目报错AttributeError: ‘Request‘ object has no attribute ‘is_xhr‘

文章目录 报错及分析报错代码分析 解决方案必要的解决方法可能有用的解决方法 报错及分析 报错代码 File "/www/kuaidi/6f47274023d4ad9b608f078c76a900e5_venv/lib/python3.6/site-packages/flask/json.py", line 251, in jsonifyif current_app.config[JSONIFY_PR…...

【Java基础教程】Java学习路线攻略导图——史诗级别的细粒度归纳,持续更新中 ~

Java学习路线攻略导图 上篇 前言1、入门介绍篇2、程序基础概念篇3、包及访问权限篇4、异常处理篇5、特别篇6、面向对象篇7、新特性篇8、常用类库篇 前言 &#x1f37a;&#x1f37a; 各位读者朋友大家好&#xff01;得益于各位朋友的支持和关注&#xff0c;我的专栏《Java基础…...

DAY 36神经网络加速器easy

仔细回顾一下神经网络到目前的内容&#xff0c;没跟上进度的同学补一下进度。 ●作业&#xff1a;对之前的信贷项目&#xff0c;利用神经网络训练下&#xff0c;尝试用到目前的知识点让代码更加规范和美观。 ●探索性作业&#xff08;随意完成&#xff09;&#xff1a;尝试进入…...

C++.双指针算法(1.1目录修正)

C.双指针算法 1. 双指针算法概述1.1 双指针算法的定义1.2 双指针算法的应用场景1.2.1 数组中的两数之和问题1.2.2 链表中的环检测问题1.2.3 滑动窗口问题1.2.4 有序数组的合并问题 2. 双指针算法的实现基础2.1 指针的基本概念2.2 指针的运算操作 3. 双指针算法的常见类型及示例…...

【从零开始学习QT】信号和槽

目录 一、信号和槽概述 信号的本质 槽的本质 二、信号和槽的使用 2.1 连接信号和槽 2.2 查看内置信号和槽 2.3 通过 Qt Creator 生成信号槽代码 自定义槽函数 自定义信号 自定义信号和槽 2.4 带参数的信号和槽 三、信号与槽的连接方式 3.1 一对一 &#xff08;1&…...

NodeJS全栈WEB3面试题——P5全栈集成与 DApp 构建

5.1 如何实现一个完整的 Web3 登录流程&#xff08;前端 后端&#xff09;&#xff1f; ✅ 核心机制&#xff1a;钱包签名 后端验签 Web3 登录是基于“消息签名”来验证用户链上身份&#xff0c;而非传统用户名/密码。 &#x1f4bb; 前端&#xff08;使用 MetaMask&#…...

Java生态中的NLP框架

Java生态系统中提供了多个强大的自然语言处理(NLP)框架&#xff0c;以下是主要的NLP框架及其详细说明&#xff1a; 1、Apache OpenNLP ​简介​&#xff1a;Apache OpenNLP是Apache软件基金会的开源项目&#xff0c;提供了一系列常用的NLP工具。 ​主要功能​&#xff1a; …...

VScode编译调试debug,gpu的cuda程序,Nsight

进行下面操作的前提是&#xff0c;我们的环境已经能跑简单的CUDA程序了。 一、安装Nsight 二、创建launch.json文件 {"version": "0.2.0","configurations": [{"name": "CUDA C: Launch","type": "cuda-gdb…...

StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践

导读&#xff1a; 本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术&#xff0c;详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划&#xff0c;为您提供全面的技术解…...

JVM——云原生时代JVM的演进之路

引入 在风云变幻的技术世界里&#xff0c;JVM&#xff08;Java Virtual Machine&#xff09;作为 Java 语言的基石&#xff0c;长久以来承载着无数开发者构建软件系统的梦想。从 20 世纪 90 年代 Java 的诞生&#xff0c;到如今云原生时代的大幕拉开&#xff0c;JVM 经历了岁月…...

Pull Request Integration 拉取请求集成

今天我想要把我创建的项目&#xff0c;通过修改yaml里面的内容&#xff0c;让我在main分支下的其他分支拉取请求的时候自动化测试拉取的内容&#xff0c;以及将测试结果上传到控制台云端。 首先我通过修改yaml文件里面的内容 name: Build and Teston:push:branches:- mainjobs:…...

NodeJS全栈开发面试题讲解——P10微服务架构(Node.js + 多服务协作)

✅ 10.1 单体架构和微服务的主要区别是什么&#xff1f; 维度单体架构微服务架构模块组织所有功能打包在一个代码仓库中拆分为多个独立服务部署方式部署一次包含全部逻辑各服务独立部署、独立扩缩容开发协作多人协作易冲突团队按服务划分&#xff0c;职责清晰可维护性功能多时…...