监控 -- linux中的一些系统性能状态指令、Prometheus

news2024/10/7 18:21:27

目录

    • 监控
      • 查看性能相关命令
      • Prometheus
        • 1、安装和配置
        • 2、将 NFS服务器和LB服务器作为exporter采集数据
        • 3、在prometheus server里添加安装exporter程序的服务器
      • grafana出图工具

监控

监控的目的是获取数据,通过数据分析了解机器是否正常运行

查看性能相关命令

  • 查看cpu详细信息: lscpucat /proc/cpuinfo

  • 查看CPU使用率: top (一行一个进程,默认以CPU使用率排序)

    %Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    

    当mysqld进程进行读写操作大多时候,调用系统调用如read()、write()、fork()等,系统调用就是操作系统给其他应用程序的接口,也就是实现某个功能的程序

    • us:用户空间(User Space)CPU使用率,表示用户进程所占用的CPU时间百分比。
    • sy:系统空间(System Space)CPU使用率,表示内核进程所占用的CPU时间百分比。
    • ni:nice值(Nice Value)CPU使用率,表示以较低优先级运行的进程所占用的CPU时间百分比。
    • id:空闲(Idle)CPU时间百分比,表示CPU处于空闲状态的时间百分比。
    • wa:等待(Wait)CPU时间百分比,表示CPU等待I/O操作完成的时间百分比。
    • hi:硬中断(Hardware Interrupt)CPU时间百分比,表示处理硬件中断的时间百分比。
    • si:软中断(Software Interrupt)CPU时间百分比,表示处理软件中断的时间百分比。
    • st:偷取(Steal)CPU时间百分比,表示虚拟机(如果在虚拟化环境中运行)被物理主机偷取的CPU时间百分比。

    top交互命令:
    在这里插入图片描述

    htop 命令:

    yum install epel-release -y
    yum install htopz
    

    在top命令的输出中看到系统的负载平均值:

    top - 10:13:26 up 19:20,  2 users,  load average: 0.00, 0.02, 0.05
    

    Load Average 显示在 load average: 后面的三个数字,分别是 1 分钟、5 分钟和 15 分钟的平均负载
    系统平均负载是指过去的1分钟,5分钟,15分钟处于可运行或就绪或阻塞或不可中断的进程的平均数量
    假如系统有n个核心,这个平均数量超过n就说明系统比较繁忙了,但如果不超过5n就说明还没有达到最忙的时候

  • 查看内存使用情况 free -m ,默认以kb为单位,接-m以M为单位

    [root@lb-2 keepalived]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1819         240        1270           9         308        1419
    Swap:          2047           0        2047
    
    • Men :物理内存,即内存条的大小

    • Swap :交换分区的内存大小,交换分区是从磁盘里划分出来的一块空间临时做内存使用的,当物理内存不足的时候,将不活跃的进程交换到swap分区里。但由于交换分区速度慢,尽量不使用

      [root@lb-2 keepalived]# cat /proc/sys/vm/swappiness 
      30
      # 当物理内存只剩下30%的时候,开始使用交换分区,临时修改为0%
      echo 0 >/proc/sys/vm/swappiness 
      
    • total:物理内存的总量

    • used:已用内存的总量。已用内存是当前被系统和应用程序使用的内存。

    • free:可用内存的总量。可用内存是当前未被使用的内存,可以用于新的进程和应用程序。

    • shared:共享内存的总量。共享内存是被多个进程共享的内存区域。在这里,共享内存为9 MB。

    • buff/cache:用于缓存的内存总量。这包括用于文件系统缓存和磁盘I/O缓存的内存。buff:内存的数据读取到磁盘的时候,先写到buffer里,等buffer满了再写到磁盘,减少IO读写次数。cache:磁盘的数据读取到内存的时候,先写在cache里,提升速度。

    • available:下一个进程可用内存的估计总量。这是系统根据当前内存使用情况和缓存来估计的可用内存量。
      available = free + buff/cache里的未使用完的空间

  • 查看网络流量: dstatiptrafglances

    • dstat

      [root@lb-2 keepalived]# dstat
      
      You did not select any stats, using -cdngy by default.
      ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
      usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
        0   0 100   0   0   0|4124B 1644B|   0     0 |   0     0 | 101   134 
        1   1  99   0   0   0|   0     0 | 180B 1024B|   0     0 | 139   161 
        0   1  99   0   0   0|   0     0 | 120B  398B|   0     0 | 141   174 
        1   1  99   0   0   0|   0     0 | 120B  398B|   0     0 | 121   145 
      
      [root@lb-2 keepalived]# dstat -N ens33
      You did not select any stats, using -cdngy by default.
      ----total-cpu-usage---- -dsk/total- -net/ens33- ---paging-- ---system--
      usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
        0   0 100   0   0   0|4122B 1692B|   0     0 |   0     0 | 101   134 
        0   0  99   0   0   0|   0     0 | 120B  878B|   0     0 | 123   157 
        0   0 100   0   0   0|   0     0 | 120B  398B|   0     0 | 132   160 
      
      [root@lb-2 keepalived]# dstat -N ens33,total -am
      ----total-cpu-usage---- -dsk/total- -net/ens33---net/total- ---paging-- ---system-- ------memory-usage-----
      usr sys idl wai hiq siq| read  writ| recv  send: recv  send|  in   out | int   csw | used  buff  cach  free
        0   0 100   0   0   0|4113B 1695B|   0     0 :   0     0 |   0     0 | 101   134 | 309M 2108k  306M 1202M
        0   0 100   0   0   0|   0     0 | 120B 1214B: 120B 1214B|   0     0 | 125   157 | 310M 2108k  306M 1201M
        1   1  99   0   0   0|   0     0 | 120B  534B: 120B  534B|   0     0 | 123   155 | 310M 2108k  306M 1201M
      
      
    • glances

    • iftop

    • iptraf :也可以抓包

    • nethogs

