Linux操作系统之日志管理

一、rsyslog系统日志管理

1、处理日志的进程

第一类:rsyslogd: 系统专职日志程序。绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。

第二类:httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志。

2、常见的日志文件(系统、进程、应用程序)

# tail -f /var/log/messages  //动态查看日志文件的尾部
# tailf /var/log/secure    //认证、安全
# tailf /var/log/yum.log   //yum
# tailf /var/log/maillog    //跟邮件postfix相关
# tailf /var/log/cron    //crond、at进程产生的日志
# tailf  /var/log/dmesg    //和系统启动相关     

tail -f 可以简写为tailf

 3、rsyslog配置

相关程序    

 yum -y install rsyslog  logrotate     (默认已安装)

启动程序

systemctl  start  rsyslog

观察日志的配置文件

rpm  -qc   rsyslog     (可以看到一下三个文件)

/etc/rsyslog.conf              rsyslogd的主配置文件

/etc/sysconfig/rsyslog      rsyslogd相关文件,定义级别

etc/logrotate.d/syslog      和日志轮转(切割)相关

4、主配置文件

告诉rsyslogd进程什么日志,应该存到哪里。

打开主配置文件:

 vim /etc/rsyslog.conf

打开主配置文件,找到里面的RULES那一条,RULES:即规则,是一套生成日志,以及存储日志的策略。

RULES即规则,有三部分组成(由设备+级别+存放位置)  RULES由FACILITY+LEVEL+FILE组成。下面是RULES里包含的一些规则,在 . 的左侧是设备名称,右侧是级别(一般都是 * ‘所有级别’) 最右侧就是日志文件的位置。

authpriv.*         /var/log/secure(SSH信息)

mail.*             -/var/log/maillog(发邮件) 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大

cron.*             /var/log/cron(创建任务)

 *.info;mail.none;authpriv.none;cron.none                /var/log/messages   系统日志排除了邮件,认证,计划日志。

下面的图可以清晰的反映三者之间的关系:

Linux操作系统之日志管理_第1张图片

二、logrotate日志轮转

1、简介

      日志  记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的。日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整理方便,日志文件经常需要按时间或大小等维度分成多份,删除时间久远的日志文件。

2、工作原理

按照配置进行轮转

配置文件种类

① 主配置文件

/etc/logrotate.conf     (决定每个日志文件如何轮转)

vim /etc/logrotate.conf   //查看logrotate主配置文件中的信息
# see "man logrotate" for details
# rotate log files weekly
weekly      //每周切割一次

# keep 4 weeks worth of backlogs
rotate 4    //保留4份 

# create new (empty) log files after rotating old ones
create    //切割了旧的日志文件后创建一个新的日志文件

# use date as a suffix of the rotated file
dateext    //切割下来的日志文件使用日期作为后缀

# uncomment this if you want your log files compressed
#compress   //是否压缩

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d    //包含子配置文件

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly     //一月切割一次
    create 0664 root utmp       
        minsize 1M   //轮转最小大小为1M,如果时间已经过了一个月但是大小小于1M是不能切割的
    rotate 1   //保留一份
}

/var/log/btmp {
    missingok   //丢失不提示
    monthly
    create 0600 root utmp   //轮转后创建新文件并设置权限
    rotate 1
}

# system-specific logs may be also be configured here.

②  子配置文件夹

/etc/logrotate.d/*

 用户自定义配置,方便管理。在这里设置的轮转规则只适用于设置的一个或几个程序。如果没有单独设置,则程序遵循主配置文件的轮转规则。

③ yum日志轮转示例

轮转的目标文件

/var/log/yum.log   在这里查看轮转的信息

vim /etc/logrotate.d/yum    //配置yum的轮转规则
/var/log/yum.log {
    missingok   //丢失不用找回
   #notifempty   //空文件不轮转
   #maxsize 30k   //达到30k就轮转,date or size 任意一个达到就可以轮转
   #yearly   //每年轮转一次
daily    //每日轮转
rotate 3  //保留3份
    create 0777 root root  //
}

 

你可能感兴趣的:(rsyslog日志管理)