日志管理2
1、日志服務(wù)的配置文件
? ? [loring ~]# vim /etc/rsyslog.conf
? ? ? ? ? ? # Provides UDP syslog reception? //提供接收遠(yuǎn)程日志的服務(wù)的
? ? ? ? ? ? #$ModLoad imudp
? ? ? ? ? ? #$UDPServerRun 514
? ? ? ? ? ? #### GLOBAL DIRECTIVES ####? //全局配置部分
? ? ? ? ? ? ? # Include all config files in /etc/rsyslog.d/
? ? ? ? ? ? $IncludeConfig /etc/rsyslog.d/*.conf? ? //表示包含/etc/rsyslog.d/目錄下所有以.conf結(jié)尾的配置文件
? ? ? ? ? ? *.info;mail.none;authpriv.none;cron.none? ? ? ? ? ? ? ? /var/log/messages
? ? ? ? ? ? ? authpriv.*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /var/log/secure
? ? ? ? ? ? ? mail.*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -/var/log/maillog
? ? ? ? ? ? ? cron.*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /var/log/cron
? ? ? ? ? ? *.emerg? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
? ? ? ? ? ? ? uucp,news.crit? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /var/log/spooler
? ? ? ? ? ? ? local7.*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /var/log/boot.log
? ? ? ? ? ? 服務(wù)或者設(shè)備.日志的級別? ? ? ? ? ? ? ? ? ? ? ? ? 日志記錄到哪個文件
? ? ? ? ? ? local0~local7:自定義的服務(wù)名
2闻书、authpriv.*?
? ? ? 服務(wù)或者設(shè)備.日志的級別
? ? ? 1)服務(wù)名稱
? ? ? ? ? ? authpriv(auth):用戶授權(quán)相關(guān)的,認(rèn)證等? ssh池凄、login、su等
? ? ? ? ? ? cron:和計(jì)劃任務(wù)相關(guān)的服務(wù)
? ? ? ? ? ? mail:和郵件相關(guān)的
? ? ? ? ? ? news:新聞相關(guān)的? uucp
? ? ? ? ? ? kern:和內(nèi)核相關(guān)的
? ? ? ? ? ? lpr:打印機(jī)相關(guān)的
? ? ? ? ? ? syslog:和rsyslogd進(jìn)程相關(guān)的
? ? ? ? ? ? local0~local7:自定義服務(wù)名稱
? ? 2)日志的級別:級別越高鬼廓、日志越少
? ? ? ? ? ? (1)none:不記錄日志
? ? ? ? ? ? (2)debug:調(diào)試信息
? ? ? ? ? ? (3)info:一般的通知信息
? ? ? ? ? ? (4)notice:提醒信息肿仑,比info稍微重要點(diǎn)
? ? ? ? ? ? (5)warning(warn):警告信息,可能有問題
? ? ? ? ? ? (6)err(error):錯誤信息
? ? ? ? ? ? (7)critical(crit):比較嚴(yán)重的錯誤
? ? ? ? ? ? (8)alert:警報信息桑阶,需要立即行動
? ? ? ? ? ? (9)emerg(panic):緊急(恐慌)柏副,系統(tǒng)可能已經(jīng)不可用了
? ? 3)服務(wù)名稱.日志等級的表示
? ? ? ? ? ? .? —— mail.warning? 表示記錄mail服務(wù)勾邦,warning及其以上級別的日志
? ? ? ? ? ? .=? —— mail.=warning? 表示記錄mail服務(wù)warning級別日志
? ? ? ? ? ? .! —— mail.!warning 表示除了warning級別以外的蚣录,其他級別的所有日志都記錄
? ? ? ? ? ? .none —— 表示不記錄
? ? ? ? ? ? * —— 表示所有
? ? ? ? ? ? *.? —— 表示所有服務(wù)
? ? ? ? ? ? .* —— 表示所有日志級別
? ? ? ? ? ? *.* —— 所有服務(wù)的所有級別的日志
小實(shí)驗(yàn)
? ? [loring ~]# vim /etc/rsyslog.conf? 在第46行添加如下行:
? ? ? ? authpriv.*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/local/secure? ? ? //自己規(guī)定一個日志文件
? ? [loring ~]# /etc/init.d/rsyslog restart
? ? 標(biāo)簽一:
? ? [loring ~]# tail -0f /usr/local/secure
? ? 標(biāo)簽二:
? ? ? ? [loring ~]# su - test
? ? ? ? [test@server150 ~]$ su - root
? ? ? ? ? ? Password:
? ? ? ? ? ? su: incorrect password
? ? 看標(biāo)簽一的日志變化。
? ? ? ? [loring ~]# tail -0f /usr/local/secure
? ? ? ? ? ? Aug? 3 12:41:47 server150 su: pam_unix(su-l:session): session closed for user test
? ? ? ? ? ? Aug? 3 12:41:51 server150 su: pam_unix(su-l:session): session opened for user test by root(uid=0)
? ? ? ? ? ? Aug? 3 12:41:55 server150 su: pam_unix(su-l:auth): authentication failure; logname=root uid=500 euid=0 tty=pts/5 ruser=test rhost=? user=root
? ? ? ? 注意:
? ? ? ? ? ? 1)書寫錯誤
? ? ? ? ? ? 2)selinux必須要關(guān)閉的或者是permissive模式眷篇,否則無法自動生成你配置的日志文件
為了防止別人修改我的日志萎河,如何做?
? ? [loring ~]# chattr +a /var/log/secure
遠(yuǎn)程日志? :可以做日志的備份蕉饼,也可以做日志的集中管理
? ? 集中管理日志的軟件:splunk? ELK
? ? 環(huán)境:
? ? ? ? 172.16.12.250? 遠(yuǎn)程服務(wù)器
? ? ? ? 172.16.254.251? 本地服務(wù)器
? ? 1虐杯、本地配置
? ? ? ? [loring ~]# vim /etc/rsyslog.conf
? ? ? ? ? ? ? ? *.*? ? @172.16.12.250? ? // 此處IP為遠(yuǎn)程服務(wù)器IP
? ? 2、遠(yuǎn)程服務(wù)器配置
? ? ? ? [loring ~]# vim /etc/rsyslog.conf
? ? ? ? # Provides UDP syslog reception? 開啟接收遠(yuǎn)程日志的功能
? ? ? ? ? ? ? ? $ModLoad imudp
? ? ? ? ? ? ? ? $UDPServerRun 514
? 3昧港、本地服務(wù)器和遠(yuǎn)程服務(wù)器分別重啟rsyslog服務(wù)
? ? ? ? [loring ~]# /etc/init.d/rsyslog restart? ? //254.251
? ? ? ? ? ? Shutting down system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]
? ? ? ? ? ? Starting system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]
? ? ? ? [root@srv12 ~]# /etc/init.d/rsyslog restart? ? ? ? ? ? //12.250
? ? ? ? ? ? Shutting down system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]
? ? ? ? ? ? Starting system logger:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]
? 4擎椰、驗(yàn)證
? ? ? ? 在本地隨意切換幾次路徑
? ? ? ? 在遠(yuǎn)程動態(tài)監(jiān)控日志
? ? ? ? 注意:
? ? ? ? ? ? 1)服務(wù)別忘記重啟
? ? ? ? ? ? 2)本地selinux關(guān)閉
? ? ? ? ? ? 3)遠(yuǎn)程主機(jī)的防火墻關(guān)閉
? ? ? ? ? ? 4)盡量不要互相傳日志
日志的輪替、日志的輪滾
? ? 為什么要輪滾创肥?
? ? ? ? 1)防止日志文件過大
? ? ? ? 2)定期清除日志
日志輪滾的配置文件
? ? # vim /etc/logrotate.conf
? ? # grep -v ^# /etc/logrotate.conf | grep -v ^$
? ? ? ? weekly? ? ? //輪滾的周期达舒,一周一輪滾值朋,默認(rèn)每一周執(zhí)行一次rotate輪轉(zhuǎn)工作
? ? ? ? rotate 4? ? //保留多少個日志文件(輪轉(zhuǎn)幾次).默認(rèn)保留四個.就是指定日志文件刪除之前輪轉(zhuǎn)的次數(shù),0 指沒有備份
? ? ? ? create? ? ? //舊日志輪滾后是否創(chuàng)建新的空白日志
? ? ? ? dateext? ? //就是切割后的日志文件以當(dāng)前日期為格式結(jié)尾巩搏,如xxx.log-20131216這樣,如果注釋掉,切割出來是按數(shù)字遞增,即 xxx.log-1這種格式
compress? ? ? //是否通過gzip壓縮轉(zhuǎn)儲以后的日志文件昨登,如xxx.log-20131216.gz ;如果不需要壓縮贯底,注釋掉就行
? ? ? ? include /etc/logrotate.d? ? //包含該路徑下的所有配置文件
? ? ? ? /var/log/wtmp {? ? ? ? ? ? //僅針對 /var/log/wtmp 所設(shè)定的參數(shù)
? ? ? ? ? ? monthly? ? ? ? ? ? ? ? ? ? //輪滾周期丰辣,一個月
? ? ? ? ? ? create 0664 root utmp? //創(chuàng)建新的日志文件? 權(quán)限664 所有者root 所屬組utmp
? ? ? ? minsize 1M? ? ? ? ? ? ? ? ? //文件大小超過 1M 后才會切割
? ? ? ? ? ? rotate 1? ? ? ? ? ? ? ? ? ? ?
? ? ? ? }
? ? ? ? /var/log/btmp {
? ? ? ? ? ? missingok? ? ? ? ? ? ? //丟了也沒關(guān)系
? ? ? ? ? ? monthly
? ? ? ? ? ? create 0600 root utmp
? ? ? ? ? ? rotate 1
? ? ? ? }
? ? ? ? 其他重要參數(shù)說明
---------------------------------------------------------------------------------------------------------
compress? ? ? ? ? ? ? ? 通過gzip 壓縮轉(zhuǎn)儲以后的日志
nocompress? ? ? ? ? ? ? 不做gzip壓縮處理
copytruncate? ? ? ? ? ? 用于還在打開中的日志文件,把當(dāng)前日志備份并截斷禽捆;是先拷貝再清空的方式笙什,拷貝和清空之間有一個時間差,可能會丟失部分日志數(shù)據(jù)胚想。
nocopytruncate? ? ? ? ? 備份日志文件不過不截斷
create mode owner group? 輪轉(zhuǎn)時指定創(chuàng)建新文件的屬性得湘,如create 0777 nobody nobody
nocreate? ? ? ? ? ? ? ? ? 不建立新的日志文件
delaycompress? ? ? ? ? ? 和compress 一起使用時,轉(zhuǎn)儲的日志文件到下一次轉(zhuǎn)儲時才壓縮
nodelaycompress? ? ? ? ? 覆蓋 delaycompress 選項(xiàng)顿仇,轉(zhuǎn)儲同時壓縮淘正。
missingok? ? ? ? ? ? ? ? 如果日志丟失,不報錯繼續(xù)滾動下一個日志
errors address? ? ? ? ? ? 轉(zhuǎn)儲時的錯誤信息發(fā)送到指定的Email 地址
ifempty? ? ? ? ? ? ? ? ? 即使日志文件為空文件也做輪轉(zhuǎn)臼闻,這個是logrotate的缺省選項(xiàng)鸿吆。
notifempty? ? ? ? ? ? ? ? 當(dāng)日志文件為空時,不進(jìn)行輪轉(zhuǎn)
mail address? ? ? ? ? ? ? 把轉(zhuǎn)儲的日志文件發(fā)送到指定的E-mail 地址
nomail? ? ? ? ? ? ? ? ? ? 轉(zhuǎn)儲時不發(fā)送日志文件
olddir directory? ? ? ? ? 轉(zhuǎn)儲后的日志文件放入指定的目錄述呐,必須和當(dāng)前日志文件在同一個文件系統(tǒng)
noolddir? ? ? ? ? ? ? ? ? 轉(zhuǎn)儲后的日志文件和當(dāng)前日志文件放在同一個目錄下
sharedscripts? ? ? ? ? ? 運(yùn)行postrotate腳本惩淳,作用是在所有日志都輪轉(zhuǎn)后統(tǒng)一執(zhí)行一次腳本。如果沒有配置這個乓搬,那么每個日志輪轉(zhuǎn)后都會執(zhí)行一次腳本
prerotate? ? ? ? ? ? ? ? 在logrotate轉(zhuǎn)儲之前需要執(zhí)行的指令思犁,例如修改文件的屬性等動作;必須獨(dú)立成行
postrotate? ? ? ? ? ? ? ? 在logrotate轉(zhuǎn)儲之后需要執(zhí)行的指令进肯,例如重新啟動 (kill -HUP) 某個服務(wù)激蹲!必須獨(dú)立成行
daily? ? ? ? ? ? ? ? ? ? 指定轉(zhuǎn)儲周期為每天
weekly? ? ? ? ? ? ? ? ? ? 指定轉(zhuǎn)儲周期為每周
monthly? ? ? ? ? ? ? ? ? 指定轉(zhuǎn)儲周期為每月
rotate count? ? ? ? ? ? ? 指定日志文件刪除之前轉(zhuǎn)儲的次數(shù),0 指沒有備份江掩,5 指保留5 個備份
dateext? ? ? ? ? ? ? ? ? 使用當(dāng)期日期作為命名格式
dateformat .%s? ? ? ? ? ? 配合dateext使用学辱,緊跟在下一行出現(xiàn),定義文件切割后的文件名环形,必須配合dateext使用策泣,只支持 %Y %m %d %s 這四個參數(shù)
size(或minsize) log-size? 當(dāng)日志文件到達(dá)指定的大小時才轉(zhuǎn)儲,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
當(dāng)日志文件 >= log-size 的時候就轉(zhuǎn)儲抬吟。 以下為合法格式:
size = 5 或 size 5 (>= 5 個字節(jié)就轉(zhuǎn)儲)
size = 100k 或 size 100k
size = 100M 或 size 100M
查看某個服務(wù)的日志是否輪滾
? ? [loring logrotate.d]# cat /etc/logrotate.d/syslog
? ? ? ? /var/log/cron
? ? ? ? /var/log/maillog
? ? ? ? /var/log/messages
? ? ? ? /var/log/secure
? ? ? ? /var/log/spooler
? ? ? ? {
? ? ? ? ? ? sharedscripts? ? //與endscript中間夾的是需要執(zhí)行的操作? ? ? ? ?
? ? ? ? ? ? postrotate? ? ? ? ? ? ? //輪滾后執(zhí)行的命令
? ? ? ? /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true? //重新加載配置
? ? ? ? ? ? endscript
? ? ? ? }
小實(shí)驗(yàn):
1萨咕、修改配置文件,添加一行自己定義的內(nèi)容火本,重啟服務(wù)
? ? [loring log]# vim /etc/rsyslog.conf
? ? ? ? authpriv.*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /usr/local/secure
? ? [loring log]# /etc/init.d/rsyslog restart
2危队、自己編寫輪滾配置文件
? ? [loring log]# vim /etc/logrotate.d/secure
? ? ? ? /usr/local/secure {
? ? ? ? ? ? missingok
? ? ? ? ? ? notifempty
? ? ? ? ? ? daily
? ? ? ? ? ? create
? ? ? ? ? ? rotate 4
? ? ? ? ? ? compress
? ? ? ? }
3蓄喇、手動輪滾日志文件
? ? [loring log]# logrotate -vf /etc/logrotate.d/secure
? ? [loring log]# cd /usr/local
? ? [loring local]# ls secure*
? ? ? ? secure? secure.1.gz
實(shí)驗(yàn)續(xù)
[loring log]# vim /etc/logrotate.d/ secure
? ? /usr/local/secure {
? ? ? ? sharedscripts
? ? ? ? ? ? prerotate
? ? ? ? /usr/bin/chattr -a /usr/local/secure? 只能追加,不能vi編輯
? ? ? ? endscript
? ? ? ? missingok
? ? ? ? notifempty
? ? ? ? daily
? ? ? ? create
? ? ? ? rotate 4
? ? ? ? compress
? ? ? ? sharedscripts
? ? ? ? postrotate
? ? ? ? /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null? //重讀配置
? ? ? ? /usr/bin/chattr +a /usr/local/secure
? ? ? ? endscript
? ? }
[loring local]# /etc/init.d/rsyslog restart
[root@server1 local]# chattr +a /usr/local/secure
[loring local]# logrotate -vf /etc/logrotate.d/secure
[loring local]# lsattr secure
? ? -----a-------e- secure
/dev/null:空交掏,不管你向它扔什么妆偏,都是空
2> :標(biāo)準(zhǔn)錯誤輸出重定向
? ? [root@server1 local]# ls secure
? ? ? ? secure
? ? [root@server1 local]# ls asdf
? ? ? ? ls: cannot access asdf: No such file or directory
? ? [root@server1 local]# ls asdf > /tmp/asdf
? ? ? ? ls: cannot access asdf: No such file or directory
? ? [root@server1 local]# ls asdf 2> /tmp/asdf
? ? [root@server1 local]# cat /tmp/asdf
? ? ? ? ls: cannot access asdf: No such file or directory
2>> :標(biāo)準(zhǔn)錯誤輸出追加重定向