Linux日志

日志记录过程

  • 内核生成日志并写入内核环形缓冲区(内存中):dmesg 直接读取此处
  • 系统日志服务(如rsyslog)从缓冲区捕获日志,并转发到/var/log/进行持久化存储
    • r、Reliable:可靠的
  • 启动时,内核缓冲区的初始内容会被保存到/var/log/dmesg

1、rsyslog日志系统(传统、rsyslog.service)

基本使用:tail -fn 1000 /var/log/celery/celery.log

  • 存储路径:/var/log/
  • /var/log/boot.log:系统启动过程的详细信息(服务初始化状态)
  • /var/log/celery/celery.log:记录Celery分布式系统(用于服务器多盘测试)运行日志
  • /var/log/cron:计划任务(cron)的执行记录(成功/失败)
  • /var/log/firewalld:防火墙日志
  • /var/log/messages:通用系统消息、非内核级别的系统消息(服务、用户登录、应用程序)
    • Redhat系默认为messages
    • Debian系默认为syslog
#解决Ubuntu没有messages(messages信息会更全)
vim /etc/rsyslog.d/50-default.conf

#增加一行
*.info;mail.none;authpriv.none;cron.none        /var/log/messages

#重启rsyslog日志系统
systemctl restart rsyslog.service
  • /var/log/kern.log:内核事件(硬件驱动、内核错误等)---需要手动开启
    • vim /etc/rsyslog.conf

image

  • /var/log/secure:安全认证日志(SSH、sudo等)

2、dmesg命令(实时调试硬件或内核问题)

  • 作用:直接读取内核环形缓冲区中的实时日志,主要记录内核启动过程、硬件设备检测、驱动加载、内核错误等信息
  • dmesg -C:清除消息
  • dmesg -Tw:实时查看消息(-T:显示时间戳 -w:实时查看 )

3、systemd journal(现代、systemd-journald.service、/ˈdʒɜːnl/)

  • d:daemon、守护进程
  • 命令:journalctl
  • 基本使用:journalctl -u sshd --since today -o short-iso -f

3.1 基本查看命令

  • journalctl:查看完整日志
  • journalctl -f:实时查看日志
  • journalctl -n 50:查看后50行的日志
  • journalctl --since "2025-12-10 09:00:00" --until "2025-12-10 17:00:00":查看指定时间的日志
  • journalctl --since today:查看今天的日志

3.2  按优先级过滤(priority)

  • journalctl -p err :只看错误级别
  • journalctl -p 3:优先级3及以上(0=紧急, 3=错误, 6=信息)
  • 日志等级:3: err、4: warning、5: notice、6: info、7: debug

3.3 查看启动日志

  • journalctl -b:查看本次启动日志
  • journalctl -b -1:查看上次启动日志

3.4 按服单元过滤(Unit,包括服务、设备、挂载点等)

  • journalctl -u sshd:SSH服务日志
  • journalctl -u celery_worker:celery日志

3.5 按进程ID或用户过滤

  • journalctl _PID=653631:指定进程ID
  • journalctl _UID=0:指定用户ID
  • journalctl _COMM=sshd:指定命令名称

image

 3.6 结构化输出(便于阅读和处理)

  • journalctl -o json-pretty:美化JSON格式
  • journalctl -o short-iso:显示完整的时间戳
posted @ 2025-04-24 16:54  Fēngwèi  阅读(85)  评论(0)    收藏  举报