目录

  1.  rsyslog标签&等级-------------------------------------标签&日志等级

  2.  通过logger命令记录日志 -------------------------Logger

  1. 通过logrotate进行日志转储----------------------logrotate 日志转储

  2. rsyslog详解参考官网文档---------------------------http://www.rsyslog.com/doc/v8-stable/configuration/index.html

  3. 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

  1. 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

 

  1. 写入指定的log文件

    1. echo       "local6.*          /var/log/test.log" > /etc/rsyslog.conf

    2. /etc/init.d/rsyslog       restart

    3. logger -t       "taskmq-worker" -p local6.info "test_info"

    4. tail       /var/log/test.log

    Apr 28 03:43:05 ip-10-1-10-185 taskmq-woreker: test_info

====================================================================================

logrotate 日志转储

  1. logrotate 说明

logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。logrotate程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 

  1. 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).

 

  1. 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