当前位置: 首页 > news >正文

Linux 日志系统入门:/var/log 和 journalctl 怎么排查问题?

Linux 日志系统入门:/var/log 和 journalctl 怎么排查问题?

1. 前言

Linux 出问题时,日志是最重要的线索。

常见问题:

  • 服务启动失败;
  • SSH 登录失败;
  • Nginx 返回 502/500;
  • 程序突然退出;
  • 磁盘满了;
  • 系统被异常登录;
  • 服务器重启原因不明。

Linux 常见日志入口有两个:

/var/log journalctl

本文重点讲解如何用它们排查问题。


2. /var/log 是什么

传统 Linux 日志通常存放在:

/var/log

查看:

ls/var/log

常见日志:

路径作用
/var/log/syslog系统综合日志,Ubuntu 常见
/var/log/messages系统综合日志,CentOS/RHEL 常见
/var/log/auth.log登录认证日志,Ubuntu 常见
/var/log/secure安全认证日志,CentOS/RHEL 常见
/var/log/dmesg内核启动日志
/var/log/nginx/Nginx 日志
/var/log/mysql/MySQL 日志
/var/log/apt/apt 安装日志

不同发行版日志文件名可能不同。


3. 查看日志的基础命令

3.1 less 分页查看

less/var/log/syslog

常用按键:

按键作用
空格下一页
b上一页
/keyword搜索
n下一个匹配
q退出

3.2 tail 查看最后几行

tail-n100/var/log/syslog

实时跟踪:

tail-f/var/log/syslog

3.3 grep 搜索关键词

grep-i"error"/var/log/sysloggrep-n"failed"/var/log/sysloggrep-C3"timeout"/var/log/syslog

参数含义:

参数作用
-i忽略大小写
-n显示行号
-C 3显示上下文 3 行

4. 登录认证日志

Ubuntu/Debian:

/var/log/auth.log

CentOS/RHEL:

/var/log/secure

查看 SSH 登录失败:

grep"Failed password"/var/log/auth.log

查看登录成功:

grep"Accepted"/var/log/auth.log

CentOS/RHEL:

grep"Failed password"/var/log/securegrep"Accepted"/var/log/secure

这类日志适合排查:

  • SSH 暴力破解;
  • 登录失败;
  • sudo 使用记录;
  • 认证异常。

5. Nginx 日志

常见路径:

/var/log/nginx/access.log /var/log/nginx/error.log

实时查看访问:

tail-f/var/log/nginx/access.log

实时查看错误:

tail-f/var/log/nginx/error.log

查找 500:

grep" 500 "/var/log/nginx/access.log

查找错误:

grep-i"error"/var/log/nginx/error.log

排查 502 时,优先看:

tail-n100/var/log/nginx/error.log

常见原因:

  • 后端服务没启动;
  • upstream 地址错误;
  • 端口不通;
  • 后端超时;
  • 权限不足。

6. dmesg:查看内核日志

查看内核日志:

dmesg

查看最近日志:

dmesg|tail

实时跟踪:

dmesg-w

查找 OOM:

dmesg|grep-i"killed process"

查找磁盘错误:

dmesg|grep-i"error"

dmesg常用于排查:

  • 硬件识别;
  • USB 插拔;
  • 磁盘错误;
  • 网卡异常;
  • OOM Killer;
  • 内核报错。

7. journalctl 是什么

现代 Linux 常用 systemd 管理服务。
systemd 的日志可以通过journalctl查看。

查看全部日志:

journalctl

查看最近 100 行:

journalctl-n100

实时跟踪:

journalctl-f

8. journalctl 查看服务日志

查看某个服务:

journalctl-unginx

实时查看:

journalctl-unginx-f

最近 100 行:

journalctl-unginx-n100

查看 myapp 服务日志:

journalctl-umyapp-n100journalctl-umyapp-f

这比单纯看 nohup.out 更适合正式服务排查。


9. 按时间筛选日志

查看今天:

journalctl--sincetoday

查看最近 1 小时:

journalctl--since"1 hour ago"

指定时间段:

journalctl--since"2026-05-18 10:00:00"--until"2026-05-18 11:00:00"

查看某服务某时间段:

journalctl-umyapp--since"2026-05-18 10:00:00"--until"2026-05-18 11:00:00"

10. 按级别筛选日志

日志级别:

级别名称
0emerg
1alert
2crit
3err
4warning
5notice
6info
7debug

查看错误:

journalctl-perr

查看 warning 及以上:

journalctl-pwarning

查看某服务错误:

journalctl-umyapp-perr

11. 查看本次启动日志

当前启动周期:

journalctl-b

上一次启动:

journalctl-b-1

查看启动列表:

journalctl --list-boots

这对排查“服务器为什么重启”很有用。


12. logrotate:日志轮转

