1.日志的介绍
1.日志文件是重要的系统信息文件 ,其中记录了许多重要的系统事件,包括用户的登录信息、系统的 启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
2.日志对于安全来说也很重要 ,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因 或者受到攻击时攻击者留下的痕迹。
3.可以这样理解日志是用来记录重大事件的工具
系统常见的日志:
备注:最后一个日志文件有误,正确的是:/var/run/utmp
2.日志管理服务rsyslogd
CentOS7日志服务是rsyslogd,CentOS6.x 日志服务是syslogd。rsyslogd 功能更强大。rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。
#查询Linux中的rsyslogd服务是否启动
ps aux | grep "rsyslog " | grep -v "grep"
#查询rsyslogd服务自启动状态
systemctl list-unit-files | grep rsyslog
rsyslogd是Linux下的一个记录日志文件服务。rsyslogd有一系列的子服务,例如mail、auth、cron、kern等等,这些子服务提供日志记录的功能。当程序要记录log时,可以直接调用这些子服务将日志记录到设定的地方。rsyslogd是一个守护进程,配置这整个守护进程以及其子服务的地方就是/etc/rsyslog.conf这个文件。
rsyslog记录哪些日志,到底记录了什么样的日志,是通过这个/etc/rsyslog.conf配置文件来决定的
rsyslog规则(/etc/rsyslog.d/*.conf)
rsyslog规则配置文件一般由以下3部分组成,每一行表示一个项目,格式为:facility.level ,action,分别表示日志类型,日志等级,日志输出路径(存放日志文件)。
一般所有日志类型都会被追加在/val/log/messages。
facility日志类型:
kern: 内核信息
user: 用户进程相关信息
mail: 电子邮件相关信息
Local0- local7: 为本地使用预留的服务
daemon: 后台进程相关信息
syslog: 系统日志信息
level(按严重程度由低到高排序):
none: 没有重要级,什么都不记录
debug: 调试信息
info: 打印的信息
notice: 具有重要信息的普通条件
warning: 警告信息
err: 错误信息
crit: 阻止某些工具或子系统功能实现的错误条件
alert: 需要立即被修改的条件
emerg: 该系统不可用
action(表示log保存的位置)
由日志服务rsyslogd记录的日志文件,日志文件的格式包含以下4列:
1.事件产生的时间
2.产生事件的服务器的主机名
3.产生事件的服务名或程序名
4.事件的具体信息
日志如何查看实例:查看/var/log/secure日志,这个日志记录的是用户验证和授权方面的信息。
自定义日志服务
在/etc/rsyslog.conf中添加一个日志文件/var/log/hsp.log,当有事件发送时(比如sshd服务相关事件)该文件会接收到信息并保存,看是否有日志保存。
重启系统,再次登录,日志中会有记录。如下图所示:
3.日志轮替
日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除。
3.1.日志轮替的介绍
日志轮替文件命名
- centos7使用logrotate进行日志轮替管理 ,要想改变日志轮替文件名字,通过/etc/logrotate.conf配置文件中"dateext"参数:
2.如果配置文件中有 “dateext"参数,那么日志会用日期来作为日志文件的后缀,例如"secure-20201010” 。这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件可。
3.如果配置文件中没有 “dateext"参数,日志文件就需要进行改名了。当第一次进行日志轮替时 ,当前的"secure” 日志会自动改名为"secure.1” ,然后新建"secure" 日志,用来保有新的日志。 当第二次进行日志轮替时,“secure.1” 会自动改名为"secure.2" ,当前的"secure" 日志会自动改名为"secure.1" ,然后也会新建"secure" 日志,用来保存新的日志,以此类推。
注意:也可以把某个日志文件的轮替规则,写到/etc/logrotate.d目录,比如系统启动日志/var/log/boot.log就写在/etc/logrotate.d目录下。
3.2.自定义日志轮替
把自己写的日志(hsp.log)加入日志轮替
第一种方法是直接在/etc/logrotate.conf配置文件中写入该日志的轮替策略。
第二种方法是在/etc/logrotate.d/目录中新建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略,因为该目录中的文件都会被"include"到主配置文件中,所以也可以把日志加入轮替。
推荐使用第二种方法,因为系统中需要轮替的日志非常多,如果全都直接写入/etc/logrotate.conf配置文件,那么这个文件的可管理性就会非常差,不利于此文件的维护。
3.3.日志轮替机制
日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务。在/etc/cron.daily/目录,就会发现这个目录中是有logrotate文件(可执行),logrotate通过这个文件依赖(cron后台程序)定时任务执行的。
4.内存日志
journalctl 可以查看内存日志, 常用的指令如下:
journalctl #查看全部
journalctl -n 3 #查看最新3条
journalctl --since 19:00 --until 19:10:10 #查看起始时间到结束时间的日志可加日期
journalctl -p err #报错日志
journalctl -o verbose # 日志详细内容
journalctl_ PID=1245 COMM= sshd #查看包含这些参数的日志(在详细日志查看) 或者journalctl | grep sshd
注意: journalctl 查看的是为内存日志,重启清空