二、rsyslog日志配置&logrotate

配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/,对于不使用默认配置文件的,可在命令行使用-f 来指定rsyslog服务启动所要的配置文件。rsyslogd从 rsyslog.conf 的顶部到底部进行指令处理。因此配置文件中的语句顺序很重要。例如,如果停止处理某一条消息,则停止语句之后的所有语句都不会被读取应用。配置文件修改完成后,可执行以下命令测试配置文件:

rsyslogd -N1 -f file
 

(一)Rsyslog配置文件/etc/rsyslog.conf

配置文件由三部分组成:严格按照配置段位置添加配置

MODULES:定义了模块的选修,如接下来的使用mysql模块记录日志则需要在这里配置

GLOBAL DIRECTIVES:定义了全局的环境

RULES:定义了记录日志的设施以及等级等信息

可通过以下命令确认:grep “####” /etc/rsyslog.conf

1、日志定义格式

日志定义格式: facility.priority    Target
  facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录日志;
  常用的facility:
        lpr: 打印相关的日志
        auth:认证相关的日志,pam产生的日志
        user:用户相关的日志
        cron:计划任务相关的日志
        kern:内核相关的日志
        mail:邮件相关的日志
        mark:标记相关的日志,rsyslog服务内部的信息,时间标识
        news:新闻相关的日志
        uucp:文件copy相关的日志,unix to unix copy, unix主机之间相关的通讯
        daemon:系统服务相关的日志
        authpriv: 授权相关的日志,ssh,ftp等登录信息的验证信息
        security:安全相关的日志
        local0-local7:自定义相关的日志信息(自定义时可以使用通配符)
        通配符:
           *:所有
           f1,f2,f3......:列表
           !:取反
        
priority:指定日志级别,常用的日志级别,从上到下,级别从低到高,记录的信息越来越少:
	debug:   调试
	info:   消息
	notice: 注意
	warn,warning: 警告
	err,error: 错误
	crit: 严重级别
	alert: 需要立即修改该的信息
	emerg,panic: 内核崩溃,内核恐慌等严重的信息
    none:       什么都不记录
    通配符:
       *:所有日志级别
       none:没有任何级别,也就是不记录日志信息
         
    
    Target:文件路径
    可以使用的有:
        /var/log/messages
        用户:*  当前登录系统的所有用户
        日志服务器:@SERAVER_IP
        管道:| COMMAND

2、日志文件记录模板配置

#默认预留模板,如果需要自定义模板需要注释掉
# Use default timestamp format
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
#----------------自定义模板----------------
#时间年月日 小时 分钟 秒格式 hostname  发出消息的应用程序的名称  消息内容
#定义日志记录模板
$template xsformat,"%$NOW% %TIMESTAMP:8:15% %HOSTNAME% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate xsformat

3、日志文件存储配置logrotate

rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件;查看当前系统的logrotate,执行:rpm -qi logrotate

logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为“转储”。我们可以根据日志的大小,或者根据其使用的天数来转储。logrotate 的执行由crond服务实现。在/etc/cron.daily目录中,有个文件logrotate,它实际上是个shell script,用来启动logrotate。logrotate程序每天由cron在指定的时间(/etc/crontab)启动。因此,使用ps是无法查看到logrotate的。如果它没有起来,就要查看一下crond服务有没有在运行。

4、logrotate 配置文件详解

# see “man logrotate” for details
# rotate log files weekly
#weekly          –每周轮转一次
monthly          -每月轮转一次
# keep 4 weeks worth of backlogs
rotate 12        –保留12个
# create new (empty) log files after rotating old ones
create          –rotate后,创建一个新的空文件
# 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 — we’ll rotate them here
/var/log/wtmp {             –定义/var/log/wtmp这个日志文件
monthly                 –每月轮转一次,取代了上面的全局设定的每周轮转一次
minsize 1M              –定义日志必须要大于1M大小才会去轮转
create 0664 root utmp   –新的日志文件的权限,属主,属主
rotate 1                –保留一个,取代了上面的全局设定的保留四个
}
/var/log/btmp {
missingok       –如果日志丢失, 不报错
monthly
create 0600 root utmp
rotate 1
}
::
# sample logrotate configuration file
compress
# 全局设置, 压缩
/var/log/messages {
rotate 5     # 保留5份日志
weekly       # 每周轮换一次
postrotate   # 轮换之后重启syslogd服务
/usr/bin/killall -HUP syslogd
# rhel6中为:/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
# 可查看/etc/logrotate.d/下的配置文件
endscript
}
“/var/log/httpd/access.log” /var/log/httpd/error.log {   #  指定多个文件, 如果有特殊字符需要用单引号
rotate 5
mail www@my.org
size 100k        # 超过100k后切换日志, 并把老的日志发送邮件给www@my.org
sharedscripts    # –表示切换时脚本只执行一次.
postrotate       # 表示rotate后执行的脚本
/usr/bin/killall -HUP httpd
endscript
}
/var/log/news/* {    # 少用通配符, 因会它会包括已经切换过的日志, 要用的话最好在*号后加上扩展名, 如*.log
monthly
rotate 2
olddir /var/log/news/old
missingok
postrotate
kill -HUP ‘cat /var/run/inn.pid‘
endscript # –表示脚本结束
nocompress
}

注意:

1、dateext //这个参数很重要!就是切割后的⽇志⽂件以当前⽇期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即 xxx.log-1这种格式。

2、如果有 minsize 的参数,因此不见得每个⽉⼀定会执⾏⼀次,只有日志文件大于设置的minsize后才会执行转存。

参考原文链接:https://blog.csdn.net/ximenjianxue/article/details/120470353

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值