Linux日志管理

Linux日志管理

  • 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、邮件相关信息、各种服务相关信息
  • 日志对于安全来说很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或则收到攻击时攻击者留下的痕迹
  • 日志是用来记录重大事件的工具

系统常用的日志文件保存位置: /var/log/

系统常用的日志

日志文件说明
/var/log/boot.log系统启动日志
/var/log/cron与系统定时任务相关的日志
/var/log/cups/记录打印信息的日志
/var/log/dmesg记录系统在开机时内核自检的信息。使用dmesg查看
/var/log/btmp记录错误登录日志,二进制文件,需要用lastb查看
/var/log/lasllog记录系统中所有用户最后一次的登录时间的日志,使用lastlog命令查看
/var/log/mailog记录邮件信息日志
/var/log/message记录系统重要信息的日志,这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题,首先需要检查该文件
/var/log/secure记录验证和授权方面的信息,只要涉及账户和密码的程序都会被记录
/var/log/wtmp永久记录所有用户的登录,注销信息,同时记录系统的启动,重启,关机时间,需要用last命令查看
/var/log/ulmp记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断发生变化,只记录当前登录用户的信息,需要使用w、who、users命令查看你

日志管理服务 rsyslogd

CentOS7.6日志服务是 rsyslogd Centos6.x 日志服务是syslogd 。 rsyslogd功能更强大。rsyslogd的使用、日志文件的格式,和syslogd服务兼容的

查询Linux中的rsyslogd服务是否启动

ps aux | grep "rsyslog" |grep -v "grep"

查询rsyslogd服务的自启动状态

systemctl list-unit-files |grep rsyslog

日志配置文件

文件目录:/etc/rsyslog.conf

日志级别

  • debug 有调试信息的,日志通信最大
  • info 一般信息日志,最常用
  • notice 最具有重要性的普通条件的信息

警告级别

  • err 错误界别,阻止某个功能或则模块不能正常工作的信息
  • crit 严重级别,组织某个系统或整个软件不能正常工作的信息
  • alert 需要立刻修改的信息
  • emerg 内核崩溃等重要信息
  • none 什么都不记录

从上到下,级别从低到高,记录信息越来越少

由日志服务rsyslogd记录的日志文件,日志文件的格式包含一下4列:

  • 时间产生的时间
  • 产生时间的服务器的主机名
  • 产生时间的服务名或程序名
  • 时间的具体信息

自定义日志管理服务

#增加自定义的日志
*.*                                                     /var/log/ylq.log

[root@rootylq log]# vim /etc/rsyslog.conf
[root@rootylq log]# > /var/log/ylq.log
[root@rootylq log]# cat /var/log/ylq.log 
[root@rootylq log]# reboot

[root@rootylq log]# cat ylq.log | grep sshd
Jan 19 13:40:39 rootylq sshd[28778]: Received signal 15; terminating.
Jan 19 13:40:39 rootylq sshd[8950]: pam_unix(sshd:session): session closed for user ylq
Jan 19 13:40:57 rootylq sshd[1272]: Server listening on 0.0.0.0 port 22.
Jan 19 13:41:01 rootylq sshd[1412]: Accepted password for root from 115.236.56.78 port 63087 ssh2


日志轮替

日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存范围之后,就会进行删除

日志轮换文件命名

  • CentOS7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过 /etc/logrotate.conf 配置文件中“dateext”参数
  • 如果配置文件中有“dateext”参数,则日志会用日期作为日志文件的后缀。例如“secure-20201010”。只需要指定保存日志个数,删除多余的日志文件即可
  • 如果配置文件中没有“dateext”参数,日志文件就需要进行改名,当第一次进行日志轮替是,当前“secure”日志会自动改名为“secure.1”,然后新建“secure”日志,用来保存新的日志。当第二次进行日志轮替时,“secure.1”会自动改名成“secure.2”,当前的“secure”日志会自动改名为“secure.1”,然后新建“secure”日志,用来保存新的日志,从而依此类推

logrotate配置文件

  • daily 日志轮替周期每天
  • weekly 日志轮替周期每周
  • monthly 日志轮替周期每月
  • rotate 数字 保留的日志文件的个数。0指没有备份
  • compress 日志轮替时,旧的日志进行压缩
  • create mode owner group 建立新日志,用时指定新日志的权限与所有者和所属组
  • mail address 当日志轮替时,输出内容通过邮箱发送到指定的邮箱地址
  • missingok 如果日志不存在,则忽略该日志的警告信息
  • notifempty 如果日志为空文件,则不进行日志轮替
  • minsize 日志轮替的最小值。也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替
  • size 大小 日志只有大于指定大小才进行日志轮替,而不是按照时间轮替
  • dateext 使用日期作为日志轮替文件的后缀
  • sharedscripts 在此关键字之后的脚本只执行一次
  • prerotate/endscript 在日志轮替之前执行脚本命令
  • postrotate/endscript 在日志轮替之后执行脚本命令

将自己的日志加入日志轮替

  • 方法一:直接在/etc/logrotate.conf 配置文件中写入该日志的轮替策略
  • 方法二:在/etc/logrotate.d/目录中新建该日志的轮替文件,在该轮替文件中写入正确的轮替策略,因为该目录中的文件都会被“include”到主配置文件中,所以也可以把日志加入轮替
[root@rootylq logrotate.d]# cat ylqlog
/var/log/ylq.log
{
	missingok
	daily
	copytruncate
	rotate 7
	motifempty	
}
[root@rootylq logrotate.d]# ll
total 32
-rw-r--r--. 1 root root  91 Sep 30  2020 bootlog
-rw-r--r--. 1 root root 160 Sep 19  2018 chrony
-rw-r--r--  1 root root  93 Apr 28  2021 firewalld
-rw-r--r--  1 root root 972 Sep 14 03:07 mysql
-rw-r--r--  1 root root 224 Jan 14  2022 syslog
-rw-r--r--  1 root root 100 Mar 16  2021 wpa_supplicant
-rw-r--r--  1 root root  76 Jan 19 14:58 ylqlog
-rw-r--r--. 1 root root 103 Oct  2  2020 yum
[root@rootylq logrotate.d]# 

日志轮替机制原理

日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务。在/etc/cron.daily/目录,就会发现这个目录中是有logrotate文件(可执行),logrotate通过这个文件依赖定时任务执行的

[root@rootylq logrotate.d]# cd /etc/cron.daily/
[root@rootylq cron.daily]# ll
total 12
-rwx------. 1 root root 219 Apr  1  2020 logrotate
-rwxr-xr-x. 1 root root 618 Oct 30  2018 man-db.cron
-rwx------  1 root root 208 Apr 11  2018 mlocate
[root@rootylq cron.daily]# 

查看内存日志

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在详细体制中查看包含这些参数的日志
[root@rootylq /]# journalctl | grep sshd

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值