声明:CentOS系统和Ubuntu系统关于日志管理的一些细节不同,大家注意,了解怎么回事就行
一.介绍
日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。
系统日志文件的保持位置,/var/log:

下面是系统常用的日志:
|-------------------|-------------------------------------------------------------------------------------|
| 日志文件 | 说明 |
| /var/log/boot.log | 系统启动日志 |
| /var/log/cron | 记录与系统定时任务相关的日志 |
| /var/log/cups | 记录打印信息的日志 |
| /var/log/dmesg | 记录了系统在开机时内核自检的信总,也可以来直接查看内核自检信息 |
| /var/log/btmp | 记录错误登录的日志。这个文件是二进制文件,不能直接用vi查看,要使用astb命令查看 |
| /var/log/lasllog | 记录系统中所有用户最后一次登录时间的日志。这个文件是二进制文件,用使用astb命令查看 |
| /var/log/mailog | 记录邮件信息的日志 |
| /var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息。如果系统出现问题,首先要检查的就是这个文件 |
| /var/log/secure | 记录验证和授权方的信息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户、sudo授权、甚至添加用户和修改用户密码都会记录在这个日志文件中 |
| /var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。是二进制文件 |
| /var/run/utmp | 记录当前已经登录的用户信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息、这个文件不能用vi查看,要使用w、who、users等命令查看 |
二.日志管理服务 rsyslogd
查询 Linux 中的 rsyslogd 服务是否启动:
bash
ps aux | grep "rsyslogd" | grep -v "grep"
查询 rsyslogd 服务的自启动状态:
bash
systemctl list-unit-files | grep rsyslog

1.配置文件
配置文件位置:/etc/rsyslog.conf
编辑文件时的格式为:*.* 。其中第一个*代表日志类型,第二个*代表日志级别
1)日志类型:
|----------------------|----------------------------|
| auth | pam产生的日志 |
| authpriv | ssh、ftp等登录信息的验证信息 |
| cron | 时间任务相关 |
| kern | 内核 |
| lpr | 打印 |
| mail | 邮件 |
| mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
| news | 新闻组 |
| user | 用户程序产生的相关信息 |
| uucp | unix to nuix copy主机之间相关的通信 |
| local 1-7 | 自定义的日志设备 |
2)日志级别:
|---------|---------------------------|
| debug | 有调试信息的,日志通信最多 |
| info | 一般信息日志,最常用 |
| notice | 最具有重要性的普通条件信息 |
| warning | 警告级别 |
| err | 错误级别,阻止某个功能或模块不能正常工作的信息 |
| crit | 严重级别,阻止整个系统或整个软件不能正常工作的信息 |
| alert | 需要立刻修改的信息 |
| emerg | 内核崩溃等重要信息 |
| none | 什么都不记录 |
从上到下,级别从低到高,记录信息越来越少。
2.文件格式
由rsyslog记录的日志文件包含以下4列:
1)事件产生的时间;
2)产生事件的服务器的主机名;
3)产生事件的服务名或程序名;
4)事件的具体信息。
3.自定义日志服务
1)在/etc/rsyslog.conf主配置文件中添加新日志规则;
2)在/ect/rsyslog.d/目录下创建独立的配置文件。
三.日志轮替
日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除。
基于logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过 /etc/logrotate.conf配置文件中 dateext 参数:
如果配置文件中有 dateext 参数,那么日志会用日期来作为日志文件的后缀;
如果配置文件中没有 datexxt 参数,日志文件旧需要进行改名。当第一次进行日志轮替时,当前的日志 secure 会自动改名为 secure.1,然后新建 secure 日志,用来保存新的日志。当第二次进行日志轮替时,secure.1 会自动改名为 secure.2,以此类推。