1 常見的系統日志
/var/log/message 記錄系統重要資訊日志,非常重要
/var/log/cron 記錄系統定時任務日志
/var/log/cups 記錄列印資訊日志
/var/log/dmesg 系統開機時核心自檢資訊,也可以使用dmesg指令直接檢視核心自檢資訊
/var/log/btmp 錯誤登陸資訊日志,二進制檔案,使用lastb指令檢視
/var/log/lastlog 系統所有使用者最後一次的登陸時間的日志,二進制檔案,使用lastlog指令檢視
/var/log/mailog 記錄郵件資訊的日志
/var/log/secure 記錄驗證和授權方面的資訊,隻要涉及賬戶和密碼的授權都會記錄,如,系統的登陸,ssh的登陸,su切換,sudo授權,甚至是添加使用者和修改使用者密碼
/var/log/wtmp 永久記錄所有使用者的登陸,登出資訊,同時記錄系統的啟動,重新開機,關機事件,二進制檔案,使用last檢視
/var/log/utmp 記錄目前已經登陸的使用者資訊,這個檔案随着使用者的登入和登出而不斷變化,隻記錄目前登入使用者的資訊,使用w,who,users等指令檢視
2 檢視日志服務和自啟動狀态
[root@Darren log]# ps aux |grep rsyslogd
[root@Darren log]# chkconfig --list|grep rsyslog
3 日志檔案内容的一般格式
時間發生的日期和時間
發生此事件的伺服器的主機名
啟動此事件的服務名或程式名
事件的具體資訊
如/var/llog/message日志:
[root@Darren log]# cat messages
Nov 14 11:34:05 Darren rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1282" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Nov 14 11:36:04 Darren dhclient[1178]: DHCPREQUEST on eth0 to 192.168.91.254 port 67 (xid=0x483caad7)
Nov 14 11:36:04 Darren dhclient[1178]: DHCPACK from 192.168.91.254 (xid=0x483caad7)
4 日志配置檔案/etc/rsyslog.conf
[root@Darren log]# cat /etc/rsyslog.conf |grep -v '#'
#記錄所有資訊,但是忽略mail,authpri,cron的資訊
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
#mail産生的日志過多,-表示先存儲記憶體中,批量刷盤
mail.* -/var/log/maillog
cron.* /var/log/cron
#當嚴重級别為emerg時,以廣播的形式發個所有使用者
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
/etc/rsyslog.conf的格式:
服務名稱;連接配接符号;日志等級;日志記錄位置
(1)服務名稱
authpriv 主要與認證有關的機制,如login,ssh,su等需要賬号/密碼
cron 定時任務cron和at産生的日志
daemon和各個守護程序相關的日志
kern 核心産生的程序
lpr 列印産生的日志
mail 郵件收發資訊
news 與新聞伺服器相關的日志
user 使用者等級類别的日志資訊
syslog 就是rsyslogd服務産生的資訊
local0-local7 本地使用預留的服務
uucp 子系統的日志資訊
(2)連接配接符号
* 代表所有日志等級
mail.info 表示郵件資訊大于等于info級别的資訊
.=info表示等于info級别的資訊
.!info表示不等于info等級的資訊
(3)日志等級
none 忽略某些服務資訊
debug 一般調試資訊說明
info 基本的通知資訊
warning 警告資訊
err 錯誤資訊,可能影響服務或系統運作
crit 臨界點狀況資訊,比err嚴重
alert 警告狀态資訊,比crit嚴重
emerg 疼痛等級資訊,系統已經無法使用
(4)日志記錄位置
日志記錄的檔案位置
設定chattr +a 隻能往日志例寫資料,不能修改日志,防止root使用者誤操作
[root@Darren log]# chattr +a cron
[root@Darren log]# lsattr cron
-----a-------e- cron
例:自定義cron服務的日志
[root@Darren log]# vim /etc/rsyslog.conf
cron.* /var/log/test.log --添加cron服務的所有日志,并記錄到/var/log/test.log檔案中
[root@Darren log]# /etc/init.d/rsyslog restart --重新開機rsyslog服務
做個定時任務,測試一下,最後生成日志檔案:
[root@Darren log]# crontab -e
*/2 * * * * echo "this is test!">>/tmp/root.txt
[root@Darren log]# ll /var/log/test.log
-rw------- 1 root root 2395 Nov 15 10:17 /var/log/test.log
5 搭建日志伺服器
(1)環境
CentOS release 6.8 (Final)
client:192.168.91.5
server:192.168.91.3
client和server防火牆要關閉,并且要ping的通
[root@zhishutang log]# /etc/init.d/iptables stop
[root@Darren log]# /etc/init.d/iptables stop
(2)client配置
編輯用戶端檔案/etc/rsyslog.conf,指定寫日志的主機IP:
[root@zhishutang log]# vim /etc/rsyslog.conf
添加:
*.* @@192.168.91.3:514
重新開機rsyslog服務:
[root@zhishutang log]# /etc/init.d/rsyslog restart
(3)server配置
編輯服務端檔案/etc/rsyslog.conf,開通tcp協定和端口:
$ModLoad imtcp
$InputTCPServerRun 514
檢視514端口:
[root@Darren log]# netstat -nltup |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 13721/rsyslogd
tcp 0 0 :::514 :::* LISTEN 13721/rsyslogd
(4)測試
client:
在用戶端生成日志
[root@zhishutang log]# logger 'hello word!'
[root@zhishutang log]# cat /var/log/messages|grep 'hello word!'
Nov 14 17:39:20 zhishutang root: hello word!
server:
用戶端的日志成功的寫入日志服務端
[root@Darren log]# cat /var/log/messages|grep 'hello word!'
6 日志檔案輪替logrotate
(1)配置檔案
/etc/logrotate.conf
/etc/logrotate.d/
[root@Darren log]# cat /etc/logrotate.conf
weekly 預設每周輪替一次
rotate 4 預設保留四個日志檔案
create 建立一個空日志檔案
dateext 以日期作為後罪名
#compress 舊日志是否被壓縮,預設不壓縮
#大括号中的設定可以取代預設設定生效:
/var/log/wtmp { --指定日志檔案
monthly --每月輪替
create 0664 root utmp --權限0644,所有者root,所屬組utmp
minsize 1M --大于1M才會輪替
rotate 1 --保留一個舊日志檔案
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
/usr/local/apache2/logs/access_log {
daily
create
rotate 30
目錄下的檔案:
[root@Darren logrotate.d]# ll /etc/logrotate.d/
-rw-rw-r-- 1 root root 135 1月 18 2016 ConsoleKit
-rw-r--r-- 1 root root 71 5月 11 2016 cups
-rw-r--r-- 1 root root 139 5月 12 2016 dracut
-rw-r--r-- 1 root root 185 7月 12 19:00 httpd
-rw-r--r-- 1 root root 329 7月 17 2012 psacct
-rw-r--r-- 1 root root 210 12月 10 2014 syslog
-rw-r--r-- 1 root root 87 7月 13 00:45 yum
[root@Darren logrotate.d]# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
(2)logrotate指令
-v 顯示輪替運作過程
-f 強制輪替
[root@Darren /]# logrotate -v /etc/logrotate.conf --顯示輪替過程
[root@Darren /]# logrotate -vf /etc/logrotate.conf --強制輪替
#檢視日志發生了什麼變化:
[root@Darren log]# ls
anaconda.ifcfg.log btmp-20161115 dmesg.old maillog-20161114 samba spooler-20161115
anaconda.log cluster dracut.log maillog-20161115 secure tallylog
anaconda.program.log ConsoleKit dracut.log-20160920.gz messages secure-20161101 wtmp
anaconda.storage.log cron dracut.log-20161114 messages-20161101 secure-20161107 wtmp-20161115
anaconda.syslog cron-20161101 httpd messages-20161107 secure-20161114 yum.log
anaconda.xlog cron-20161107 lastlog messages-20161114 secure-20161115 yum.log-20160920
anaconda.yum.log cron-20161114 mail messages-20161115 spooler yum.log-20161114
audit cron-20161115 maillog ntpstats spooler-20161101
boot.log cups maillog-20161101 prelink spooler-20161107
btmp dmesg maillog-20161107 sa spooler-20161114
可以發現這五種日志
原本是每周進行一次輪替,但是強制輪替後,及時生效。
本文轉自 Darren_Chen 51CTO部落格,原文連結:http://blog.51cto.com/darrenmemos/1872929,如需轉載請自行聯系原作者