在 CentOS 系統中,查看日志是系統維護和故障排查的重要技能。以下是常用的日志查看方法和工具:
1.?基本日志位置
CentOS 使用systemd
管理服務,主要日志存儲在:
/var/log/messages
:系統主日志/var/log/secure
:認證和安全相關日志/var/log/maillog
:郵件服務日志/var/log/httpd/
:Apache 服務日志目錄/var/log/mysqld.log
:MySQL 數據庫日志
2.?查看日志的命令
cat
?- 一次性顯示全部內容
cat /var/log/messages
適合小文件,但大文件會刷屏。
more
/less
?- 分頁查看
more /var/log/messages # 向前翻頁
less /var/log/messages # 支持上下鍵和搜索(/關鍵詞)
tail
?- 實時跟蹤最新內容
tail -n 20 /var/log/messages # 顯示最后20行
tail -f /var/log/messages # 實時監控新增內容(按Ctrl+C退出)
grep
?- 搜索特定內容
grep "error" /var/log/messages # 搜索包含"error"的行
grep -i "warning" /var/log/messages # 忽略大小寫搜索
grep -A 5 -B 3 "failed" /var/log/secure # 顯示匹配行前后的上下文
3.?使用journalctl
(systemd 日志)
CentOS 7+ 使用journalctl
管理系統服務日志:
查看全部日志
journalctl
查看特定服務日志
journalctl -u httpd.service # Apache服務日志
journalctl -u mysqld.service # MySQL服務日志
實時監控
journalctl -f # 實時顯示最新日志
journalctl -u sshd.service -f # 實時監控SSH服務
按時間過濾
journalctl --since "2025-06-17 09:00" --until "2025-06-17 12:00"
4.?高級技巧
按用戶過濾
journalctl _UID=1000 # 查看特定用戶的日志
按優先級過濾
journalctl -p err # 只顯示錯誤級別日志
組合命令
journalctl -u nginx.service | grep "404" | less
5.?日志輪轉(Log Rotation)
日志文件會定期輪轉以避免過大,配置文件位于:
/etc/logrotate.conf
:全局配置/etc/logrotate.d/
:服務特定配置
手動觸發輪轉:
logrotate -f /etc/logrotate.conf
6.?權限問題
查看某些日志需要 root 權限,使用sudo
:
sudo tail /var/log/secure
7.?第三方工具
lnav
:交互式日志查看器,支持多文件和高亮sudo yum install lnav -y lnav /var/log/messages
- ELK Stack:企業級日志管理(Elasticsearch + Logstash + Kibana)
示例場景
-
查看 SSH 登錄失敗記錄:
grep "Failed password" /var/log/secure
-
監控 Apache 訪問日志:
tail -f /var/log/httpd/access_log
-
查看系統啟動日志:
journalctl -b
掌握這些方法后,你可以高效地定位系統問題、監控服務狀態和審計安全事件。根據具體需求選擇合適的工具和參數組合即可。