目标
对于日志系统有基础的认识,了解【常见的日志】【配置的日志】【轮替的日志】
学习目录
1.常见的日志
2.配置的日志
3.转储的日志
1.常见的日志
在Linux大部分发行版都内置使用rsyslog系统日志,常见的日志一般存放在/var/log中。
根据服务对象一般可以把日志分为两种:
- 系统日志
- 应用日志
系统日志主要存放系统内置程序或系统内核之类的日志信息。
应用日志主要是存放第三方应用所产生的日志。
常见的系统日志
alternatives.log | 系统的一些更新替代信息记录 |
---|---|
apport.log | 应用程序崩溃信息记录 |
apt/history.log | 使用apt-get安装卸载软件的信息记录 |
apt/term.log | 使用apt-get时的具体操作 |
auth.log | 登录认证的信息记录 |
boot.log | 系统启动时的程序服务的日志信息 |
btmp | 错误的信息记录 |
Consolekit/history | 控制台的信息记录 |
dist-upgrade | dist-upgrade 这种更新方式的信息记录 |
dmesg | 启动时,显示屏幕上内核缓冲信息,与硬件有关的信息 |
dpkg.log | dpkg 命令管理包的日志 |
faillog | 用户登录失败详细信息记录 |
fontconfig.log | 与字体配置有关的信息记录 |
kern.log | 内核产生的信息记录,在自己修改内核时很有帮助 |
lastlog | 用户的最近信息记录 |
wtmp | 登录信息的记录,wtmp可以找出谁正在进入系统 |
syslog | 系统信息记录 |
2.配置的日志
日志信息是如何实现的?
通过两种方式:
- 一种由软件开发商自己来自定义日志格式然后指定输出日志位置
- 一种方式就是Linux提供的日志服务程序,也就是rsyslog
rsyslog的全称是 rocket-fast system for log,它提供了高性能高安全功能和模块化设计。
rsyslog的配置文件有什么呢?
- 一个是/etc/rsyslog.conf
#配置环境,也就是加载模块,文件所属者 - 一个是/etc/rsyslog.d/50-default.conf
#配置的Filter Conditions
rsyslog模块构成:
- input
- output
- parser
- queue
模块流程:通过input module收集消息,然后将收集的消息传送给parser module,通过分析模块的层层处理将真正需要的消息传送给output module,然后输出至日志文件。
queue模块:高并发模块。
etc/rsyslog.d/50-default.conf 配置文件
这个文件中主要是配置的 Filter Conditions,也就是我们在流程图中所看见的 Parser & Filter Engine,它的名字叫 Selectors 是过滤 syslog 的传统方法,他主要由两部分组成,facility 与 priority。
3.转储的日志
出现原因:每天都有许多的日志信息被写入文件,为了节约空间logratate诞生了。
logratate:日志文件管理工具。将旧的日志文件删除,创建新的日志文件,根据日志文件的大小或者日志文件的天数来切割日志,管理日志,这个过程叫做“转储”。
logratate是基于CRON来运行,其脚本是/etc/cron.daily/logratate,同时,可以在/etc/logratate中找到其配置文件。
logratate配置文件信息参数及含义
see “man logrotate” for details //可以查看帮助文档
rotate log files weekly
weekly //设置每周转储一次(daily、weekly、monthly当然可以使用这些参数每天、星期,月 )
keep 4 weeks worth of backlogs
rotate 4 //最多转储4次
create new (empty) log files after rotating old ones
create //当转储后文件不存在时创建它
uncomment this if you want your log files compressed
compress //通过gzip压缩方式转储(nocompress可以不压缩)
RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日志文件的转储方式配置文件,包含在该目录下
no packages own wtmp – we’ll rotate them here
/var/log/wtmp { //设置/var/log/wtmp日志文件的转储参数
monthly //每月转储
create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664
rotate 1 //最多转储一次