日誌管理基礎
rsyslog 日誌管理 logrotate日誌輪轉 採集 -----> 分析
/var/log/
messages 系統日誌
maillog 郵件日誌
cron 計劃任務日誌
xferlog vsftpd日誌
httpd apache日誌
secure 安全日誌 ssh ftp telnet pop3 pam等有關
lastlog 記錄每一個賬戶最後一次登錄的時間,使用lastlog
wtmp 查看的是一個月之內所有賬戶的的登錄情況,使用last
btmp 查看現在正在登錄的賬戶,使用lastb查看
samba samba共享日誌
yum.log yum程序相關的日誌
dmesg 開機時核心檢測過程中所產生的信息
boot.log 系統啓動過程日誌記錄存放
三、logrotate日誌輪轉
/etc/logrotate.conf 主配置文件
每個服務輪轉配置文件 /etc/logrotate.d/
注:針對任何日誌文件(rsyslog 日誌、Nginx訪問或錯誤日誌…)
一、logrotate (輪轉,日誌切割)
- 如果沒有日誌輪轉,日誌文件會越來越大
- 將丟棄系統中最舊的日誌文件,以節省空間
- logrotate本身不是系統守護進程,它是通過計劃任務crond每天執行
主配置文件
[root@youngfit ~]# vim /etc/logrotate.conf
weekly //輪轉的週期,一週輪轉
rotate 4 //保留4份
create //輪轉後創建新文件
dateext //使用日期作爲後綴
#compress //日誌輪替時,舊的日誌進行壓縮
include /etc/logrotate.d //包含該目錄下的配置文件
/var/log/wtmp { //對該日誌文件設置輪轉的方法
monthly //一月輪轉一次
minsize 1M //最小達到1M才輪轉,否則就算時間到了也不輪轉
create 0664 root utmp //輪轉後創建新文件,並設置權限 所有者 所屬組
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丟失不提示
monthly //每月輪轉一次
create 0600 root utmp //輪轉後創建新文件,並設置權限
rotate 1 //保留一份
}
missingok //丟失不提醒
#notifempty // 空文件不輪轉
#size 30k //只要到了30k就輪轉
#yearly
daily //每天輪轉一次
rotate 3
create 0777 root root
}
[root@localhost]# /usr/sbin/logrotate -f /etc/logrotate.conf //強制手動輪轉
[root@localhost apache]# logrotate -f /etc/logrotate.d/yum 輪轉某個服務的日誌
[root@localhost ]# grep yum /var/lib/logrotate/logrotate.status //記錄所有日誌文件最近輪轉的時間 "/var/log/yum.log" 2017-3-31-10:0:23
#/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf //根據狀態文件,規則文件進行輪轉
[root@192 ~]# vim /etc/logrotate.d/nginx
/var/log/nginx/*.log { #指定需要輪轉處理的日誌文件
daily #日誌文件輪轉週期,可用值爲: daily/weekly/yearly
missingok # 忽略錯誤信息
rotate 7 # 輪轉次數,即最多存儲7個歸檔日誌,會刪除最久的歸檔日誌
minsize 5M #限制條件,大於5M的日誌文件才進行分割,否則不操作
dateext # 以當前日期作爲命名格式
compress # 輪循結束後,已歸檔日誌使用gzip進行壓縮
delaycompress # 與compress共用,最近的一次歸檔不要壓縮
notifempty # 日誌文件爲空,輪循不會繼續執行
create 640 nginx nginx #新日誌文件的權限 所有者所屬組
sharedscripts #有多個日誌需要輪詢時,只執行一次腳本
postrotate # 將日誌文件轉儲後執行的命令。以endscript結尾,命令需要單獨成行
if [ -f /var/run/nginx.pid ]; then #判斷nginx的PID。# 默認logrotate會以root身份運行 nginx 只有啓動的時候纔會生成一個nginx.pid 的文件,也就是如果後面存在一個文件也就是nginx啓動了
kill -USR1 cat /var/run/nginx.pid
fi
endscript
}