linux日志系统

日志文件

常见日志文件:

  • alternatives.log:系统的更新替代信息
  • apport.log:应用程序崩溃信息记录
  • apt/history:使用apt-get安装卸载软件的信息记录
  • apt/term.log:使用apt-get时的具体操作
  • auth.log:登录认证的log信息
  • boot.log:系统启动时的日志信息
  • btmp:记录所有失败启动信息
  • dmesg:内核缓冲信息,在系统启动时,显示屏幕上的与硬件有关的信息
  • dpkg.log:安装或dpkg命令清楚软件包的日志
  • kern.log:内核产生的日志,有助于在定制内核时解决问题
  • lastlog:记录所有用户的最近信息,需要用lastlog命令查看内容
  • faillog:用户登录失败信息。此外,错误登录命令也会记录在本文件中
  • wtmp:包含登录信息,使用wtmp可以找出谁在登录进入系统,谁在使用命令显示这个文件或信息等
  • syslog:系统信息记录

日志内容的一般格式:

  • 事件发生的时间
  • 发生的主机名
  • 启动的服务名称
  • 实际信息内容

有两个比较特殊的日志,不能使用less,cat,more工具命令查看,这两个日志文件是wtmp,lastlog。
使用last和lastlog工具来提取其中的信息
last
lastlog:
参数:

  • -b:仅打印早于DAYS的最近登录记录
  • -h:显示此帮助信息并推出
  • -R:chroot到的目录
  • -t:仅打印晚于DAYS的最近登录记录
  • -u:打印LOGIN用户的最近登录记录

rsyslog系统日志

rsyslog提供了高性能,高安全功能和模块化设计。
rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。
默认的rsyslog配置文件是:

  • /etc/rsyslog.conf:主要决定需要加载的模块,文件所属者
  • /etc/rsyslog.d/50-defaul.conf:主要是用来配置Filter Conditions.

rsyslogd的主要结构由三个模块组成:

  • Input
  • Output
  • Parser

其流程是首先通过Input module来收集信息,然后将得到的信息传给Parser module,通过分析模块的层层处理,将真正需要的信息传给Output module,然后便输出至日志文件中。

配置文件内容

cat /etc/rsyslog.conf

在这里插入图片描述
查看rsyslog系统中的配置:

cat /etc/rsyslog.d/50-default.conf

在这里插入图片描述
例如1:
通过命令行向日志文件写入信息:

#首先启动syslog
sudo service rsyslog start
#向syslog写入数据
ping 127.0.0.1 | logger -it logger_test -p local3.notice &
#查看是否有数据写入
sudo tail -f /var/log/syslog

日志文件的转储

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,然后创建新的日志文件。可以根据日志文件的大小,也可以根据其天数来切割日志、管理日志,这个过程又叫做“转储”。
查看/etc/logrotate.conf文件中的内容:

cat /etc/logrotate.conf

在这里插入图片描述
第一行:可以查看帮助文件
第二三行:设置每周转储一次(可以改成daily每天,weekly每星期,monthly每月)
第四五行:最多转储4次
第六七行:当转储后文件不存在时创建它
第八九行:通过gzip压缩方式转储(nocompress可以不压缩)
第十,十一行:其他日志文件转储方式配置文件,包含在该目录下
第十二至十八行:设置/var/log/wtmp日志文件的转储参数/每月转储/转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应权限为0664/最多转储一次

例如:
创建一个日志文件,然后往里面写入10M的数据,创建这个日志文件的配置文件。

sudo touch /var/log/log-file
sudo chmod 777 /var/log/log-file
sudo head -c 10M </dev/urandom> /var/log/log-file
sudo touch /etc/logrotate.d/log-file
sudo vim /etc/logrorate.d/log-file

在这里插入图片描述
配置参数:

  • monthly:日志文件按月转储
  • rotate 5:一次转储最近的5个归档日志
  • compress:在转储任务完成后,已转储的日志将使用gzip进行压缩
  • delaycompress:和compress选项一起使用,delaycompress表示logrotate不会将最近的压缩,压缩将在下一次转储周期进行
  • missingok:在日志转储的时候,任何错误将被忽略,例如“文件无法找到”之类的错误。
  • notifempty:如果日志文件为空,转储不会进行
  • create 644 root root:以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件
  • postrotate/endscript:在所有其他指令完成后,postrotate和endscript里面指定的命令将被执行。rsyslogd进程将立即再次读取其配置并继续运行
    例如:当文件满足10M就转储一个日志文件
sudo vim /etc/logrotate.d/log-file
/var/log/log-file{
	su root root
	size=10M
	rotate 5
	create 644 root root
	postrotate
		/usr/bin/killall -HUP rsyslogd
	endscript
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值