生活是美好的

 找回密碼
 立即註冊
搜索
查看: 739|回復: 0

rsyslogd日志管理

[複製鏈接]

112

主題

112

帖子

453

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
453
發表於 2019-10-15 14:17:32 | 顯示全部樓層 |閱讀模式
rsyslogd日志管理

一、处理日志的进程
=================================================================
rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证,计划任务...
                某些应用程序例如httpd,nginx,mysql,可以以自己的方式记录日志
  1. ps aux |grep syslogd
複製代碼

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                                              //和系统启动相关
# grep -i eth /var/log/dmesg
# tail /var/log/audit/audit.log                           //系统审计日志
# tail /var/log/yum.log
# tail /var/log/mysqld.log
# tail /var/log/httpd/access_log
# tail /var/log/xferlog                                          //和访问FTP服务器相关
# w                                                                                  //当前登录的用户 /var/log/wtmp
# last                                                                               //最近登录的用户 /var/log/btmp
# lastlog                                                                           //所有用户的登录情况 /var/log/lastlog

三、rsyslogd系统
===========================================================
  1. rpm -qc rsyslog
複製代碼

/etc/logrotate.d/syslog
/etc/rsyslog.conf                          //rsyslogd的主配置文件
/etc/rsyslog.d/*.conf
/etc/sysconfig/rsyslog               

  1. 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 sshd_config  搜索/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程序写日志到指定的设备及级别


三、集中式日志管理
=============================================================
RHEL6:
==日志服务器(开启接收功能)
  1. vim /etc/rsyslog.conf
複製代碼


# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514
# service  rsyslog restart     //启动日志服务
# netstat -tunlp |grep :514
udp        0      0 0.0.0.0:514                    0.0.0.0:*                        13096/rsyslogd      
udp        0      0 :::514                            :::*                                 13096/rsyslogd
# tcpdump -i eth0 -nn 'host 192.168.10.100 and port 514'     //抓包
# tail -f /var/log/secure       //动态查看日志

==日志客户端
  1. vim /etc/rsyslog.conf
複製代碼

authpriv.*                                             @192.168.10.240
  1. service rsyslog restart
複製代碼




四、logrotate (轮转,日志切割)
=================================================================
1. 如果没有日志轮转,日文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间
3. logrotate本身不是系统进程,它是通过计划任务crond每天执行

# 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/        //定义某个日志的轮转规则

# 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

主配置文件
  1. 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                                                  //保留一份
}


例1:轮转文件/var/log/yum.log
# vim /etc/logrotate.d/yum  原有的设置
/var/log/yum.log {                         //yum日志文件
    missingok                                                      //丢失不提示
    notifempty                                            //如果为空,不轮转
    size 30k                                                //30k                -------|
    year                                           //一年轮转一次    -------|----达到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 {
    prerotate
       chattr -a /var/log/messages    //轮转之前去除文件a属性
    endscript

    #notifempty
    daily
        create 0600 root root
    missingok
           rotate 5

    postrotate
        chattr +a /var/log/messages  //轮转之后加上文件的a属性 防止破坏日志
    endscript
}






回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

GMT+8, 2025-4-19 16:20 , Processed in 0.125777 second(s), 20 queries .

© 本站内容由個人原創或轉載,如果侵犯了您的合法權益,請及時聯繫處理! Email:lyb@qq.com

快速回復 返回頂部 返回列表