1. Top – Linux 进程监控
代码语言:javascript复制Linux
Top
command 是一个性能监控程序,很多系统管理员经常使用它来监控 Linux 性能,它在许多Linux/Unix-like
操作系统。在top 命令在批处理模式下使用“top”按内存使用量查找前 15 个进程")是用来在有序列表中,并定期更新,它显示所有正在运行的和积极的实时进程。它显示
CPU usage
,Memory usage
,Swap Memory
,Cache Size
,Buffer Size
,Process PID
,User
,Command
它还显示了正在运行的进程的高内存和 CPU 利用率。
# top
2. vmstat – 虚拟内存统计
Linux
vmstat
命令用于显示统计信息virtual memory
,kernel threads
,disks
,system processes
,I/O blocks
,interrupts
,CPU activity,
以及更多。
在 Linux 中安装 vmstat
代码语言:javascript复制默认情况下 vmstat 命令在 Linux 系统下不可用,你需要安装一个名为sysstat,包括一个 vmstat 程序。
$ sudo yum install sysstat [On Older CentOS/RHEL & Fedora]
$ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install sysstat [On Debian/Ubuntu & Mint]
$ sudo pacman -S sysstat [On Arch Linux]
vmstat 命令格式的常见用法是。
代码语言:javascript复制# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 43008 275212 1152 561208 4 16 100 105 65 113 0 1 96 3 0
3. Lsof – 列出打开的文件
代码语言:javascript复制这
lsof command
被用于许多Linux/Unix-like
系统显示所有打开的文件和进程的列表。包含的打开文件是disk files
,network sockets
,pipes
,devices,
和processes
.使用此命令的主要原因之一是无法卸载磁盘并显示正在使用或打开文件的错误。使用此命令,你可以轻松识别正在使用的文件。
最常见的格式
lsof
命令是。
# lsof
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 8,2 224 128 /
systemd 1 root rtd DIR 8,2 224 128 /
systemd 1 root txt REG 8,2 1567768 134930842 /usr/lib/systemd/systemd
systemd 1 root mem REG 8,2 2714928 134261052 /usr/lib64/libm-2.28.so
systemd 1 root mem REG 8,2 628592 134910905 /usr/lib64/libudev.so.1.6.11
systemd 1 root mem REG 8,2 969832 134261204 /usr/lib64/libsepol.so.1
systemd 1 root mem REG 8,2 1805368 134275205 /usr/lib64/libunistring.so.2.1.0
systemd 1 root mem REG 8,2 355456 134275293 /usr/lib64/libpcap.so.1.9.0
systemd 1 root mem REG 8,2 145984 134261219 /usr/lib64/libgpg-error.so.0.24.2
systemd 1 root mem REG 8,2 71528 134270542 /usr/lib64/libjson-c.so.4.0.0
systemd 1 root mem REG 8,2 371736 134910992 /usr/lib64/libdevmapper.so.1.02
systemd 1 root mem REG 8,2 26704 134275177 /usr/lib64/libattr.so.1.1.2448
systemd 1 root mem REG 8,2 3058736 134919279 /usr/lib64/libcrypto.so.1.1.1c
...
4. tcpdump——网络数据包分析器
代码语言:javascript复制这
tcpdump
命令是使用最广泛的命令行之一network packet analyzer
或者packets sniffer
用于捕获或过滤的程序TCP/IP
通过网络在特定接口上接收或传输的数据包。
# tcpdump -i enp0s3
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093
10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options
10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45
10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33
10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
...
5. netstat – 网络统计
代码语言:javascript复制这
netstat
是一个用于监控的命令行工具incoming
和outgoing network
数据包统计以及接口统计。它是每个系统管理员监控网络性能和解决网络相关问题的非常有用的工具。
# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 tecmint:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:postgres 0.0.0.0:* LISTEN
tcp 0 0 tecmint:ssh 192.168.0.124:45611 ESTABLISHED
tcp6 0 0 [::]:sunrpc [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:postgres [::]:* LISTEN
udp 0 0 0.0.0.0:mdns 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp 0 0 tecmint:domain 0.0.0.0:*
udp 0 0 0.0.0.0:bootps 0.0.0.0:*
udp 0 0 tecmint:bootpc _gateway:bootps ESTABLISHED
...
6. Htop——Linux 进程监控
代码语言:javascript复制
htop
是一个非常先进的交互式和实时 Linux 进程监控工具,它与 Linux 非常相似[top command]
但它有一些丰富的功能,比如user-friendly interface to manage processes
,shortcut keys
,vertical and horizontal views of the processes,
以及更多。
# htop
htop
是第三方工具,Linux 系统不自带,需要使用系统包管理工具安装。
7. iotop – 监控 Linux 磁盘 I/O
iotop
也非常类似于top command
和htop program
,但具有记账功能,实时监控显示Disk I/O
和processes
.iotop 工具对于查找进程的确切进程和高使用磁盘读 / 写非常有用。
在 Linux 中安装 Iotop
代码语言:javascript复制默认情况下,
iotop
命令在 Linux 下不可用
$ sudo yum install iotop [On Older CentOS/RHEL & Fedora]
$ sudo dnf install iotop [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install iotop [On Debian/Ubuntu & Mint]
$ sudo pacman -S iotop [On Arch Linux]
代码语言:javascript复制iotop 命令格式的常见用法是。
# iotop
8. Iostat – 输入 / 输出统计
iostat
是一个简单的工具,将收集和显示系统input
和output
存储设备统计。此工具通常用于跟踪存储设备性能问题,包括devices
,local disks
,remote disks
如NFS
.
在 Linux 中安装 Iostat
代码语言:javascript复制为了iostat
命令,你需要安装一个名为
sysstat`
$ sudo yum install sysstat [On Older CentOS/RHEL & Fedora]
$ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install sysstat [On Debian/Ubuntu & Mint]
$ sudo pacman -S sysstat [On Arch Linux]
代码语言:javascript复制iostat 命令格式的常见用法是。
# iostat
Linux 4.18.0-193.el8.x86_64 (tecmint) 04/05/2021 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.21 0.03 0.59 2.50 0.00 96.67
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.95 83.35 89.63 1782431 1916653
9. IPTraf – 实时 IP LAN 监控
IPTraf
是一个开源的基于控制台的实时网络(IP LAN
) 监视应用程序Linux
.它收集各种信息,例如通过网络传递的[IP 流量监视器,包括 TCP 标志信息、ICMP 详细信息、TCP/UDP 流量故障、TCP 连接数据包和字节计数。它还收集 TCP、UDP、IP、ICMP、非 IP、IP 校验和错误、接口活动等的一般和详细接口统计信息。
10. Psacct 或 Acct – 监控用户活动
psacct
或者acct
工具对于监控每个用户在系统上的活动非常有用。两个守护进程都在后台运行,密切关注系统上每个用户的整体活动以及他们消耗的资源。这些工具对于系统管理员跟踪每个用户的活动非常有用,比如他们在做什么,他们发出了什么命令,他们使用了多少资源,他们在系统上活跃了多长时间等等。
11. Monit – Linux 进程和服务监控
monit
是一个免费的开源和基于 Web 的进程监督应用程序,可自动监视和管理系统进程、程序、文件、目录、权限、校验和和文件系统。它监控 Apache、MySQL、Mail、FTP、ProFTP、Nginx、SSH 等服务。可以从命令行或使用其自己的 Web 界面查看系统状态。
image-20210908215510258
12. NetHogs – 监控每个进程的网络带宽
代码语言:javascript复制
NetHogs
是一个开源的不错的小程序(类似于 Linuxtop command
),它会在你的系统上保留每个进程网络活动的标签。它还跟踪每个程序或应用程序使用的实时网络流量带宽.
# nethogs
Nethogs 在 Linux 中监控网络流量
image-20210908215626936
13. iftop – 网络带宽监控
代码语言:javascript复制
iftop
是另一个基于终端的免费开源系统监控实用程序,它显示通过系统网络接口的网络带宽利用率(源主机和目标主机)的频繁更新列表。iftop 被考虑用于网络使用,什么 '
top
' 用于 CPU 使用率。iftop 是一个 'top
' 系列工具,用于监视选定的接口并显示两个主机之间的当前带宽使用情况。
# iftop
14. Monitorix – 系统和网络监控
Monitorix
是一个免费的轻量级实用程序,旨在尽可能多地运行和监视系统和网络资源Linux/Unix
服务器。它有一个内置的
HTTP
定期收集系统和网络信息并将其显示在图形中的 Web 服务器。它旨在监控整体系统性能并帮助检测故障、瓶颈、异常活动等。
image-20210908215725216
15. Arpwatch——以太网活动监视器
Arpwatch
是一种旨在监视地址解析的程序(MAC
和IP
地址更改)的Ethernet
Linux 网络上的网络流量。它持续监视以太网流量并生成日志
IP
和MAC
地址对随着网络上的时间戳而变化。它还具有在添加或更改配对时向管理员发送电子邮件警报的功能。在检测中非常有用ARP
在网络上进行欺骗。
16. Suricata – 网络安全监控
Suricata
是一个高性能的开源Network Security
和Intrusion Detection
和Prevention Monitoring System
为了Linux
,FreeBSD,
和Windows
.
它是由一个非营利基金会设计和拥有的OISF
(Open Information Security Foundation
)。
17. VnStat PHP – 监控网络带宽
VnStat PHP
是一个基于 Web 的前端应用程序,用于最流行的网络工具,称为vnstat
。VnStat PHP
以良好的图形模式监控网络流量使用情况。它显示总共
IN
和OUT
网络流量使用情况hourly
,daily
,monthly,
和full summary
报告。
18. Nagios – 网络 / 服务器监控
Nagios 是领先的开源强大监控系统,它使网络 / 系统管理员能够在服务器相关问题影响主要业务流程之前识别并解决这些问题。
使用 Nagios 系统,管理员可以在单个窗口中监控远程 Linux、Windows、交换机、路由器和打印机。它显示严重警告并指示你的网络 / 服务器是否出现问题,间接帮助你在问题发生之前开始修复过程。
19. Nmon:监控 Linux 性能
Nmon
(代表 Nigel 的性能监视器)工具,用于监视所有 Linux 资源,例如 CPU、内存、磁盘使用情况、网络、顶级进程、NFS、内核等等。该工具有两种模式:在线模式和捕获模式。在线模式用于实时监控,捕获模式用于以 CSV 格式存储输出以供以后处理。
image-20210908215922942
20. Collectl:多合一性能监控工具
Collectl
是另一个强大且功能丰富的基于命令行的实用程序,可用于收集有关 Linux 系统资源的信息,例如 CPU 使用率、内存、网络、inode、进程、nfs、TCP、套接字等等。
相关文章
Linux之top命令
linux之iftop命令
Linux之vmstat命令
linux之lsof使用技巧