您的位置:首页 > 运维架构 > Linux

linux日志管理

2016-04-29 00:00 447 查看
目录 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 现实版本信息并退出 ExampleLogger -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 ?DYNmessagesif
$syslogfacility-text == 'authpriv' then ?DYNsecureif
$syslogfacility-text == 'mail' then -?DYNmaillogif
$syslogfacility-text == 'cron' then ?DYNcronif (
$syslogfacility-text == 'uucp' or $syslogfacility-text == 'news' ) and
$syslogseverity-text == 'crit' then ?DYNspoolerif
$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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  logrotate logger rsyslog