文章目录

  • 系统性能监控
    • 相关命令
      • 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 :指定刷新间隔的时间间隔(以秒为单位)。
  • -c :指定输出的次数后退出。
  • -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 prometheusroot 20150.84.3 797792 42996 pts/0Sl 11:53 0:00 prometheus --conroot 20250.00.0 112824 980 pts/0S+ 11:54 0:00 grep --color=aut

查看Prometheus监听的端口号

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

关闭防火墙

[root@prometheus prom]# service firewalld stopRedirecting 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.ymlExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=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"]

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

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 noderoot 49550.10.5 724024 11032 pts/1Sl 15:43 0:00 node_exporter --web.listen-address 0.0.0.0:8090root 49850.00.0 112824 988 pts/1S+ 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 startStarting grafana-server (via systemctl): [确定]

开机自启

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

查看进程是否启动

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

查看端口号

[root@prometheus ~]# netstat -anplut|grep grafanatcp00 192.168.2.22:3576834.120.177.193:443ESTABLISHED 1529/grafanatcp6 00 :::3000 :::*LISTEN1529/grafana

监听端口号是3000

在浏览器上登录

http://192.168.2.22:3000/

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

grafana配置数据源

grafana导入模版

nginx的1860画面


nginx的8919画面

密码忘记重置

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