Prometheus

Prometheus:开源的监控软件

其他监控软件:
cacti:仙人掌。出图比较好
nagios:监控脚本多
zabbix:集合cacti和nagios的优点
openfalcon:小米公司开元的监控软件

组件:
1、tsdb:时序数据库time series database。
2、http server:web服务
3、push gateway:中间件(代理)
4、altermanager:告警软件
5、exporter:收集数据,采集数据

出图工具:grafana – 展示数据

1、安装和配置

  1. 在监控服务器(192.168.232.166)上编译安装

    首先在官网上下载源码包https://prometheus.io/download/
    在这里插入图片描述

    将下载好的源码包传到监控服务器,解压
    在这里插入图片描述

  2. 临时和永久修改PATH变量,添加prometheus路径

    PATH=/prom/prometheus:$PATH
    [root@prometheus prometheus]# cat /root/.bashrc
    # .bashrc
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
    	. /etc/bashrc
    fi
    PATH=/prom/prometheus:$PATH    # 添加的信息
    
  3. 启动prometheus服务,并让他在后台运行,不受到终端关闭的影响(Prometheus监听9090端口)

    nohup prometheus --config.file=/prom/prometheus/prometheus.yml &
    
  4. 关闭防火墙,并设置永久关闭。然后就可以在服务器上输入192.168.232.166:9090看到监控页面了

    service firewalld stop
    systemctl disable firewalld
    
  5. 将源码二进制安装的Prometheus配置成一个服务,便于管理

    [root@prometheus prometheus]# cat /usr/lib/systemd/system/prometheus.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 prometheus]# systemctl daemon-reload
    
    

    将之前使用nohup方式启动的Prometheus服务杀死,再使用以下命令开启

    service prometheus start
    

容器安装prometheus:

docker run -d -p 9090:9090 --name sc-prom-1 prom/prometheus

2、将 NFS服务器和LB服务器作为exporter采集数据

  1. 在官网上下载node节点源码包,解压
    在这里插入图片描述

    tar xf node_exporter-1.6.1.linux-amd64.tar.gz
    mv node_exporter-1.6.1.linux-amd64 /node_exporter
    cd /node_exporter/
    
    
  2. 修改PATH变量

    PATH=/node_exporter/:$PATH
    
    [root@lb node_exporter]# cat /root/.bashrc
    # .bashrc
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
    	. /etc/bashrc
    fi
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/scnginx99/sbin:/usr/local/scnginx99/sbin
    PATH=/node_exporter/:$PATH
    
    
  3. 启动exporter服务,并让他在后台运行,不受到终端关闭的影响(自定义exporter监听8090端口)

    nohup node_exporter --web.listen-address 0.0.0.0:8090 &
    
  4. 在浏览器上访问node节点上的metrics(指标)

    http://192.168.232.164:8090/metrics
    

