首页 > 代码库 > Linux日志管理与分类
Linux日志管理与分类
Linux默认系统日志
/var/log/messages
这是Linux最核心的日志文件,假若某个服务没有定义日志文件,那么该服务产生的日志文件就会记录到这个文件中,该日志每周归档一次,默认只保留5次。归档的方法都是由“/etc/logrotate.conf”这个文件来控制的。这个日志也有个守护进程“rsyslogd”如果把这个服务停止掉,就不会产生日志,在centos6之前的版本是由“syslogd”这个守护进程来管理的,不管是“rsyslogd”还是“syslogd”文件都在/sbin/目录下面,“syslogd”或者“rsyslogd”他们的服务配置文件在/etc/下面的的“rsyslog.conf”或者“syslog.conf”来控制
/var/log/wtmp
查看用户的登录,注销信息,同时记录系统的启动,重启,关机等事件。不用能cat直接查看,必须用last查看
/var/log/btmp
和wtmp类似,也不能用cat直接查看,用lastb查看,记录用户登录无效的历史
/var/log/maillog
用来记录邮件相关的日志,比如发给哪个,是否发出去
/var/log/secure
用来记录安全认证相关的信息,只要涉及到用户账户密码程序都会记录,比如系统登录,ssh登录,su切换用户,sudo授权,添加用户,修改密码等
/var/log/cron
记录了系统定时任务相关的日志
/var/log/cpus/
记录了打印信息的日志
/var/log/lastlog
记录所有用户的最后一次登录时间,只可能通过lastlog命令查看
dmesg
系统开机日志(直接输入dmesg)就会出来,不可以直接cat。记录了系统在开机自检的信息
RPM方式安装的系统服务也会默认把日志记录在/var/log/目录中
/var/log/httpd/
RPM包安装的apache服务的默认日志目录
/var/log/mail/
RPM包安装的邮件服务的额外日志目录
/var/log/samba/
RPM包安装的samba服务的日志目录
/var/log/sssd/
守护进程安全服务目录
源码包的日志在源码包指定的目录中,这些日志不是由rsyslogd服务来管理的,而是由各个服务使用自己的日志管理
Linux系统默认的日志文件格式是事件产生的时间,发生事件的服务器的主机名,产生事件的服务名或者程序名,事件的具体信息rsyslogd服务的配置文件说明“/etc/rsyslog.conf”
格式是,比如:authpriv.* /var/log/secure
服务名称连接符号日志等级 日志记录位置(这里是*代表是发送在线的给任何人)
这里的记录位置可以是:
日志文件绝对路径,如“/var/log/secure”
系统设备文件,如“/dev/lp0”
转发给远程主机,如“@192.168.1.1:514”
用户名,如“root”
忽略或丢弃日志,如“~”
名称:
auth | 安全和认证相关的消息(不推荐使用authpriv代替) |
authpriv | 安全和认证相关的消息(私有的) |
cron | 系统定时任务crond和at产生的日志 |
ftp | ftp守护进程产生的日志 |
kern | 内核产生的日志(不是用户进程产生的) |
Local1 | 为本地使用预留的服务 |
lpr | 打印产生的日志 |
邮件收发信息 | |
news | 与新闻服务器相关的日志 |
syslog | 有syslogd服务产生的日志,虽然服务名称已经改为rsyslogd,但是很多配置还是沿用了syslogd,这里并没有修改服务名 |
user | 用户程序产生的日志信息 |
uucp | uucp子系统的日志信息,uucp是早期linux系统进行数据传递的协议,后来也常用在新闻组服务中 |
级别:级别越高记录的信息越少越重要
debug | 一般的调试信息 |
info | 基本的通知信息 |
notice | 最具有重要性的普通条件信息记录(有一定的重要性) |
warning | 警告信息记录(一般还不会影响到服务或者系统的运行) |
err | 错误信息记录,一般达到err等级的信息以及可以影响到服务或者系统的运行 |
crit | 严重错误,比err还要严重(有可能会影响整个系统不能工作) |
alert | 比crit还要严重,需要马上修改 |
emerg | 达到这个等级,基本系统已经崩溃了 |
none | 什么都不记录 |
连接符号:
* | 代表所有日志等级,比如“authpriv.*”代表authpriv认证信息服务产生的日志,所有的日志等级都要记录 |
. | 代表只要比后面等级高的(包含该等级)日志都要记录,比如:“cron.info”代表cron服务产生的日志,只要大于等于info这个等级的都要记录 |
.= | 代表只记录与后面日志等级相同的日志,其它都不记录,比如“*.=emerg”代表所有服务产生的日志,只要等级是emerg的就记录 |
.! | 代表不是后面的等级,也就是除外的日志,都记录比如“kern.!debug”代表只要是kern产生的日志信息,除了debug外其它所有的都要记录 |
日志轮替
日志文件的命名规则
如果配置文件中拥有“dateext”参数,那么日志会用当前日期来作来日志文件的后缀,例如“secure-20151211”
如果日志中没有“dateext”这个参数,那么比如当前secure这个日志会自动改名为secure.1”然后再新建一个“secure”用来保存新的日志,也就是数字越大,历史越久
配置文件路径:“/etc/logrotate.conf”
参数解释:
daily 日志的轮替周期是每天
weekly 日志的轮替周期是每周
monthly 日志的轮替周期是每月
rotate N 保留的日志文件的个数,0指的没有备份
compress 日志轮替时,旧的日志进行压缩
create mode owner group
建立新日志,同时新日志的权限与所有和所属组
mail address 当日志轮替时,输出内容通过邮件发送到指定的邮件地址
missingok 如果日志不存在,则忽略该日志轮替
minsize 大小 日志轮替的最小值,也就是日志一定要达到这个大小才会轮替
size 大小 日志只有大于指定大小才进行日志轮替,而不是按照时间轮替,如:size 100K
dateext 使用日期作为日志轮替的后缀
copytruncate 对日志文件采用先copy再截断的处理
配置文件解释
配置文件在花括号以外的参数都是全局配置,但是如果花括号以内的参数与以外的参数有重要,那么以,花括号以内的参数为准
只要是RPM包安装的服务的日志一般都支持轮替,但是源码包安装的服务不支持,需要手工修改这个配置文件的加入进去,比如把apache日志加入轮替,在/etc/logrotate.conf这个文件的最后加下以下内容
/usr/local/apache2/logs/access_log{ monthly copytruncate create 0664 root utmp minsize 1M rotate 1 }
logrotate命令
格式:logrotate [选项] 配置文件名
常用选项有:
-v 显示日志轮替过程
-f 强制进行日志轮替,不管有没有达到轮替的条件
如果没有加选项,则会按配置文件中的条件进行日志轮替
本文出自 “蓝色_风暴” 博客,请务必保留此出处http://270142877.blog.51cto.com/12869137/1944078
Linux日志管理与分类