日志管理

一、处理日志的进程

rsyslogd: 绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron…

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

tail /var/log/messages		   //系统主日志文件
tail -20 /var/log/messages
tail -f /var/log/messages	  //动态查看日志文件的尾部
tailf /var/log/secure		  //认证、安全
tail /var/log/maillog		 //跟邮件postfix相关
tail /var/log/cron		 //crond、at进程产生的日志
tail /var/log/dmesg		 //和系统启动相关
tail /var/log/audit/audit.log    //系统审计日志
tail /var/log/yum.log            //yum
tail /var/log/mysqld.log         //MySQL
tail /var/log/xferlog            //和访问FTP服务器相关
w				 //当前登录的用户 /var/log/wtmp
last				 //最近登录的用户 /var/log/btmp
lastlog				 //所有用户的登录情况/var/log/lastlog

三、rsyslogd子系统

rpm -qc rsyslog

/etc/logrotate.d/syslog                 //和日志办轮转(切割)相关
/etc/rsyslog.conf                       //rsyslogd的主配置文件
/etc/sysconfig/rsyslog                  //rsyslogd相关文件  

vim /etc/rsyslog.conf

RULES

告诉rsyslogd进程 哪个设备(facility),关于哪个级别的信息,以及如何处理
authpriv.*                             /var/log/secure
mail.*                                 -/var/log/maillog
cron.*                                 /var/log/cron
mail.info                              /var/log/maillog
authpriv.*                             *                   <所有终端>
authpriv.*                             @192.168.10.230     <UDP>
authpriv.*                             @@192.168.10.230    <TCP>

设备facility

# man 3 syslog
LOG_AUTH
LOG_AUTHPRIV 安全认证
LOG_CRON clock daemon (cron and at)
LOG_DAEMON 后台进程
LOG_FTP ftp daemon
LOG_KERN kernel messages
LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备
LOG_LPR printer subsystem
LOG_MAIL 邮件系统mail subsystem
LOG_NEWS news subsystem
LOG_SYSLOG syslogd自身产生的日志
LOG_USER (default)
LOG_UUCP

级别level syslogd 遇到何种情况(正常、错误)才会记录日志

LOG_EMERG   紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT   报警,需要立即处理,如磁盘空使用95%
LOG_CRIT    致命行为
LOG_ERR     错误行为
LOG_WARNING 警告信息
LOG_NOTICE  普通
LOG_INFO    标准信息
LOG_DEBUG   调试信息,排错所需,一般不建议使用

四、logrotate(轮状、日志切割)

logrotate 配置文件:
/etc/logrotate.conf (决定每个日志文件如何轮转)
/etc/logrotate.d/*
  1. 如果没有日志轮转,日文件会越来越大

  2. 将丢弃系统中最旧的日志文件,以节省空间

  3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行

[root@test~]# cat /etc/cron.daily/logrotate             
#!/bin/sh       
/usr/sbin/logrotate  -s /var/lib/logrotate/logrotate.status  /etc/logrotate.conf  //日志轮转,按/etc/logrotate.conf 

主配置文件
[root@test ~]# vim /etc/logrotate.conf

=========全局设置==========
weekly                               //轮转的周期,一周轮转
rotate 4                             //保留4份
create                               //轮转后创建新文件
dateext                              //使用日期作为后缀
#compress                            //是否压缩
include /etc/logrotate.d             //包含该目录下的文件

/var/log/wtmp {                      //对该日志文件设置轮转的方法
    monthly                          //一月轮转一次
    minsize 1M                       //最小达到1M才轮转
    create 0664 root utmp            //轮转后创建新文件,并设置权限
    rotate 1                         //保留一份
}

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

Example:

  1. 轮转文件/etc/logrotate.d/yum
# vim /etc/logrotate.d/yum          
/var/log/yum.log {
    missingok
#    notifempty
#    size 30k
#    yearly
    daily
    rotate 3
    create 0777 root root
}
  1. /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
posted @ 2021-08-27 15:26  Cai_HL  阅读(197)  评论(0编辑  收藏  举报
>