3、在prometheus server里添加安装exporter程序的服务器

[root@prometheus prometheus]# pwd
/prom/prometheus
[root@prometheus prometheus]# cat prometheus.yml

# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "LB1"
    static_configs:
      - targets: ["192.168.232.161:8090"]
  - job_name: "LB2"
    static_configs:
      - targets: ["192.168.232.165:8090"]
  - job_name: "NFS"
    static_configs:
      - targets: ["192.168.232.164:8090"]

修改完之后记得重启服务

然后再去浏览器查看监控页面,就可以看到LB和NFS的相关信息了
在这里插入图片描述

grafana出图工具

  1. 将grafana和prometheus安装在一台机器上

    官网https://dl.grafana.com/enterprise/release/grafana-enterprise-10.1.1-1.x86_64.rpm下载rpm包,传入prometheus服务器中

    [root@prometheus grafana]# ls
    grafana-enterprise-10.1.1-1.x86_64.rpm
    [root@prometheus grafana]# yum install grafana-enterprise-10.1.1-1.x86_64.rpm 
    
    service grafana-server start
    systemctl enable grafana-server
    

    grafana监听3000端口

    可以在浏览器上访问,用户和密码都为 admin

  2. 配置prometheus的数据源,导入模版
    在这里插入图片描述
    在这里插入图片描述

    这里输入Prometheus的IP地址和端口号
    在这里插入图片描述
    在这里插入图片描述

    导入出图模版
    在这里插入图片描述
    在这里插入图片描述

好模版编号:1860、8919

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R7 7840U和r7 6800u差距 锐龙R77840U和6800u对比

锐龙7 7840U 采用Zen3架构、8核心16线程&#xff0c;基准频率疑似3.3GHz&#xff0c;同样集成RDNA3架构核显Radeon 780M&#xff0c;也是12个CU单元 r7 7840U 的处理器在 Cinebench R23 中多核跑分 14825 分 选R7 7840U还是r7 6800u这些点很重要 http://www.adiannao.cn/dy r…

CMAK学习

VS中的cmake_cmake vs_今天也要debug的博客-CSDN博客 利用vs2017 CMake开发跨平台C项目实战_cmake vs2017_神气爱哥的博客-CSDN博客 【【入门】在VS中使用CMake管理若干程序】https://www.bilibili.com/video/BV1iz4y117rZ?vd_source0aeb782d0b9c2e6b0e0cdea3e2121eba

Nacos服务健康检查与服务变动事件发布源码解析

目录 1 快速入门使用2 源码解析2.1 环境准备2.2 查看实例列表源码分析2.3 nacos与zk的不同 :2.4 nacos服务发现2.5 nacos的心跳机制和服务健康检查的逻辑 1 快速入门使用 SpringCloud Nacos配置中心&#xff1a;https://blog.csdn.net/ZGL_cyy/article/details/113621565 Sprin…

前端瀑布流效果

先看效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &l…

MT8788安卓核心板详细参数_MTK安卓主板开发板智能通讯模块

MT8788安卓核心板集成了一个高效的12nm SoC&#xff0c;内置4G LTE调制解调器&#xff0c;将强大的硬件与到处可连接的全面功能设计相结合。 MTK8788智能终端具备许多功能&#xff0c;包括4G、2.4G/5G双频WiFi、蓝牙4.2BLE、2.5W功放、USB、mipi屏接口、三路摄像头接口、GPS和…

Day 39 动态规划part02 : 62.不同路径 63. 不同路径 II

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xf…

Pandas小白入门散记(3)---Series.str--源代码定位问题

文章目录 问题点原因解释 碰到了&#xff0c;一个错误&#xff0c;debug才定位到问题&#xff0c;记录一下。 本次最大收获是&#xff0c;pandas果然代码逻辑复杂&#xff0c;一个小小的异常捕捉&#xff0c;处处是门道。。。。。。 希望本次浅显的代码阅读过程&#xff0c;给…

使用element-ui导航,进入对应的三级页面菜单保持点击状态

