在Debian LAMP(Linux, Nginx, MySQL/MariaDB, PHP)环境中,监控系统资源是非常重要的,它可以帮助你及时发现潜在问题并确保系统的稳定运行。以下是一些常用的监控工具和方法:
实时资源监控命令
- top:实时显示系统中运行的进程信息,包括CPU占用率、内存占用率等。
- htop(如果未安装):top的增强版本,提供更加友好的交互界面。安装命令:
sudo apt install htop
。 - vmstat:显示系统的虚拟内存、进程、I/O、CPU等性能的统计信息。示例:
vmstat 1 5
主要用于查看内存的使用情况。 - free:显示内存使用情况。示例:
free -h
。 - iostat:监控CPU的使用率和磁盘I/O性能。安装命令:
sudo apt install sysstat
。示例:iostat -x 2
(显示扩展统计,每2秒刷新)。 - df:显示文件系统的磁盘空间使用情况。示例:
df -h
。 - netstat:查看网络连接、监听端口等信息。示例:
netstat -tulnp
。 - ss:类似于netstat,但功能更强大。。
- systemd日志监控:使用
journalctl
命令查看系统日志。示例:journalctl -xe
。
系统资源分析工具
- vmstat:查看虚拟内存、CPU上下文切换、磁盘IO。示例:
vmstat 1
(每秒刷新)。 - iostat:监控磁盘I/O和CPU使用率。安装:
sysstat
包(apt install sysstat
)。示例:iostat -x 2
(显示扩展统计,每2秒刷新)。 - sar(System Activity Reporter):长期性能数据收集,生成日报表。配置:通过cron定期运行,数据存储在
/var/log/sa/
。示例:sar -u
(CPU使用率历史)。
网络监控工具
- iftop:实时显示网络带宽使用(按主机/连接排序)。安装:
apt install iftop
。示例:iftop -i eth0
(指定网卡)。 - nload:简洁的实时流量监控(支持多网卡分屏)。安装:
apt install nload
。 - nethogs:按进程统计网络带宽使用。示例:
nethogs eth0
。 - ss/netstat:查看网络连接、端口监听状态。推荐:ss(更高效,替代netstat)。
磁盘I/O监控工具
- iotop:类似top,但监控磁盘I/O(按进程排序)。安装:
apt install iotop
。示例:iotop -o
(显示活跃I/O进程)。 - iostat(结合
-d
参数):示例:iostat -d 2
(每2秒显示磁盘吞吐量)。
进程级调试工具
- strace:跟踪进程的系统调用和信号。示例:
strace -p
(追踪运行中进程)。 - perf:性能分析工具,支持CPU缓存、调度事件跟踪。示例:
perf top
(实时函数级CPU占用)。 - bpftrace:基于eBPF的高级内核跟踪(需Linux 4.x+)。示例:`bpftrace -e ‘tracepoint:syscalls:sys_enter_open { printf("%s %s ", comm, str(args->filename));}’。
日志分析工具
- journalctl:查询systemd日志。示例:
journalctl -u nginx --since "2023-01-01"
(按服务和时间过滤)。 - Logwatch/GoAccess:生成每日日志摘要(通过邮件发送)。GoAccess:实时Web日志分析(支持HTTP/HTTPS流量可视化)。
综合监控方案
- Prometheus + Grafana:用于收集和存储时间序列数据,并进行可视化监控。可以通过Prometheus抓取系统指标,并使用Grafana进行展示。。
- Zabbix/Nagios:企业级监控,支持服务器、网络设备、应用的健康检查。特点:告警通知、自动化巡检、分布式监控。。
- Netdata:实时仪表盘,开箱即用,低资源消耗。。
快速检查脚本
- htop + iftop + iotop:快速诊断。
- Prometheus + Grafana:长期分析。
- journalctl + GoAccess:日志排查。
根据你的需求,可以选择合适的工具和方法来监控系统资源。对于简单的监控需求,命令行工具通常足以满足;而对于复杂的环境,建议使用集成监控系统如Zabbix。。