Linux学习记录--日志系统

日志系统


日志系统对于一个系统来讲是很是重要的,从日志文件咱们能够获取到系统的运行情况,协助咱们排查问题。node

对于CentOs来讲,日志系统主要包含2个服务与1个程序vim

syslogd:记录系统与网络服务的信息网络

klogd:记录内核产生的各项信息ide

logrotate:日志文件的轮替功能post

说明:不一样的UNIX LIKE对应的服务可能不同spa



syslogd服务


syslogd服务配置文件分析

[root@localhost ~]# cat /etc/syslog.conf 
#kern.*                                                 /dev/console
*.info;mail.none;news.none;authpriv.none;cron.none              /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
# Log cron stuff
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
news.=crit                                        /var/log/news/news.crit
news.=err                                         /var/log/news/news.err
news.notice                                       /var/log/news/news.notice

配置文件格式以下日志


【服务类型】 【信息等级设置】【信息存储方式】进程

以cron.*  /var/log/cron 为例ip

cron是服务类型ci

. 是信息等级设置

/var/log/cron 信息存储方式


服务类别

服务类别

说明

auth (authpriv)

主要与认证有关的机制

cron

就是例行性工做cron/at 等产生信息记录的地方;

daemon

与各个 daemon(服务进程) 有关的信息;

kern

内核核 (kernel) 产生信息的地方

lpr

与打印相关的信息

mail

与邮件相关的信息

news

与新闻组相关的信息

syslog

syslogd程序自己产生的信息

user, uucp, local0 ~ local7

与 Unix like 机器自己有关的一些信息。


日志信息等级

等级

等级名称

说明

1

info

仅是一些基本的信息说明而已;

2

notice

须要注意的信息;

3

warning
(warn)

警示的信息, info, notice, warn 这三个信息都是在告知一些基本信息而已,应该还不至于形成一些系统运行困扰;

4

err
(error)

一些重大的错误信息

5

crit

比 error 还要严重的错误

6

alert

警告警告,已经颇有问题的等级,比 crit 还要严重

7

emerg
(panic)

疼痛等级,意指系统已经几乎要死机的状态


 . :表明比后面还要高的等级 (含该等级) 都被记录下来的意思。如mail .info

 .=:表明所须要的等级就是后面接的等级而已

 .!:表明不等于,除了该等级外的其余等级都记录。

 .*:表明说全部等级的信息都记录


日志文件的轮替(logrotate)

日志文件随着时间会变得愈来愈多,此时就须要进行日志文件轮替。以控制日志文件规模.logrotate就是作这个用的


日志轮替程序配置文件包括

/etc/logrotate.conf :记录总体轮替配置信息

/etc/logrotate.d/*  : 记录各个服务类型的轮替配置信息


其实能够在/etc/logrotate.conf中定义配置各类服务类型的日志轮替配置信息,为了方便管理将每一个服务类型的日志轮替配置信息造成独立文件存储在/etc/logrotate.d/*

[root@localhost logrotate.d]# ll
-rw-r--r-- 1 root root  144 2012-02-23 acpid
-rw-r--r-- 1 root root  288 2007-11-12 conman
…….
-rw-r--r-- 1 root root  100 10-02 06:17 wpa_supplicant
-rw-r--r-- 1 root root  100 2012-07-26 yum

logrotate的配置文件

[root@localhost ~]# vim /etc/logrotate.conf

=>下面为默认值。如不单独配置将才有下面的默认值
weekly    <==默认每周进行一次 rotate 的工做
rotate 4  <==默认保留4个登陆文件 
create    <==以新建立文件继续存储日志文件
#compress <==被更动的登陆文件是否须要压缩?若是登陆文件太大则可考虑此参数启动

include /etc/logrotate.d

/var/log/wtmp {       <==仅针对 /var/log/wtmp 所配置的参数
    monthly           <==每月一次,取代每周!
    minsize 1M        <==文件容量必定要超过 1M 后才进行
    create 0664 root utmp <==指定新建文件的权限与所属账号/群组
    rotate 1          <==仅保留一个 
}

日志轮替规则

当第一次执行轮替,本来日志文件msg 被重命名为msg1,同时建立新的msg以记录新的日志信息,当的当第二次执行轮替,日志文件msg1 被重命名为msg2, msg重命名为msg1,同时建立新的msg以记录新的日志信息,依次类推,日志文件最多保存的数量为rotate这个属性所指定的数值



日志轮替文件语法

正如前面看到的。日志轮替方式是写在配置文件中的,这里只作简单的说明

[root@localhost logrotate.d]# cat named

/var/log/named.log {
    missingok
create 0644 named named
sharedscripts
    postrotate 
        /sbin/service named reload  2> /dev/null > /dev/null || true
    endscript
}

如上前面文件。Logrotate轮替信息能够分为2部分

1.       内部参数

2.       引用外部执行


引用外部命令来进行额外的命令下达,这个配置需与 sharedscripts .... endscript 配置合用才行。至于可用的环境为:

prerotate:在启动 logrotate 以前进行的命令

postrotate:在作完 logrotate 以后启动的命令



内部参数
compress 经过gzip 压缩转储之后的日志
nocompress 不须要压缩时,用这个参数
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件可是不截断
create mode owner group 转储文件,使用指定的文件模式建立新的日志文件
nocreate 不创建新的日志文件
delaycompress 和 compress 一块儿使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即便是空文件也转储,这个是 logrotate 的缺省选项。
notifempty 若是是空文件的话,不转储
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript 在转储之前须要执行的命令能够放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储之后须要执行的命令能够放入这个对,这两个关键字必须单独成行
daily 指定转储周期为天天
weekly 指定转储周期为每周
monthly 指定转储周期为每个月
rotate count 指定日志文件删除以前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~

size size 当日志文件到达指定的大小时才转储,Size 能够指定 bytes (缺省)以及K (sizek)或者M (sizem).


执行日志轮替


语法:logrotate [-vf] logfile

选项与参数:

-v:显示运行过程

-f:不管是否符合配置文件的数据,强制每一个日志文件都进行轮替操做


举例

[root@localhost /]# logrotate -vf /etc/logrotate.conf
………………..
[root@localhost /]# ll /var/log/messages*
-rw------- 1 root root      50 03-28 14:00 /var/log/messages
-rw------- 1 root root      50 03-28 14:00 /var/log/messages.1
-rw------- 1 root root      50 03-28 13:59 /var/log/messages.2
-rw------- 1 root root  333879 03-28 10:44 /var/log/messages.3
-rw------- 1 root root 1289326 03-25 08:50 /var/log/messages.4
相关文章
相关标签/搜索