目录
rsyslog标签&等级-------------------------------------标签&日志等级
通过logger命令记录日志 -------------------------Logger
通过logrotate进行日志转储----------------------logrotate 日志转储
rsyslog详解参考官网文档---------------------------http://www.rsyslog.com/doc/v8-stable/configuration/index.html
rsyslog日志服务器配置文件示例---------Rsyslog 日志服务器配置文件示例
标签&日志等级
———————————————————————-
auth –pam产生的日志
authpriv –ssh,ftp等登录信息的验证信息
cron –时间任务相关
kern –内核
lpr –打印
mail –邮件
mark(syslog)–rsyslog服务内部的信息,时间标识
news –新闻组
user –用户程序产生的相关信息
uucp –unix to unix copy, unix主机之间相关的通讯
local 1~7 –自定义的日志设备
———————————————————————-
debug –有调式信息的,日志信息最多
info –一般信息的日志,最常用
notice –最具有重要性的普通条件的信息
warning –警告级别
err –错误级别,阻止某个功能或者模块不能正常工作的信息
crit –严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert –需要立刻修改的信息
emerg –内核崩溃等严重信息
none –什么都不记录
=======================================================================================
Logger
用于往系统中写入日志,syslog系统模块的shell接口提供一个shell命令接口到syslog系统模块
Logger 语法
logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]
-d, --udp
使用数据报(UDP)而不是默认的流连接(TCP)
-i, --id
逐行记录每一次logger的进程ID
-f, --file file_name
记录特定的文件
-h, --help
显示帮助文本并退出
-n,--server
写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
-P,--port port_num
使用指定的UDP端口。默认的端口号是514
-p,--priority priority_level
指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式。
比如:" -p local3.info " local3 这个设备的消息级别为 info。默认级别是 "user.notice"
-s,--stderr
输出标准错误到系统日志。
-t,--tag tag
指定标记记录
-u,--socket socket
写入指定的socket,而不是到内置系统日志例程。
-V, --version
现实版本信息并退出
Example
Logger -t "taskmq-worker" -p local3.info "test_info"
tail /var/log/messager
Apr 28 03:43:05 ip-10-1-10-185 taskmq-woreker: test_info
写入指定的log文件
echo "local6.* /var/log/test.log" > /etc/rsyslog.conf
/etc/init.d/rsyslog restart
logger -t "taskmq-worker" -p local6.info "test_info"
tail /var/log/test.log
Apr 28 03:43:05 ip-10-1-10-185 taskmq-woreker: test_info
====================================================================================
logrotate 日志转储
logrotate 说明
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。logrotate程序还可以用于压缩日志文件,以及发送日志到指定的E-mail
logrotate 配置
logrotate 默认配置文件在/etc/logrostate.conf
参数 功能
compress 通过gzip 压缩转储以后的日志
nocompress 不需要压缩时,用这个参数
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件但是不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty 如果是空文件的话,不转储
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
Example
/var/log/wtmp{
monthly 每月转储一次
size 10M 当文件大于10M转储
rotate 7 保存最近的7次转储文件
compress 压缩转储文件
notifempty 当文件内容为空时,不要转储
}
========================================================================================
Rsyslog 日志服务器配置文件示例
====服务器端配置======
$MaxMessageSize
128k
$ModLoad imuxsock.so
$ModLoad imklog.so
$ActionFileDefaultTemplate
RSYSLOG_TraditionalFileFormat
$SystemLogRateLimitInterval 0
$SystemLogRateLimitBurst 0
$ModLoad
imtcp
$InputTCPServerRun 514
# Standard System
Services
$template
DYNmessages,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/messages"
$template
DYNsecure,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/secure"
$template DYNmaillog,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/maillog"
$template
DYNcron,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/cron"
$template
DYNspooler,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/spooler"
$template
DYNboot,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/boot.log"
$template
DYNiptables,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/iptables.log"
$template DYNaudit,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/audit.log"
$template
DYNapache-access,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/apache-access.log"
$template
DYNapache-error,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/apache-error.log"
$template
DYNphp,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/php.log"
$template
DYNredis,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/redis.log"
if $programname ==
‘apache-access‘ then ?DYNapache-access
&~
if $programname == ‘apache-error‘ then ?DYNapache-error
&~
if $programname == ‘audispd‘ then ?DYNaudit
&~
if $programname == ‘php‘ then ?DYNphp
&~
if $programname == ‘redis‘ then ?DYNredis
&~
if $msg contains ‘iptables:‘ then ?DYNiptables
&~
if $syslogseverity <= ‘6‘ and ( $syslogfacility-text != ‘mail‘ and $syslogfacility-text != ‘authpriv‘ and $syslogfacility-text != ‘cron‘ ) then ?DYNmessages
if $syslogfacility-text == ‘authpriv‘ then ?DYNsecure
if $syslogfacility-text == ‘mail‘ then -?DYNmaillog
if $syslogfacility-text == ‘cron‘ then ?DYNcron
if ( $syslogfacility-text == ‘uucp‘ or $syslogfacility-text == ‘news‘ ) and $syslogseverity-text == ‘crit‘ then ?DYNspooler
if $syslogfacility-text == ‘local7‘ then ?DYNboot
====服务器端配置======
$MaxMessageSize 128k
$ModLoad imuxsock
$ModLoad imklog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$SystemLogRateLimitInterval
0
$SystemLogRateLimitBurst 0
$WorkDirectory
/var/lib/rsyslog # where to place spool files
$ActionQueueFileName fwdRule1 # unique name prefix for spool
files
$ActionQueueMaxDiskSpace 1g # 1gb space
limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on
shutdown
$ActionQueueType LinkedList # run
asynchronously
$ActionResumeRetryCount -1 # infinite
retries if host is down
*.* @@log.gtr8.com
原文地址:http://xianghua.blog.51cto.com/1693288/1768851