linux日誌管理
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協議和埠:
[root@Darren log]# vim /etc/rsyslog.conf
$ModLoad imtcp
$InputTCPServerRun 514
重啟rsyslog服務:
[root@zhishutang log]# /etc/init.d/rsyslog restart
檢視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!`
Nov 14 17:39:20 zhishutang root: 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
可以發現這五種日誌
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
原本是每週進行一次輪替,但是強制輪替後,及時生效。
相關文章
- 如何在 Linux 中管理日誌Linux
- 『學了就忘』Linux日誌管理 — 92、日誌輪替Linux
- 『學了就忘』Linux日誌管理 — 90、Linux中日誌介紹Linux
- 『學了就忘』Linux日誌管理 — 93、日誌輪替補充Linux
- 『學了就忘』Linux日誌管理 — 91、日誌服務rsyslogd說明Linux
- 日誌管理
- 重做日誌管理
- Mysql 日誌管理MySql
- SpringBoot日誌管理Spring Boot
- 在Linux中,有哪些日誌管理和分析工具?Linux
- Linux-本地日誌服務管理(rsyslog基礎)Linux
- Linux下Rsyslog日誌遠端集中式管理Linux
- Linux之日誌管理Linux
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- Linux C日誌logLinux
- Linux 檢視日誌Linux
- MySQL日誌管理,舊MySql
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- 在Linux中,如何管理和最佳化日誌檔案?Linux
- 在Linux中,如何使用ELK進行日誌管理和分析?Linux
- Linux日誌搜尋 grepLinux
- linux查詢日誌技巧Linux
- Linux-ELK日誌收集Linux
- Go日誌管理庫zapGo
- 統一日誌管理
- Linux日誌服務初識Linux
- Linux動態列印kernel日誌Linux
- sybase iq日誌檔案管理
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- 華納雲:Linux中如何用logrotate管理每日增長的日誌Linuxlogrotate
- 跟我一起學docker(15)--監控日誌和日誌管理Docker
- Linux系統級日誌系統Linux
- linux-實現日誌分析--pythonLinuxPython
- Linux 查詢 日誌 相關命令Linux
- linux 日誌log檔案 截斷Linux
- 在SpringBoot中使用Logback管理日誌Spring Boot
- Docker容器日誌管理最佳實踐Docker
- CloudFlare Workers 日誌管理方案全解析Cloud