监控 -- linux中的一些系统性能状态指令、Prometheus
目录
- 监控
- 查看性能相关命令
- Prometheus
- 1、安装和配置
- 2、将 NFS服务器和LB服务器作为exporter采集数据
- 3、在prometheus server里添加安装exporter程序的服务器
- grafana出图工具
监控
监控的目的是获取数据,通过数据分析了解机器是否正常运行
查看性能相关命令
-
查看cpu详细信息:
lscpu、cat /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.05Load Average 显示在
load average:后面的三个数字,分别是 1 分钟、5 分钟和 15 分钟的平均负载
系统平均负载是指过去的1分钟,5分钟,15分钟处于可运行或就绪或阻塞或不可中断的进程的平均数量
假如系统有n个核心,这个平均数量超过n就说明系统比较繁忙了,但如果不超过5n就说明还没有达到最忙的时候 -
查看内存使用情况
free -m,默认以kb为单位,接-m以M为单位[root@lb-2 keepalived]# free -mtotal 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里的未使用完的空间
-
-
查看网络流量:
dstat、iptraf、glances-
dstat[root@lb-2 keepalived]# dstatYou 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 free0 0 100 0 0 0|4113B 1695B| 0 0 : 0 0 | 0 0 | 101 134 | 309M 2108k 306M 1202M0 0 100 0 0 0| 0 0 | 120B 1214B: 120B 1214B| 0 0 | 125 157 | 310M 2108k 306M 1201M1 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、安装和配置
-
在监控服务器(192.168.232.166)上编译安装
首先在官网上下载源码包https://prometheus.io/download/

将下载好的源码包传到监控服务器,解压

-
临时和永久修改PATH变量,添加prometheus路径
PATH=/prom/prometheus:$PATH [root@prometheus prometheus]# cat /root/.bashrc # .bashrc# User specific aliases and functionsalias 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 # 添加的信息 -
启动prometheus服务,并让他在后台运行,不受到终端关闭的影响(Prometheus监听9090端口)
nohup prometheus --config.file=/prom/prometheus/prometheus.yml & -
关闭防火墙,并设置永久关闭。然后就可以在服务器上输入
192.168.232.166:9090看到监控页面了service firewalld stop systemctl disable firewalld -
将源码二进制安装的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采集数据
-
在官网上下载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/ -
修改PATH变量
PATH=/node_exporter/:$PATH[root@lb node_exporter]# cat /root/.bashrc # .bashrc# User specific aliases and functionsalias 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 -
启动exporter服务,并让他在后台运行,不受到终端关闭的影响(自定义exporter监听8090端口)
nohup node_exporter --web.listen-address 0.0.0.0:8090 & -
在浏览器上访问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出图工具
-
将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-servergrafana监听3000端口
可以在浏览器上访问,用户和密码都为
admin -
配置prometheus的数据源,导入模版


这里输入Prometheus的IP地址和端口号


导入出图模版


