httpd/nginx/mysql
: 各類應用程式,可以以自己的方式記錄日誌
rsyslog
是處理系統相關日誌的程序
rsyslog
可以處理絕大部分日誌記錄,比如系統操作有關資訊,如登入資訊,程式的啟動關閉資訊
[root@catdexin-pc ~]# ps -aux | grep rsyslog
root 1297 0.0 0.3 222764 7292 ? ssl 2月21 0:07 /usr/sbin/rsyslogd -n
rsyslogd = rsyslog deamon(守護程序)
/var/log/
目錄是系統絕大多數日誌的存放位置
/var/log/messages # 系統主日誌檔案
/var/log/secure # 認證,安全,登入相關日誌
/var/log/cron # crond,at計畫任務程序產生的日誌
/var/log/dmesg # 系統啟動相關程序
/var/log/yum.log # yum相關日誌
tail /var/log/messages # 檢視最新日誌
tail -f /var/log/messages # 動態檢視最新日誌 (tail -f 可以簡寫為 tailf)
-------
# 了解內容
/var/log/audit/audit.log # 系統審計日誌
/var/log/mysqld.log # mysql日誌
/var/log/xferlog # 和訪問ftp伺服器相關日誌
/var/log/wtmp # 當前登入的使用者(快捷命令: w)
/var/log/btmp # 最近登入的使用者(快捷命令: last)
/var/log/lastlog # 所用使用者的登入情況(快捷命令: lastlog)
rsyslogd
軟體是預設被安裝的狀態 如果你的系統rsyslogd
有問題 可以嘗試重新安裝
yum install rsyslog logrotate
啟動程式
systemctl start rsyslog.service
[root@catdexin-pc ~]# rpm -q rsyslog
rsyslog-8.24.0-55.el7.x86_64
[root@catdexin-pc ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog
# -q 查詢版本號
# -c 配置檔案 config 只能放在q後面使用
/etc/rsyslog.conf # rsyslog主配置檔案(關鍵)
/etc/sysconfig/rsyslog # rsyslogd相關檔案,定義級別(了解)
/etc/logrotate.d/syslog # 和日誌輪轉(切割)相關(任務二)
vim /etc/rsyslog.conf
告訴rsyslog
程序什麼日誌,應該存放在**
主配置檔案分為三大段
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# mail.none ---》 none 是排除的意思 不降mail的日誌資訊寫入該檔案
```
系統會將不同軟體歸屬於幾種型別的軟體,然後集中存放日誌
facility裝置
裝置型別
# 了解內容
log_syslog # syslogd自身產生的日誌
log_authpriv # 安全認證
log_cron # 排程程式(cron and at)
log_mail # 郵件系統(mail subsystem)
log_user() # 使用者相關
log_daemon # 後台程序
log_ftp # ftp檔案伺服器
log_kern # 核心裝置
log_lpr # 印表機相關裝置
log_local0 through log_local7 # 使用者自定義裝置
程式型別示例
level級別
log_emerg # 緊急,致命,服務無法繼續執行,如配置檔案缺失丟失
log_alert # 報警,需要立即處理,如磁碟空間使用95%
log_crit # 致命行為
log_err # 錯誤行為
log_warning # 警告資訊
log_notice # 普通 重要的標準資訊
log_info # 標準資訊
log_debug # 除錯資訊,拍錯所需,一般不建議使用
# 修改配置檔案時 備份一下原有的配置 最好在加一下注釋
# authpriv.* /var/log/secure
# 2020-12-24-nayue-testing
authpriv.* /var/log/test
# 重啟系統 --> 伺服器不可以隨意重啟 該改法不允許使用
# 重啟程序 --> 重啟程序的過程中會漏掉一些日誌 不建議使用
# > systemctl restart rsyslogd
# > kill -1 processid
[root@catdexin-pc ~]# ps -aux | grep rsyslogd
root 1204 0.0 0.3 216400 6568 ? ssl 2月23 0:10 /usr/sbin/rsyslogd -n
root 64362 0.0 0.0 112828 980 pts/0 s+ 09:43 0:00 grep --color=auto rsyslogd
[root@catdexin-pc ~]# kill -1 1204
# 修改配置之後無法生效 可能有兩種原因
# > 沒有日誌產生 所以沒有檔案產生
# > 配置資訊沒有裝載成功
日誌記錄了程式執行的資訊,通過日誌可以分析使用者行為,記錄執行軌跡,查詢程式問題。但是磁碟是有限的,日誌輪轉就像飛機裡的黑匣子,記錄資訊再重要也只能記錄最後一段時間發生的事,為了節省空間和整理方便,日誌檔案經常按時間或大小等維度分成多份,刪除時間久遠的日誌檔案
主資料夾
/etc/logrotate.conf (決定每個日誌檔案如何輪轉)
/etc/logrotate.d/* (子配置檔案 自定義 方便管理)
# 程式的執行需要主配置檔案 配置的時候建議修改子配置檔案
/etc/logrotate.conf
# 通用配置
weekly # 按周輪轉
rotate 4 # 保留4份日誌檔案
create # 輪轉後建立新檔案
dateext # 使用日期作為字尾
#compress # 是否壓縮
include /etc/logrotate.d # 包含該目錄下的子配置檔案 啟動輪轉時 也去該目錄讀一下配置檔案
# 專有配置
/var/log/wtmp
/var/log/btmp
# 沒有針對配置的程式 按照通用配置來執行
/etc/logrotate.d/yum
/var/log/yum.log
# 注釋掉輪轉時間 將停止時間輪轉
不清楚有什麼用
# 呼叫系統中的logrotate工具 手動讀取配置 手動輪轉
/usr/sbin/logrotate /etc/logrotate.conf
# 呼叫系統中的logrotate工具 按照logrotate.status 執行logrotate.conf配置
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
# data 指令可以檢視當前時間 也可以修改系統時間
[root@catdexin-pc ~]# date
2023年 02月 24日 星期三 15:12:17 cst
[root@catdexin-pc ~]# date 02280100
2023年 02月 28日 星期日 01:00:00 cst
centos 日誌切割 CentOS下的日誌切割
在linux下,日誌會不停的增長,為了防止日誌檔案過大,導致我們無法在日誌中快速找到想要的資訊,我們會定時對日誌檔案進行切割。在這裡我將使用logrotate切割日誌。1 logrotate的配置檔案 logrotate配置檔案主要在兩個地方 etc logrotate.conf以及 etc log...
centos 日誌切割 CentOS下的日誌切割
在linux下,日誌會不停的增長,為了防止日誌檔案過大,導致我們無法在日誌中快速找到想要的資訊,我們會定時對日誌檔案進行切割。在這裡我將使用logrotate切割日誌。1 logrotate的配置檔案 logrotate配置檔案主要在兩個地方 etc logrotate.conf以及 etc log...
centos下Nginx 日誌管理及切割
在我日常開發伺服器維護的時候經常發現我們的伺服器磁碟被站滿了。經過一頓排查發現多數發現是我們的日誌沒有處理好搞的問題。這時候如果我們可以將nginx日誌切割然後定時刪除一下很老的日誌就非常方便了。說明本環境是centos6.5如果是linux 其他版本命令可能會有差異。使用linux的crontab...