目錄
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
====================================================================================
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
如果是空檔案的話,不轉儲
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).
/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"
DYNsecure,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/secure"
$template DYNmaillog,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/maillog"
DYNcron,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/cron"
DYNspooler,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/spooler"
DYNboot,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/boot.log"
DYNiptables,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/iptables.log"
$template DYNaudit,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/audit.log"
DYNapache-access,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/apache-access.log"
DYNapache-error,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/apache-error.log"
DYNphp,"/var/log/LOGS/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/php.log"
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
$syslogfacility-text == 'mail' then -?DYNmaillog
$syslogfacility-text == 'cron' then ?DYNcron
if (
$syslogfacility-text == 'uucp' or $syslogfacility-text == 'news' ) and
$syslogseverity-text == 'crit' then ?DYNspooler
$syslogfacility-text == 'local7' then ?DYNboot
$MaxMessageSize 128k
$ModLoad imuxsock
$ModLoad imklog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$SystemLogRateLimitInterval
$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