Linux 服务器硬件数据的收集及使用案例
作者:凤凰战士芭比Q
Linux 服务器硬件数据的收集
在Linux服务器上,可以使用一些命令来收集硬件数据,比如:
dmidecode
dmidecode是一款在Linux系统中用于获取计算机硬件系统信息的工具,可以获取到主板、BIOS、CPU、内存、硬盘等硬件信息。下面对dmidecode命令进行详解:
dmidecode [options]
常用选项:
- -t :指定要显示的硬件类型,如1表示显示主板信息,2表示显示内存信息,4表示显示CPU信息等。
- -s :指定要显示的硬件关键字,如system-manufacturer表示显示系统制造商。
- -u :以二进制格式显示DMI数据。
- -q :只显示硬件数据,不显示额外信息。
dmidecode支持的数字参数如下:
编号 | 信息 |
---|---|
0 | 计算机的基本输入输出系统,是计算机启动时加载的程序 |
1 | 计算机系统的基本信息,如制造商、型号、序列号等 |
2 | 主板的详细信息,如制造商、型号、序列号等 |
3 | 机箱的详细信息,包括制造商、型号、序列号等 |
4 | CPU 的详细信息,包括制造商、型号、频率等 |
5 | 内存控制器的详细信息,包括制造商、型号、频率等 |
6 | 内存模块的详细信息,包括制造商、型号、容量等 |
7 | CPU 缓存的详细信息,包括缓存级别、容量等 |
8 | 接口连接器的详细信息,如USB、SATA、PCI-E等 |
9 | 系统插槽的详细信息,如PCI-E插槽、内存插槽等 |
10 | 主板上的集成设备,如网卡、声卡等 |
11 | OEM厂商的信息 |
12 | 系统配置选项的详细信息,如BIOS设置等 |
13 | BIOS的语言信息 |
14 | 组关联信息 |
15 | 系统事件日志信息 |
16 | 物理内存信息 |
17 | 内存设备的详细信息,如制造商、型号、容量等 |
18 | 32位内存错误信息 |
19 | 内存阵列映射地址的信息 |
20 | 内存设备映射地址的信息 |
21 | 内置指针设备的信息,如触摸板、指点杆等 |
22 | 便携电池的信息 |
23 | 系统重置信息 |
24 | 硬件安全信息,如TPM |
25 | 系统电源控制信息 |
26 | 电压探头的信息 |
27 | 散热设备的信息,如CPU散热器、机箱风扇等 |
28 | 温度探头的信息 |
29 | 电流探头的信息 |
30 | 远程访问信息 |
31 | 启动完整性服务的信息 |
32 | 系统启动信息 |
33 | 64位内存错误信息 |
34 | 管理设备的信息 |
35 | 管理设备组件的信息 |
36 | 管理设备阈值数据的信息 |
37 | 内存通道的信息,如单通道、双通道等 |
38 | IPMI设备的信息 |
39 | 电源的信息 |
40 | 额外的信息 |
41 | 扩展的集成设备信息 |
42 | 管理控制器主机接口的信息 |
使用案例
显示BIOS版本号
[root@localhost ~]# dmidecode -s bios-version 6.00
显示整个系统的硬件信息,例如主板型号
[root@localhost ~]# dmidecode -t 2 # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.7 present. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: Intel Corporation Product Name: 440BX Desktop Reference Platform Version: None Serial Number: None Asset Tag: Not Specified Features: None Location In Chassis: Not Specified Chassis Handle: 0x0000 Type: Unknown Contained Object Handles: 0
显示整个系统的CPU信息
...... ...... ...... Handle 0x0082, DMI type 4, 42 bytes Processor Information Socket Designation: CPU #127 Type: Central Processor Family: Unknown Manufacturer: GenuineIntel ID: EA 06 00 00 FF FB 8B 1F Version: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz Voltage: 3.3 V External Clock: Unknown Max Speed: 30000 MHz Current Speed: 2600 MHz Status: Populated, Disabled By BIOS Upgrade: ZIF Socket L1 Cache Handle: 0x0112 L2 Cache Handle: 0x0192 L3 Cache Handle: Not Provided Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Core Count: 4 Core Enabled: 4 Characteristics: 64-bit capable Multi-Core Execute Protection
lspci
lspci是Linux系统中的一个命令,它可以列出计算机中所有PCI设备的信息,包括显示卡、声卡、网卡等等。可以理解为,lspci是一个工具,它帮助我们查看计算机中的硬件设备。
lspci [-vvn] 选项: -v:显示更多的PCI设备的详细信息 -vv:比-v还要更详细的详细信息 -n:直接查看PCI的ID而不是厂商名称 -s:只显示指定设备的信息
使用案例
去看系统内的PCI相关设备
[root@localhost ~]# lspci 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01) 00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08) 00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10) 00:0f.0 VGA compatible controller: VMware SVGA II Adapter 00:10.0 SCSI storage controller: Broadcom / LSI 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01) 00:11.0 PCI bridge: VMware PCI bridge (rev 02) 00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01) 00:15.7 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.0 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.1 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.2 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.3 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.4 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.5 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.6 PCI bridge: VMware PCI Express Root Port (rev 01) 00:16.7 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.0 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01) 00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01) 00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01) 02:00.0 USB controller: VMware USB1.1 UHCI Controller 02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01) 02:02.0 Multimedia audio controller: Ensoniq ES1371/ES1373 / Creative Labs CT2518 (rev 02) 02:03.0 USB controller: VMware USB2 EHCI Controller
不必加任何参数,就能够显示出目前主机上面的各个PCI设备
如果你要知道以太网的详细信息
[root@localhost ~]# lspci -s 00:03.0 -vv
/usr/share/hwdata/pci.ids
其实那个就是PCI的标准ID与品牌名称的对于表。此外,刚刚我们使用lspci时,其实所有数据都是从 /proc/bus/pci/ 目录中获取的。不过由于硬件发展太过迅速,所以你的 pci.ids 文件可能会落伍,可以使用下面的方式来在线更新你的对应文件
[root@localhost ~]# update-pciids
lsusb
lsusb命令用于列出系统中所有的USB设备信息,包括USB控制器、USB设备及其属性等。具体使用方法如下:
lsusb [-t] 选项: -t:以树形结构显示设备信息 -s [bus]:[device]:只显示指定总线(bus)和设备(device)的信息,例如 lsusb -s 001:002。 -d [vendor]:[product]:只显示指定供应商(vendor)和产品(product)的信息,例如 lsusb -d 045e:00cb。
使用案例
列出目前主机USB各端口状态
[root@localhost ~]# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 004: ID 0e0f:0008 VMware, Inc. Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
iostat
iostat是一个Linux系统性能监控工具,用于显示CPU、磁盘和tty设备的统计信息。
如果没有这个软件就执行如下命令安装它
yum install -y sysstat
iostat [选项] [间隔时间] [次数] 选项: -c:显示CPU的统计信息 -d:显示磁盘的统计信息 -k:以KB为单位显示统计信息 -m:以MB为单位显示统计信息 -t:显示时间戳
使用案例
显示一下目前整个系统的CPU与存储设备的状态
[root@localhost ~]# iostat Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 2023年05月25日 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.28 0.00 0.87 0.00 0.00 98.85 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.26 24.06 8.13 545074 184191 scd0 0.00 0.05 0.00 1028 0
输出详解:
1.第一行:显示Linux系统的版本信息、当前日期和时间、CPU的架构和数量。
2.第二行:显示CPU的利用率统计信息,包括以下各列:
%user:表示用户进程占用CPU时间的百分比。
%nice:表示“优先级较高的进程”占用CPU时间的百分比。
%system:表示内核占用CPU时间的百分比。
%iowait:表示CPU等待I/O操作完成的时间占用的百分比。
%steal:表示虚拟机监控程序(如KVM)偷取CPU时间的百分比。
%idle:表示CPU空闲时间的百分比。
3.第三行:显示磁盘I/O统计信息,包括以下各列:
Device:表示磁盘设备的名称。
tps :平均每秒钟的传送次数,与数据传输【次数】有关,非容量
KB_read/s:开机到现在平均的读取单位
KB_wrtn/s:开机到现在平均的写入单位
KB_read:开机到现在,总共读出来的数据
KB_wrtn:开机到现在,总共写入的数据
仅针对sda,每两秒检测一次,并且共检测三次存储设备
[root@localhost ~]# iostat -d 2 3 sda Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 2023年05月25日 _x86_64_ (8 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.24 23.25 8.07 545074 189201 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.00 0.00 10.75 0 21 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.00 0.00 0.00 0 0
仔细看看,如果是有检测次数的情况,那么第一次显示的是【从开机到现在的数据】
第二次以后所显示的数据则代表两次检测之间的系统传输值,举例来说,上面的信息中,
第二次显示的数据,则是两秒钟内(本案例)系统的总传输量的平均值
了解磁盘的健康状态
其实Linux服务器最重要的就是【数据安全】,而数据都是放在磁盘当中的,所以,无时无刻了解以下你的磁盘健康状况,应该是个好习惯。我呢提提,你怎么知道你的磁盘是好还是坏?
smartctl是smartmontools软件包中的命令行工具,用于读取和显示磁盘的S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology)信息。S.M.A.R.T是一种嵌入在计算机硬件中的技术,可以在磁盘上记录各种故障预测和错误信息,从而提前预测磁盘故障并采取相应措施。
smartctl命令的基本语法如下:
smartctl [options] device
其中,device参数指定要显示S.M.A.R.T信息的磁盘设备,可以是设备文件名(如/dev/sda)、磁盘代号(如sda)或磁盘路径(如/sys/block/sda)。
下面是一些常用的选项和参数:
- -a:显示磁盘的所有S.M.A.R.T信息。
- -H:显示磁盘的健康状态
- -i:显示磁盘的基本信息,包括制造商、型号、序列号、固件版本等。
- -l error:显示磁盘的错误日志。
- -t [testname]:执行磁盘的自测,testname参数指定自测的类型,如short(短自测)、long(长自测)等。
除了以上常用选项,smartctl命令还支持许多其他选项,可以使用“man smartctl”命令查看完整的手册。
使用案例
用smartctl 显示完整的 /dev/sda 的信息
[root@localhost ~]# smartctl -a /dev/sdb smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.el7.x86_64] (local build) Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Vendor: VMware, Product: VMware Virtual S Revision: 1.0 User Capacity: 21,474,836,480 bytes [21.4 GB] Logical block size: 512 bytes Rotation Rate: Solid State Device Device type: disk Local Time is: Thu May 25 16:08:23 2023 CST SMART support is: Unavailable - device lacks SMART capability. === START OF READ SMART DATA SECTION === Current Drive Temperature: 0 C Drive Trip Temperature: 0 C Error Counter logging not supported Device does not support Self Test logging
查看磁盘的健康状态
[root@localhost ~]# smartctl -H /dev/sdb smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.el7.x86_64] (local build) Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Health Status: OK
到此这篇关于Linux 服务器硬件数据的收集的文章就介绍到这了,更多相关Linux 服务器硬件数据的收集内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!