⽇志管理与深层防⽕墙

⽇志就像是系统或程序的"⽇记本",会⾃动记录发⽣的事情,⽐如出错了、谁来访问了、做了什么 操作等。这些记录会保存起来,⽅便我们事后查看,就像查监控录像⼀样

看日志的命令journalctl

journalctl 是 systemd 系统里统一看日志的命令,把系统、内核、所有服务的日志都集中在一起,方便查错、排障、审计

基础查看

复制代码
journalctl            # 所有日志(从旧到新,分页)
journalctl -f          # 实时滚动(类似 tail -f)
journalctl -n 20       # 最新 20 行
journalctl --no-pager  # 不分页,一次性输出(脚本常用)

按服务过滤

复制代码
journalctl -u nginx.service   # 只看 nginx 日志
journalctl -u docker           # 服务名可省略 .service
journalctl -u sshd -f         # 实时看 ssh 日志

按启动(boot)过滤(查 "重启后才坏" 的问题)

复制代码
journalctl --list-boots   # 列出历次启动记录(boot id + 时间)
journalctl -b              # 本次启动后的日志
journalctl -b -1           # 上一次启动的日志(重启前)
journalctl -b -2           # 上上次

按时间过滤(查某个时间段问题)

复制代码
journalctl --since "1 hour ago"
journalctl --since "today"
journalctl --since "yesterday"
journalctl --since "2026-05-20 10:00:00" --until "2026-05-20 12:00:00"

按日志级别(只看错误 / 警告)

复制代码
journalctl -p err        # 只看 error
journalctl -p warning     # 警告+错误
journalctl -p err -b      # 本次启动的所有错误

rsyslog

    1. 收集:本地所有程序(sshd、nginx、内核等)+ 网络设备发来的日志rsyslog
    2. 过滤:按 "来源 + 级别" 分类(如 auth 错误、kern 警告)
    3. 存储:写到 /var/log/ 下各类文件(messages、secure、cron...)
    4. 转发:把日志发给远程服务器(集中日志服务器)、数据库、Kafka、ES 等rsyslog
  • 特点:高性能、多线程、支持 TCP/TLS 可靠传输、磁盘队列防丢日志

    dnf -y install rsyslog

系统日志收集 / 转发 / 存储服务 ,后台进程 rsyslogd

写日志的命令logger

logger = Linux 系统里「手动往系统日志里写一条消息」的命令 就是你自己造一条日志 ,让它出现在 /var/log/messagesjournalctl

使用logger打印日志到另一个终端

复制代码
logger "This is a test log message"

tail -f /var/log/messages 查看日志

复制代码
tail -f /var/log/messages

常用日志

查看用户登录错误的日志

复制代码
lastb

查看所有⽤⼾登录、注销以及系统启动 重启 关机事件⽇志

复制代码
last

查看当前已经登录的⽤⼾信息

查看⽤⼾最后⼀次登录时间的⽇志

把所有服务的"临界点"以上的错误都保存在/var/log/crit.log 日志

复制代码
vim /etc/rsyslog.conf

添加一条规则

复制代码
*.crit /var/log/crit.log

重启一下

复制代码
systemctl restart rsyslog
systemctl status rsyslog

验证测试

复制代码
#模拟crit级别错误
logger -p crit "crit error in system"

tail -10f /var/log/crit.log
相关推荐
better_liang1 小时前
每日Java面试场景题知识点之-数据库与缓存的一致性
java·数据库·redis·面试·分布式系统·缓存一致性·cache aside
减瓦1 小时前
Jackson 自定义反序列化器的类型不匹配陷阱
java·后端
Mr.Lu ‍1 小时前
QT调试查看QT内部数据时显示无可用信息,未为 Qt5Cored.dll 加载任何符号
开发语言·qt
qq_452396231 小时前
第九篇:《Dockerfile 指令精讲(二):WORKDIR、ENV、ARG、EXPOSE》
java·开发语言·docker
JAVA社区1 小时前
Java高级全套教程(九)—— SpringCloud超详细实战详解
java·开发语言·后端·spring cloud·面试·职场和发展
wyjcxyyy1 小时前
java反序列化-cc1链
java·c语言·开发语言
山上三树1 小时前
Python 高频报错速查表(开发通用版)
开发语言·python
garmin Chen1 小时前
Elasticsearch(1):Elasticsearch核心原理与基础操作总结
java·大数据·笔记·elasticsearch·搜索引擎·全文检索
傻啦嘿哟2 小时前
解决DNS污染:防止OpenClaw解析API域名到虚假地址
开发语言·php