Skip to main content

日志与监控

查看系统日志​

dmesg                   # 内核日志(硬件、驱动)
dmesg -T # 显示人类可读时间
dmesg | grep -i error # 只看错误
dmesg -w # 实时跟踪内核日志
journalctl # systemd 日志(推荐)
journalctl -u nginx # 查看某服务的日志
journalctl -u nginx -f # 实时跟踪某服务日志
journalctl --since "2024-01-01 10:00" --until "2024-01-01 11:00" # 按时间范围
journalctl -p err -b # 本次开机以来的错误级日志
journalctl --disk-usage # 日志占用
journalctl --vacuum-size=200M # 清理日志至 200M 内

常见的 /var/log 日志位置​

文件内容
/var/log/syslog / /var/log/messages系统综合日志
/var/log/auth.log / /var/log/secure登录认证日志
/var/log/nginx/access.log、error.lognginx 访问/错误日志
/var/log/cron定时任务日志
/var/log/dpkg.log / /var/log/yum.log软件安装日志
/var/log/boot.log开机日志

跟踪与分析​

tail -f /var/log/nginx/error.log    # 实时跟踪日志(最常用)
tail -f -n 100 file # 先看末尾 100 行再跟踪
grep -E "ERROR|FATAL" error.log | tail -20 # 过滤错误
tail -1000 access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head # Top 访问 IP
logrotate -f /etc/logrotate.d/nginx # 手动执行日志切割

排查时优先 journalctl -p err -b 与 tail -f 双开。

系统性能监控​

top / htop              # 实时 CPU、内存、进程
vmstat 1 # 每秒刷新:cpu、内存、io、上下文切换
free -h # 内存现状
iostat -x 1 # 磁盘 io
sar -u 1 5 # CPU 使用率采样 5 次(sysstat)
sar -r 1 # 内存采样
sar -n DEV 1 # 网卡流量采样
uptime # 负载情况(1/5/15 分钟)

负载判断经验:负载 ≈ CPU 核数附近为正常;持续数倍则 CPU 或 IO 瓶颈。

追查资源占用​

ps aux --sort=-%mem | head -5       # 内存占用 Top5
ps aux --sort=-%cpu | head -5 # CPU 占用 Top5
ss -tlnp # 端口监听与进程
lsof -i :80 # 端口占用
lsof -p PID # 某进程打开的所有文件
lsof | grep deleted # 已删除但仍被占用的文件(占磁盘常见的坑)
strace -p PID # 跟踪进程系统调用(调试卡死进程)

网络监控​

iftop                 # 实时带宽(需安装)
nload # 网卡流量图表
nethogs # 按进程查看流量
bmon / vnstat # 长期流量统计

常用监控工具包​

apt install sysstat htop dstat   # Debian 系
dnf install sysstat htop dstat # RHEL 系

生产环境可组合:vmstat + sar 采样落盘,再配 zabbix/prometheus-node-exporter 做周期性采集。