日志管理
分类:linux基础 热度:

 
日志管理
==============================================================================================
rsyslogd  日志管理
logrotate 日志轮转
 
一、处理日志的进程
rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证,计划任务...
          rsyslogd不负责处理日志,只记录日志
处理日志:1.少量日志可以使用vim cat tail less more grep awk这些文档处理程序查看和检索
         2.大量日志可以用splunk,logserch
日志分类:系统日志,进程日志,应用程序(某些应用程序例如httpd,nginx,mysql,可以以自己的方式记录日志)
 
记录日志原因: 拍错,追溯事件,统计流量
 
[root@yunwei  ~]# ps aux |grep rsyslogd
root     13437  0.0  0.0 183544  1484 ?   Sl 16:07   0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
日志可以存放在本地
日志可以存放在远程服务器
 
 
二、常见的日志文件
# ls /var/log/
# tail /var/log/messages           //系统主日志文件
# tail -20 /var/log/messages
# tail -f /var/log/messages         //动态查看日志文件的尾部
# tail -f /var/log/secure                //认证、安全
# tail /var/log/maillog               //跟邮件(sendmail,postfix)相关
# tail /var/log/cron                    //crond、at进程产生的日志
# tail /var/log/dmesg                  //和系统启动相关-开机后不再记录,可以使用dmesg命令查看活动的日志
# grep -i eth /var/log/dmesg                //只反映出开机过程的信息,开机成功后不会再改变
# dmesg                                                 //查看系统开机后的信息
# tail /var/log/audit/audit.log       //系统审计日志
# tail /var/log/yum.log
# tail /var/log/mysqld.log                      //mysql进程自己记录的日志
# tail /var/log/httpd/access_log            //httpd进程自己记录的日志
# tail /var/log/xferlog                       //和访问FTP服务器相关
# w                                         //当前登录的用户 /var/log/wtmp
# last                                     //最近登录的用户 /var/log/btmp
# lastlog                               //所有用户的登录情况 /var/log/lastlog
 
三、rsyslogd系统
rsyslogd是如何工作的:应用程序或者进程------->设备------->级别--------->动作(规则)
# rpm -qc rsyslog
 
