2023.6.7 Linux系统日志管理
01 Linux系统⽇志管理
系统⽇志架构概述
syslog⽇志审查
Journal⽇志审查
Journal⽇志持久化
⽇志轮询logrotate
系统⽇志架构概述
在rhel7系统中有两个⽇志服务,分别是传统的 rsyslog 和新添加的 systemd-journal
systemd-journald 是⼀个改进型的⽇志管理服务,可以收集来⾃内核、系统早期的启动阶段的⽇志、系统守护
进程在启动和运⾏中的标准输出和错误信息,还有 syslog 的⽇志。
该⽇志服务仅仅把⽇志集中保存在单⼀结构化的⽇志⽂件 /run/log 默认情况下并不会持久化保存⽇志, 每次重启
后, 之前的⽇志都会丢失。另外,⼀些 rsyslog ⽆法收集的⽇志也会被 jounral 记录到。
rsyslog作为传统的系统⽇志服务,把所有收集到的⽇志都记录到/var/log/⽬录下的各个⽇志⽂件中。常⻅的⽇志⽂
件如下:
/var/log/messages 绝⼤多数的系统⽇志都记录到才⽂件
/var/log/secure 所有跟安全和认证授权等⽇志都会记录到此⽂件
/var/log/maillog 邮件服务的⽇志
/var/log/cron crond计划任务的⽇志
/var/log/boot.log 系统启动的相关⽇志
syslog⽇志审查
rsyslog.conf
syslog⽇志类型
syslog⽇志的属性:
emerg //内核崩溃
alert //
crit //
err //错误
warnning //警告
nice //
info //
debug //
看懂简单的⽇志设定规则
分析⽇志字段
⼿⼯发送⽇志logger
[root@wing ~]# logger -p authpriv.info -t "test" "Err"
[root@wing ~]# tail -n1 /var/log/secure
Mar 18 21:37:04 wing test: Err
Journal⽇志审查
这是 systemd ⾃带的⽇志服务⼯具所有⽇志记录到 /run/log ⽂件中, 必须使⽤如下命令才可打开
# journalctl 查看所有的⽇志
# journalctl -n 5 查看最后5条⽇志
# journalctl -p err 查看err类型的⽇志
# journalctl -f 不断输出最后10条⽇志
# journalctl --since today 查看今天的⽇志
# journalctl --since "2014-02-10 20:30:00" --until "2014-02-13 12:00:00"
# journalctl -o verbose 查看⽇志的详细信息
# journalctl _SYSTEMD_UNIT=sshd.service _PID=1182
Journal⽇志持久化
持久化保存 journal 的⽇志,默认只会保存⼀个⽉的⽇志
# mkdir /var/log/journal
# chown root:systemd-journal /var/log/journal
# chmod 2755 /var/log/journal
# killall -USR1 systemd-journald
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通