好模版编号:1860、8919
相关文章:
监控 -- linux中的一些系统性能状态指令、Prometheus
目录 监控查看性能相关命令Prometheus1、安装和配置2、将 NFS服务器和LB服务器作为exporter采集数据3、在prometheus server里添加安装exporter程序的服务器 grafana出图工具 监控 监控的目的是获取数据,通过数据分析了解机器是否正常运行 查看性能相关命令 查看c…...
跳槽面试:如何转换工作场所而不失去优势
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
TINA如何导入spice模型
本文介绍如何使用TINA仿真运算放大器电路。TINA是TI公司自己的spice仿真软件,各个大厂为了更好的让客户使用自己的器件,都纷纷推出自己的仿真软件,ADI也有类似的软件,有机会我们介绍,这期我们主要简单介绍下如何使用TI…...
C. MEX Repetition Pinely Round 2 (Div. 1 + Div. 2)
Problem - C - Codeforces 题目大意:有一个长度为n的数组,数组中每个数字互不相同,范围都是0到n,每次操作将每一个数字从左到右依次变成当前数组的MEX,问k次操作后的数组 1<n<1e5;1<k<1e9 思…...
C++ 运算符
一键三连支持一下吧 C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑…...
数据结构day07(栈和队列)
今日任务 链式队列: head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <stdlib.h>typedef int datatype; typedef struct link_list{datatype data;struct link_list* next; }link,*linkp; typedef struct circulate_line_t…...
八、Linux中的用户与文件权限
1、普通用户与特权用户 (1)在Linux中,和windows中一样。用户分为普通用户和特权用户。 特权用户:拥有系统管理的绝对权限。普通用户:普通用户的权限受到限制,只拥有基本的权限,某些操作没有权限。 (2)Linux中的特权…...
岛屿数量 -- 二维矩阵的dfs算法
岛屿数量 又被称为 FloodFill 算法 class NumIslands:"""floodFill 算法https://leetcode.cn/problems/number-of-islands/"""def solution(self, grid: List[List[str]]) -> int:res 0m, n len(grid), len(grid[0])for i in range(m):for…...
JDBC学习汇总
概念 JDBC:JDBC是Java提供的一套用来操作数据库的接口 通过Java代码操作数据库 1.确定数据库是可以正常使用(MySQL服务是否正常开启) 2.确定MySQL的账号和密码是正确的 3.确定MySQL版本和MySQL驱动版本匹配 4.在工程(module&#…...
HarmonyOS—UI开发性能提升的推荐方法
注:本文转载自HarmonyOS官网文档 开发者若使用低性能的代码实现功能场景可能不会影响应用的正常运行,但却会对应用的性能造成负面影响。本章节列举出了一些可提升性能的场景供开发者参考,以避免应用实现上带来的性能劣化。 使用数据懒加载 开…...
英文科技论文写作与发表-常见英语写作困扰(第3章)
1.常见英语写作困扰 英语写作应该是越精炼越好。写完一个句子,建议尝试删除某个或某些单词,如果删除后句子意义基本不变,就应该删除。 1.1 所有格 使用所有格可以省去至少一个单词(of),如:Kangs book T…...
video标签自动播放音视频并绘制波形图
html中的<video>标签可以用来播放常见的音视频格式,支持的格式包括:MP3、Ogg、WAV、AAC、MP4、WebM、AVI等,当然支持的格式也和浏览器和操作系统有关。这里以一个可以自动播放音视频并绘制波形图的页面为例说明一下<video>标签的用法。 vid…...
Netty—EventLoop
文章目录 一、EventLoopGroup 是什么?🤔️二、NioEventLoop 有哪些重要组成部分?🔍三、NioEventLoop 的 thread 在何时启动?三、 run() 方法中线程在干嘛? 一、EventLoopGroup 是什么?…...
[极客大挑战 2019]FinalSQL(bypass盲注)
这里是数字型注入,选择一个序号 fuzz ?id1这里过滤了很多东西 使用fuzzSQL字典,这是我自己定义编写的一个fuzz字典,内容较少 select from information . tables whereand " or | & union columns updatexml extractvalue databa…...
如何实现小程序与h5页面间的跳转
接到新需求,要在小程序页面内点击按钮实现跳转h5,一开始没接触过,还挺头疼的,但真正做起来,也就那么一回事啦,废话少说,直接上 1. 配置域名 先登录小程序开发平台,将页面需要跳转的…...
企业架构LNMP学习笔记9
nginx配置文件定义php-fpm服务: 编写测试文件: vim /usr/local/nginx/html/index.php 内容: <?phpphpinfo(); 在nginx的配置文件中配置: 修改配置文件,告知nginx如果收到.php结尾的请求,交由给php-…...
华为OD机试 - 二维伞的雨滴效应(Java JS Python)
题目描述 普通的伞在二维平面世界中,左右两侧均有一条边,而两侧伞边最下面各有一个伞坠子,雨滴落到伞面,逐步流到伞坠处,会将伞坠的信息携带并落到地面,随着日积月累,地面会呈现伞坠的信息。 1、为了模拟伞状雨滴效应,用二叉树来模拟二维平面伞(如下图所示),现在输…...
【HttpRunnerManager】搭建接口自动化测试平台操作流程
一、需要准备的知识点 1. linux: 安装 python3、nginx 安装和配置、mysql 安装和配置 2. python: django 配置、uwsgi 配置 二、我搭建的环境 1. Centos7 (配置 rabbitmq、mysql 、Supervisord) 2. python 3.6.8 (配置 django、uwsgi&am…...
【C++】STL-常用算法-常用查找算法
0.前言 1.find #include <iostream> using namespace std;// 常用查找算法 find #include<vector> #include<algorithm>//查找 内置数据类型 void test01() {vector<int>v;for (int i 0; i < 10; i){v.push_back(i);}//查找 容器中 是否有 5 这个元…...
vue3 webpack打包流程及安装 (1)
npm run build 也可以打包 如果没有特殊需求 可以使用 效果其实是差不多的 --------------------------------------------------------------------------------------------------------------------------------- webpack网址 : 起步 | webpack 中文文档 (docsc…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
