一、查看配置文件/var/log下面的文件解釋
messages 系統日誌
boot.log 系統啓動日誌
dmesg 核心日誌
maillog 郵件日誌
cron 週期性的計劃任務日誌
secure 安全相關的日誌(網絡連接登錄系統信息)
btmp 二進制文件,記錄遠程登錄失敗日誌
wtmp 二進制文件 記錄所有登入和登出的信息
二、日誌文件由rsyslog服務管理
日誌格式分爲:文本格式、二進制日誌、數據庫日誌
1、查看軟件是否安裝
# rpm -ql rsyslog
rsyslog-5.8.10-8.el6.x86_64
2、查看軟件帶來的文件列表
# rpm -ql rsyslog
/etc/logrotate.d/syslog 日誌輪轉
/etc/rc.d/init.d/rsyslog 服務啓動腳本
/etc/rsyslog.conf 主配置文件
/etc/rsyslog.d 該服務的主目錄
/sbin/rsyslogd 二進制的命令
3、確認服務是否運行
#service rsyslog status
rsyslogd (pid 1785) is running...
4、瞭解主配置文件
# cat /etc/rsyslog.conf |grep -v ^#|grep -v ^$
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.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 啓動日誌
* 代表任何服務或者任何日誌級別
. 用來分割服務和日誌級別 cron.err
, 用來分割不同的服務 cron,mail.err
; 用來分割服務,日誌組合 cron.err ; mail.info
! 排除操作,前面的有相同的服務纔有意義
= 代表等於某個日誌級別
- 指定目標文件時,代表同步寫入
日誌消息的級別
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
0 緊急 會導致主機系統的不可用
1 警告 非常嚴重 必須馬上採取措施的問題
2 嚴重 比較嚴重的情況
3 錯誤 運行出現錯誤
4 警告 可能會影響系統功能的事件
5 不會影響系統但需要關注
6 一般信息
7 調試信息 (開發人員)
本地日誌管理:
demo1: 開啓所有大於等於debug 級別的日誌記錄到/var/log/debug
1、修改配置文件
/etc/rsyslog.conf
*.debug /var/log/debug
2、重新加載或者重新啓動服務
service rsyslog restart
3、測試驗證
# cat /var/log/debug
demo2:
mail服務的等於info級別的日誌記錄到/tmp/mail-log
1、配置文件 /etc/rsyslog.conf
mail.=info /tmp/mail-log
2、重新啓動rsyslog服務
service rsyslog restart
3、測試驗證:
# tail -f /tmp/mail-log
demo3:將ssh日誌文件單獨記錄到/var/log/ssh
1、通過修改ssh服務的配置文件來指定記錄ssh服務的載體(設備)local0
# vim /etc/ssh/sshd_config
SyslogFacility local0
2、重新啓動ssh服務 service sshd restart
3、將來自於local0設備的日誌存放到/var/log/ssh——>修改/etc/rsyslog.conf
vim /etc/rsyslog.conf
local0.* /var/log/ssh
4、重啓服務
service rsyslog restart
5、測試驗證 有顯示代表成功
# tail -f /var/log/ssh
五、遠程日誌管理
首先查看server端和client端是否安裝
1、# rpm -q rsrlog
# rsyslog-5.8.10-8.el6.x86_64
2、啓動服務
service rsyslog restart
配置service機端
1、 vim /etc/rsrlog.conf
# Provides UDP syslog reception UDP的速度較快 ,視頻等選擇
# Provides TCP syslog reception TCP的速率較慢,數據要求較高的
$ModLoad imudp
$UDPServerRun 514
以兩項是看你選擇的TCP或UDP打開
2、重啓服務
service rsyslog restart
4、查看端口是否在監聽
#losf -i :514 514TCP的端口號
#netstat -nltp | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 3280/rsyslogd
tcp 0 0 :::514 :::* LISTEN 3280/rsyslogd
-n 以數字顯示
-p 顯示進程名稱
-u udp協議
-t tcp協議
-a 所有的鏈接
-l 監聽狀態
client端
1、指定記錄ssh服務日誌的載體
/etc/ssh/sshd_conf
locla0.* @@10.1.1.254:514 @@代表tcp協議 @代表UDP協議 ip地址選擇serner的IPD地址
2、重啓服務
service rsyslog restart
server端
1、10.1.1.254將來自local0設備上的日誌保存到/var/log/ssh-server
/etc/rsyslog.conf
local0.* /var/log/ssh-server ssh-server這個文件在配置文件可以自己可以定義,啓動服務在/var/log/中就會生成
2、重啓服務
service rsyslog restart
測試:能與客服的相通的主機,ssh鏈接client端
server端查看日誌 tai -f /var/log/ssh-server
六、日誌論轉 logrotate
1、避免日誌過大造成/var/log/ 下文件系統爆滿
2、方面管理查看
# rpm -q logrotate 查看軟件是否安裝
logrotate-3.7.8-17.el6.x86_64
# rpm -ql logrotate
/etc/cron.daily/logrotate 每天輪轉的文件
/etc/logrotate.conf 主配置文件
/etc/logrotate.d 主目錄(子配置文件)
/usr/sbin/logrotate 二進制命令
logrotate配置文件
/etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
以7天爲一個週期(單位),每週輪轉
# keep 4 weeks worth of backlogs
rotate 4
每4周備份一次(保留4周的日誌文件)
# create new (empty) log files after rotating old ones
create
當老的文件輪轉後,創建一個空的新的日誌文件(文件的權限必須要和老的文件一致)
# use date as a suffix of the rotated file
dateext
老的日誌文件以日期作爲後綴
# uncomment this if you want your log files compressed
#compress
指定是否需要壓縮輪轉後的文件
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d 加載外部目錄
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly 每月爲一個週期輪轉
create 0664 root utmp 創建一個新的空文件,權限是0664 屬主root 屬組utmp
minsize 1M 文件大於1M,並且到了輪轉週期纔會輪轉
#size 1M 只要文件大於1M就輪轉,不管有沒有到輪轉週期
rotate 1 保留1個月的日誌
}
/var/log/btmp {
missingok 當日志文件不存在時不會報錯 logrotate -f /etc/logrotate.conf
error: stat of 在執行以上條命令時不會報錯但是相關的功能是完成列的
monthly
create 0600 root utmp
rotate 1
}
子配置文件 /etc/logrotate.d/syslog
sharedscripts
表示日誌文件輪轉時需要執行prerotate和endscript或者postrotate和endscript之間的shell腳本
postrotate 表示在輪轉之後執行
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
sharedscripts
postrotate 表示在輪轉之後執行
shell 腳本
endscript
sharedscripts
prerotate 表示在輪轉之前執行
shell 腳本
endscript
demo1:刪掉所有的日誌文件,強制輪轉
# find /var/log -type f -exec rm -f {} \;
# logrotate -f /etc/logrotate.conf
error: stat of /var/log/wtmp failed: No such file or director 這個報錯表示成功的
demo2:
配置ssh服務輪轉:
方法1:vim /etc/logrotate.conf
/var/log/ssh {
missingok
size 1M
create
monthly
rotate 1
}
重啓下服務:service rsyslog restart
方法二:
vim /etc/logrotate.d/ssh
/var/log/ssh {
missingok
size 1M
create
monthly
rotate 1
}
重啓下服務:service rsyslog restart