/etc/logrotate.d/syslog                     //和日志的轮转(切割)有关
/etc/rsyslog.conf                               //rsyslogd的主配置文件
/etc/rsyslog.d/*.conf
/etc/sysconfig/rsyslog                
 
# vim /etc/rsyslog.conf
========================================================
==规则:Rules
告诉rsyslogd进程哪个设备(facility),关于哪个级别的信息,以及如何处理,不同的应用程序会选择不同的设备进行日志记录
authpriv.*                                   /var/log/secure
mail.*                                         -/var/log/maillog 延迟一段时间再记录
cron.*                                         /var/log/cron
mail.info                            /var/log/maillog  级别是info
authpriv.*                            * (所有终端,包括debug) 
authpriv.*                           @192.168.10.230          @意思是:udp协议传输远程日志服务器
authpriv.*                           @@192.168.10.230         @@意思是:TCP协议传输
authpriv.*                           :omrelp:192.168.10.230   :omrelp:意思是:To forward via  RELP,  prepend  the 
                                                                                     string ":omrelp:" in front of the hostname.
                                                                                     
PS:应用程序选择日志设备,rsyslog根据设备对应的级别选择要不要将日志记录到相关的日志文件中
===================================================
==设备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                  调试信息,排错所需,一般不建议使用
======================================================== 
作业1:将authpriv设备日志记录到/var/log/auth.log
作业2:改变应用程序sshd的日志设备为local5, 并定义local5设备日志记录到/var/log/local5.local
作业3:使用logger程序写日志到指定的设备及级别
 
logger:手动的往某个设备中写某个级别的日志,格式 looger -p(print) local6(设备).debug(级别) pangzi(内容)
 
 
rsyslogd日志管理
========================================================
一、集中式日志管理
RHEL6:
==日志服务器(开启接收功能)
[root@yunwei  ~]# vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514
[root@yunwei  ~]# service  rsyslog restart
[root@yunwei  ~]# netstat -tunlp |grep :514
udp        0      0 0.0.0.0:514                    0.0.0.0:*                        13096/rsyslogd      
udp        0      0 :::514                            :::*                                 13096/rsyslogd
[root@yunwei  ~]# tcpdump -i eth0 -nn 'host 192.168.10.100 and port 514'     
[root@yunwei  ~]# tail -f /var/log/secure
 
==日志客户端
[root@yunwei  ~]# vim /etc/rsyslog.conf
authpriv.*                                             @192.168.10.240
[root@yunwei  ~]# service rsyslog restart
 
实验注意事项:                                                                
服务器端开启远程日志接收,并定义设备、级别以及处理方式                              
客户端开启远上传日志功能,定义设备、级别,处理方式为网络上传 @udp @@tcp              
PS:1.客户端上定义的设备,必须保证服务器端有同样的设备进行接收(包括级别和动作都要一样)
    2.防火墙 selinux 要关掉或者防火墙中允许相应端口传输数据   
 
 
rsyslogd日志管理
========================================================
 
一、logrotate (轮转,日志切割)
1. 如果没有日志轮转,日文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间
3. logrotate本身不是系统进程,它是通过计划任务crond每天执行 
 
[root@yunwei  ~]# cat /etc/cron.daily/logrotate //计划任务
#!/bin/sh
 
/usr/sbin/logrotate /etc/logrotate.conf //日志轮转,按/etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"    
fi
exit 0
 
 
logrotate 配置文件:
/etc/logrotate.conf (决定每个日志文件如何轮转)
/etc/logrotate.d/
 
[root@tianyun ~]# ls /etc/logrotate.conf /etc/logrotate.d/
/etc/logrotate.conf
/etc/logrotate.d/:
acpid   cups   iscsiuiolog  ppp  rpm  subscription-manager  up2date     wpa_supplicant
conman  httpd  mgetty       psacct  setroubleshoot  syslog                vsftpd.log  yum
 
主配置文件
[root@tianyun ~]# vim /etc/logrotate.conf (详细信息在man手册里)
=========全局设置==========
weekly                          //轮转的频率,一周轮转
rotate 4                    //保留4份
create                       //轮转后创建新文件
dateext                           //使用日期作为后缀
#compress                    //是否压缩
 
# RPM packages drop log rotation information into this directory  rpm安装的程序,按照下面目录规则进行轮转
include /etc/logrotate.d          //包含该目录下的文件
 
# no packages own wtmp and btmp -- we'll rotate them here  对于wtmp和btmp这样无主的日志,按照下面配置进行轮转
/var/log/wtmp {                  //对该日志文件设置轮转的方法
    monthly                    //一月轮转一次
    minsize 1M                //最小达到1M才轮转
                                              PS:就算到了一个月,如果日志不到1M,也不能轮转
    create 0664 root utmp            //轮转后创建新文件,并设置权限
    rotate 1                   //保留一份
}
 
/var/log/btmp {
    missingok               //丢失不提示
    monthly                    //每月轮转一次
    create 0600 root utmp            //轮转后创建新文件,并设置权限
    rotate 1                   //保留一份
}
 
 
例1:轮转文件/var/log/yum.log
# vim /etc/logrotate.d/yum  原有的设置
/var/log/yum.log {                //yum日志文件
    missingok               //丢失不提示
    notifempty                //如果为空,不轮转
    size 30k                 //30k
    yearly                   //一年轮转一次
                                              PS:到了一年或者大小达到30k都要轮转
    create 0600 root root          //创建新文件
}
 
# vim /etc/logrotate.d/yum 修改后的设置
/var/log/yum.log {
       missingok
#    notifempty
#    size 30k
#    yearly
 
      daily
      rotate 3
      create 0777 root root
}
 
测试:
# /usr/sbin/logrotate /etc/logrotate.conf  //手动轮转
# grep 'yum' /var/lib/logrotate.status  //记录所有日志文件最近轮转的时间
"/var/log/yum.log" 2012-11-10
# date 111114002012
# /usr/sbin/logrotate /etc/logrotate.conf
 
例2:
/var/log/messages {  脚本,在轮转之前先去掉日志的A属性,轮转之后再加上
    prerotate
       chattr -a /var/log/messages
    endscript
 
    #notifempty
    daily
create 0600 root root
    missingok
    rotate 5
 
    postrotate
        chattr +a /var/log/messages
    endscript
}
 

上一篇:网络基础 下一篇:没有了
猜你喜欢
各种观点
热门排行
精彩图文