1、關心問題:哪類程序---》 產生的什麼日誌----》 放到什麼地方
2、處理日誌的進程
(1) 第一類:
rsyslogd: 系統專職日誌程序。 處理絕大部分日誌記錄,
系統操作有關的信息,如登錄信息,程序啓動關閉信息,錯誤信息
(2) 第二類:
httpd/nginx/mysql: 各類應用程序,可以以自己的方式記錄日誌.
3、觀察 rsyslogd程序
[[email protected] ~]# ps aux |grep rsyslogd
root 717 0.0 0.0 219752 3880 ? Ssl 09:05 0:00 /usr/sbin/rsyslogd -n
4、常見的日誌文件(系統、進程、應用程序)
# tail -10 /var/log/messages //系統主日誌文件
# tail -f /var/log/messages //動態查看日誌文件的尾部
# tailf /var/log/secure //認證、安全
# tail /var/log/yum.log //yum
# tail /var/log/maillog //跟郵件postfix相關
# tail /var/log/cron //crond、at進程產生的日誌
# tail /var/log/dmesg //和系統啓動相關
5、rsyslogd 配置
(1)相關程序
yum install rsyslog logrotate 默認已安裝
(2)啓動程序
systemctl start rsyslog.service
(3)相關文件
rpm -qc rsyslog
/etc/rsyslog.conf rsyslogd的主配置文件(關鍵)
/etc/sysconfig/rsyslog rsyslogd相關文件,定義級別(瞭解一下)
/etc/logrotate.d/syslog 和日誌辦輪轉(切割)相關(任務二)
6、主配置文件——告訴rsyslogd進程什麼日誌,應該存到哪裏。
# vim /etc/rsyslog.conf
RULES
RULES:即規則,是一套生成日誌,以及存儲日誌的策略。
RULES即規則,有三部分組成( 由設備+級別+存放位置 )
RULES由FACILITY+LEVEL+FILE組成。
authpriv.* /var/log/secure(SSH信息)
mail.* -/var/log/maillog(發郵件)這裏有一個 - 符號, 表示是使用異步的方式記錄, 因爲日誌一般會比較大
cron.* /var/log/cron(創建任務)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
系統日誌排除了郵件,認證,計劃日誌。
關於程序和設備的聯繫問題,程序自身會決定將日誌交給哪類設備。如SSH程序會選擇安全類設備。這一點由開發者定義。
規則示意圖——目的:通過繪圖形式來理解日誌工作機制。
1、將大量的日誌,分割管理,刪除舊日誌。、
2、簡介
日誌 記錄了程序運行時各種信息。
通過日誌可以分析用戶行爲,記錄運行軌跡,查找程序問題。
可惜磁盤的空間是有限的
日誌輪轉就像飛機裏的黑匣子,記錄的信息再重要也只能記錄最後一段時間發生的事。
爲了節省空間和整理方便,日誌文件經常需要按!時間或!大小等維度分成多份,刪除時間久遠的日誌文件。
3、工作原理 —— 按照配置進行輪轉
配置文件種類
主配置文件:/etc/logrotate.conf ( 決定每個日誌文件如何輪轉 )
子配置文件夾:/etc/logrotate.d/* 自定義配置 便於管理
觀察主文件和子文件
[[email protected] ~]# ls /etc/logrotate.conf /etc/logrotate.d/
/etc/logrotate.conf
/etc/logrotate.d/:
acpid cups iscsiuiolog ppp rpm subscription-manager up2date wpa_supplicant
conman httpd mgetty psacct setroubleshoot syslog vsftpd.log yum
4、主配置文件介紹
5、yum日誌輪轉實例
(1)輪轉的目標文件 /var/log/yum.log
(2)配置輪轉規則
# vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok //丟失不執行
# notifempty //空文件不論轉
# maxsize 30k //達到30k輪轉, daily or size
# yearly //或者一年一輪轉
daily //縮小週期到1天
rotate 3 //輪轉保留3次
create 0777 root root
}
(3)測試
錯誤示範
# /usr/sbin/logrotate /etc/logrotate.conf //手動輪轉
# ls /var/log/yum*
/var/log/yum.log 文件只有一個。因爲日期沒變
正確示範
修改時間,手動觸發輪轉
# date 04011000
date 月日時分
把時間向未來推移
# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
# ls /var/log/yum* 日誌文件已經出現多個
關於時間 # grep 'yum' /var/lib/logrotate/logrotate.status //記錄所有日誌文件最近輪轉的時間 "/var/log/yum.log" 2019-3-31-10:0:23 //如果沒有輪轉過,第一次只有記錄