1.注意事项 01.路由中使用了keepAlive属性&#xff0c;要用keepAlive&#xff1a;true&#xff0c;不能等于false&#xff0c;使用false页面会刷新 2.使用的方法 NavMenu 导航菜单 3.项目实例 <template><div class"policy-home"><div class"…

QHttpServer

QLineEdit-----输入提示 改动CmakeLists.txt 在帮助–索引查找QHttpServer 改动CmakeLists.txt&#xff0c;有三处改动 在谷歌浏览器测试&#xff0c;输入127.0.0.1/api/login 测试代码 #include<QCoreApplication> #include <QHttpServer> //http服务器 int m…

查看显卡显存

1、cmd或者终端输入&#xff1a; nvidia-smi4096为显存总大小&#xff0c;1228为目前使用的显存大小 2、或者在编辑器中直接安装gpustat包进行查看 pip install gpustat gpustat -cpuigpustat -cpui用于查看当前GPU使用情况 更直观&#xff1f; CtrlC 退出

小白学go基础06-了解切片实现原理并高效使用

slice&#xff0c;中文多译为切片&#xff0c;是Go语言在数组之上提供的一个重要的抽象数据类型。在Go语言中&#xff0c;对于绝大多数需要使用数组的场合&#xff0c;切片实现了完美替代。并且和数组相比&#xff0c;切片提供了更灵活、更高效的数据序列访问接口。 切片究竟是…

JavaScript-----函数

目录 前言&#xff1a; JavaScript函数 1. 定义函数 构造函数 2. 调用函数 函数的自执行 3. 函数的参数 4. 函数返回值 5. 作用域 6. 匿名函数 7. this指向性问题&#xff08;重点&#xff09; 7.1 this的性质 7.2 call的用法 7.3 apply的用法 7.4 bind的用法&a…

KMP超高效匹配算法

简介&#xff1a; KMP算法是一种改进的字符串匹配算法&#xff0c;其中&#xff0c;KMP算法的运用核心是利用匹配失败后的信息&#xff0c;最大进度的减少模式串与目标串的匹配次数以达到快速匹配的效果。算法与暴力求解的改进在于每当一趟匹配过程中出现的字符比较不相等时&am…

无涯教程-JavaScript - NOW函数

描述 NOW函数返回当前日期和时间的序列号。 语法 NOW ()争论 NOW函数语法没有参数。 Notes 如果在输入功能之前单元格格式为"常规",则Excel会更改单元格格式,使其与您的区域设置的日期和时间格式匹配。您可以使用功能区"主页"options卡"数字&quo…

Java学习笔记——34多线程01

多线程 实现多线程进程和线程的区别多线程的实现方式方式一&#xff1a;继承Thread类设置线程名称线程调度线程控制线程生命周期 方式二&#xff1a;实现Runnable接口 实现多线程 进程和线程的区别 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位每一…

文章预览 安防监控/视频存储/视频汇聚平台EasyCVR播放优化小tips

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成&#xff0c;…

IG 自动回复:提供无间断客户互动体验

图片来源于&#xff1a;SaleSmartly官网 2023&#xff0c;Instagram拥有将近13亿的月活跃用户&#xff0c;在香港拥有超过400万活跃用户。 Instagram 以图片、长短影片、直播等高互动性的互动方式&#xff0c;吸引了广大的年轻族群&#xff0c;34岁以下的用户即占比了将近全球整…

Day55|动态规划part16:583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

583. 两个字符串的删除操作 leetcode链接&#xff1a;力扣题目链接 视频链接&#xff1a;&#xff1a;LeetCode&#xff1a;583.两个字符串的删除操 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。每步 可以删除任意一个字符串中的…

两个路由器如何连接设置的方法攻略

一、前言 随着智能家居时代来临&#xff0c;家里的网络部署需求开始复杂起来。往往一个路由器已经不能满足需求或者不利于拓展。两个路由器连接最常见的情况是家中已有一个路由器&#xff0c;并且已经通过这个路由器来正常上网。现在是因某些原因想在不改变已经在用的路由器的设…

mysql 字段用了关键字, 无法插入更新数据

1. 表字段用了关键字 explain 2. sql语句中用包裹住关键字 (注意不是单引号) <if test"explain ! null">explain,</if>