Linux操作系统之日志管理

2020-09-24 13:57发布

一、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   系统日志排除了邮件,认证,计划日志。

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

二、logrotate日志轮转

1、简介

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

2、工作原理

按照配置进行轮转

配置文件种类

① 主配置文件

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

vim /etc/logrotate.conf   //查看logrotate主配置文件中的信息# see "man logrotate" for details# rotate log files weeklyweekly      //每周切割一次# keep 4 weeks worth of backlogsrotate 4    //保留4份# create new (empty) log files after rotating old onescreate    //切割了旧的日志文件后创建一个新的日志文件# use date as a suffix of the rotated filedateext    //切割下来的日志文件使用日期作为后缀# uncomment this if you want your log files compressed#compress   //是否压缩# RPM packages drop log rotation information into this directoryinclude /etc/logrotate.d    //包含子配置文件# no packages own wtmp and btmp -- we'll rotate them here/var/log/wtmp {monthly     //一月切割一次create 0664 root utmpminsize 1M   //轮转最小大小为1M,如果时间已经过了一个月但是大小小于1M是不能切割的rotate 1   //保留一份}/var/log/btmp {missingok   //丢失不提示monthlycreate 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  //}

 

转载自CSDN  作者:yiweii

原文链接:https://blog.csdn.net/yiweii/article/details/107847375