Linux默认系统日志

  1.   /var/log/messages

    这是Linux最核心的日志文件,假若某个服务没有定义日志文件,那么该服务产生的日志文件就会记录到这个文件中,该日志每周归档一次,默认只保留5次。归档的方法都是由“/etc/logrotate.conf”这个文件来控制的。这个日志也有个守护进程“rsyslogd”如果把这个服务停止掉,就不会产生日志,在centos6之前的版本是由“syslogd”这个守护进程来管理的,不管是“rsyslogd”还是“syslogd”文件都在/sbin/目录下面,“syslogd”或者“rsyslogd”他们的服务配置文件在/etc/下面的的“rsyslog.conf”或者“syslog.conf”来控制

  2.  /var/log/wtmp

    查看用户的登录,注销信息,同时记录系统的启动,重启,关机等事件。不用能cat直接查看,必须用last查看

  3.   /var/log/btmp

    wtmp类似,也不能用cat直接查看,用lastb查看,记录用户登录无效的历史

  4. /var/log/maillog

    用来记录邮件相关的日志,比如发给哪个,是否发出去

  5.  /var/log/secure

  6. 用来记录安全认证相关的信息,只要涉及到用户账户密码程序都会记录,比如系统登录,ssh登录,su切换用户,sudo授权,添加用户,修改密码等

  7.  /var/log/cron

    记录了系统定时任务相关的日志

  8. /var/log/cpus/

    记录了打印信息的日志

  9. /var/log/lastlog

    记录所有用户的最后一次登录时间,只可能通过lastlog命令查看

  10. dmesg

    系统开机日志(直接输入dmesg)就会出来,不可以直接cat。记录了系统在开机自检的信息

  11. RPM方式安装的系统服务也会默认把日志记录在/var/log/目录中

            /var/log/httpd/

                RPM包安装的apache服务的默认日志目录

            /var/log/mail/

                RPM包安装的邮件服务的额外日志目录

            /var/log/samba/

                RPM包安装的samba服务的日志目录

            /var/log/sssd/

                 守护进程安全服务目录

  12. 源码包的日志在源码包指定的目录中,这些日志不是由rsyslogd服务来管理的,而是由各个服务使用自己的日志管理

  13. Linux系统默认的日志文件格式是事件产生的时间发生事件的服务器的主机名产生事件的服务名或者程序名事件的具体信息rsyslogd服务的配置文件说明“/etc/rsyslog.conf”

格式是,比如:authpriv.*            /var/log/secure

服务名称连接符号日志等级 日志记录位置(这里是*代表是发送在线的给任何人)

      这里的记录位置可以是:

日志文件绝对路径,如“/var/log/secure

系统设备文件,如“/dev/lp0

转发给远程主机,如“@192.168.1.1:514

用户名,如“root

忽略或丢弃日志,如“~


名称:

auth 安全和认证相关的消息(不推荐使用authpriv代替)
authpriv 安全和认证相关的消息(私有的)
cron 系统定时任务crondat产生的日志
ftp ftp守护进程产生的日志
kern 内核产生的日志(不是用户进程产生的)
Local1 为本地使用预留的服务
lpr 打印产生的日志
mail 邮件收发信息
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外其它所有的都要记录 


日志轮替 

  1. 日志文件的命名规则

    1. 如果配置文件中拥有“dateext”参数,那么日志会用当前日期来作来日志文件的后缀,例如“secure-20151211

    2. 如果日志中没有“dateext”这个参数,那么比如当前secure这个日志会自动改名为secure.1”然后再新建一个“secure”用来保存新的日志,也就是数字越大,历史越久

  2. 配置文件路径:“/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     强制进行日志轮替,不管有没有达到轮替的条件

如果没有加选项,则会按配置文件中的条件进行日志轮替