Linux基础——log文件分析

log文件分析

  • log文件是什么?
  • log文件的记录——rsyslog.service
    • 服务名称
    • 信息等级
    • 记录位置
    • log文件的更替
      • logrotate配置文件
      • logrotate
  • log文件的记录——systemd-journald.service
    • journalctl
    • logger
  • 分析log
    • logwatch

log文件是什么?

log文件是记录系统活动信息的几个文件,通过它可以帮助快速定位问题,常见的有

路径/var/log/下 用途
boot.log 记录开机过程
cron 记录crontab定时任务
dmesg 记录开机时核心监测过程中所产生的信息
lastlog 记录用户上一次登陆的信息
maillog或mail 记录邮件来往信息
messages 记录系统错误信息
secure 记录登陆信息
wtmp / faillog 记录 正确 / 错误 登陆时的账号信息

log文件的记录——rsyslog.service

服务rsyslog.service用于记录上述的log文件,而其daemon为rsyslogd,配置文件为 /etc/rsyslog.conf

Linux基础——log文件分析_第1张图片

如上格式为 服务名称.[=!]信息等级 记录位置,如cron的所有等级信息都记录到/var/log/cron.log

服务名称

rsyslogd通过syslog内的规定来对资料分类,常见的有

服务类别 说明
kernel kernel产生的信息
user 用户产生的信息
mail 邮件有关的信息
daemon 系统服务产生的信息
auth 认证授权有关的信息
syslog syslogd程序产生的信息

信息等级

等级从小到大为none、debug、info、notice、warning、error、crit、alert、emerg(panic)

服务名称和信息等级的连接符号有 . .= .! ,表示大于/等级/小于(包含)该等级的信息会被记录

记录位置

这里的记录位置不仅仅是系统内的文件,还可以是设备(打印机)、用户、远程主机

log文件的更替

log文件如果一直增加则会越来越大,而有些陈旧的信息也未必还有用,所以需要定期清理和更替log

logrotate配置文件

程序 logrotate 用于对log更替,原理是将旧的log文件移动,并建立一个新的空的文件记录log

Linux基础——log文件分析_第2张图片

如上,文件 /etc/logrotate.conf 是 logrotate 的配置文件,上面表示每周创建空文件更替一次,共保留4个被更替旧文件

Linux基础——log文件分析_第3张图片

/etc/logrotate.conf是默认的更替规则,如上还可对指定文件自定义规则,但未避免/etc/logrotate.conf内容过多,额外有/etc/logrotate.d 放置自定义规则

在这里插入图片描述

可通过如下方式在更替前后加入命令

sharedscripts
prerotate
    command
endscript
sharedscripts
postrotate
	command
endscript

如log文件已设置chattr +a避免其被修改或删除,需要在更替前chattr -a,更替后chattr +a

logrotate

命令 logrotate [-vf] /etc/logrotate.conf加上参数 -f 可直接进行更替,-v 启动预览模式,会显示更替过程(可查看是否需要更替)

在这里插入图片描述

如上是未执行时的时间,执行完 logrotate -f /etc/logrotate.conf后如下,可看到文件已被更替

在这里插入图片描述

log文件的记录——systemd-journald.service

rsyslog.service在开机后启动并记录log,开机过程中的log则由journald.service记录,其记录在内存中

换句话说journald管理和查询这次开机后的log(一次性的),而rsyslog则记录以前及现在的log(永久的)

journalctl

命令 journalctl 用于查询systemd-journald.service的资料,不加参数从旧到新列出,-n列出最近几行,-r从新到旧列出,-p按信息等级排序,-f持续显示,–since/–until设置开始/结束时间
Linux基础——log文件分析_第4张图片
如上列出今天的log,journald.service存在于内存(/run/log),若要让其存储到文件,则应该新建/var/log/journal目录

logger

命令 logger [-p service.level] msg 可将资料存储到log文件中
在这里插入图片描述
如上,将信息以info等级存储到user的log文件

分析log

logwatch

软件 logwatch 是用于分析log的工具,会每天分析一次log文件,并将资料以email的形式发送给root
在这里插入图片描述
如上,安装完后会在cron.daily下,运行后将会收到邮件

你可能感兴趣的:(#,Linux基础,linux,服务器,运维)