日志不能无限增长。
Linux 通常使用logrotate做日志轮转。

配置位置:

/etc/logrotate.conf /etc/logrotate.d/

查看:

ls/etc/logrotate.d/

轮转后可能出现:

access.log access.log.1 access.log.2.gz

查看压缩日志:

zcat access.log.2.gz

搜索压缩日志:

zgrep"error"access.log.2.gz

13. 常见排查流程

13.1 服务启动失败

systemctl status myapp journalctl-umyapp-n100journalctl-umyapp-f

重点搜索:

error failed permission not found address already in use

13.2 SSH 登录失败

grep"Failed password"/var/log/auth.log journalctl-ussh-n100

或:

journalctl-usshd-n100

13.3 程序突然被杀

dmesg|grep-i"killed process"journalctl-k|grep-i"killed process"

如果出现 OOM,说明内存不足。

13.4 磁盘满了

df-hdu-sh/var/log/*du-ah/var/log|sort-rh|head

不要随便rm正在写的日志文件。
可以清空:

sudotruncate-s0/var/log/large.log

14. 日志分析常用命令

统计访问 IP:

awk'{print $1}'access.log|sort|uniq-c|sort-nr|head

查找 500 错误:

grep" 500 "access.log

统计接口访问次数:

grep"/api/user"access.log|wc-l

实时查看错误:

tail-fapp.log|grep--line-buffered-i"error"

15. 小结

Linux 日志排查抓住两个入口:

/var/log:传统日志文件 journalctl:systemd 日志

常用命令:

tail-f/var/log/syslogtail-f/var/log/nginx/error.loggrep-i"error"app.log journalctl-unginx-fjournalctl-umyapp-n100journalctl--since"1 hour ago"journalctl-perrdmesg|tail

排查问题时,建议按这个顺序:

确认问题时间 找到相关服务 看 systemctl status 看 journalctl -u 服务名 看 /var/log 对应日志 搜索 error、failed、timeout、denied 结合端口、进程、磁盘、权限继续判断

掌握日志系统后,Linux 服务故障排查会从“猜问题”变成“按证据定位问题”。

http://www.jsqmd.com/news/891193/

相关文章:

  • OkHttp 与 RestTemplate 技术选型对比
  • 2026国内艺术涂料/艺术漆十大优选:瓷砖改色漆厂家+防脱落仿石漆厂家+外墙仿石漆/仿石涂料厂家推荐 - 栗子测评
  • 汕头闲置奢侈品变现指南:需求升温,套路暗藏?5家诚信店铺帮你安全变现 - 小仙贝贝
  • 一次通关结构体、位断、联合体和枚举这四大痛点
  • Taotoken API Key管理与访问控制功能的使用感受
  • TypeScript类型体操构建AI修心智能体生成引擎——从2300+豆包智能体到七境宇宙的类型安全实践
  • 珠海夏令营推荐:军博营地海滨研学 - 19120507004
  • 实现自己的IOC容器——Winter (一)Bean加载
  • 3步解锁ThinkPad黑苹果:让T480笔记本完美运行macOS
  • AIfES:嵌入式AI框架解析与实战,实现MCU端完整训练
  • 英雄联盟智能助手:你的排位赛数据决策专家
  • 2026年国产在线ORP仪品牌TOP10权威排行榜:技术参数、市场表现与实战选型全解析 - 水质仪表品牌排行榜
  • Steam挂刀行情站:24小时自动化交易监控系统的完整技术实现指南
  • Linux 后台任务详解:、nohup、jobs、systemd 的区别
  • 《多智能体系统实战:我用10个智能体搭建了一个自动赚钱的AI公司》
  • 别再手动改时间了!用timedatectl一条命令搞定Linux时区与NTP同步(Ubuntu/CentOS通用)
  • 2026高口碑普拉提培训机构推荐:优质机构选择指南 - 品牌2025
  • JMeter接口测试中Cookie会话保持的七步实战法
  • 记录一次claude配置知乎mcp经历
  • 佛山黄金回收行业综合实力排名TOP5,2026年5月权威测评榜单 - 生活测评君
  • 简单好用!WinRAR的三种密码保护方式
  • av1编码--编码块的预测约束条件
  • 单图扩散模型实战:多尺度与提示学习实现精准图像编辑
  • 物理生物学研究报告【20260018】
  • Linux 环境变量详解:PATH、export、source 到底是什么?
  • CDR标准体系再添三件套:组网、业务、工程同步落地
  • 百度网盘下载加速终极指南:使用Python工具实现满速下载的完整教程
  • 如何利用组策略精准管控USB与可移动存储设备
  • 系统辨识选最小二乘还是最大似然?一个传感器噪声的例子讲明白
  • 从“飞起来”到“管得好”:2026工程进度低空管理系统供应商推荐 - 品牌2025