LINUX学习基础篇(三十五)日志管理
LINUX學習基礎篇(三十五)日志管理
- 日志管理
- 系統中常見的日志文件
- 日志文件格式
- rsyslogd服務的配置文件
- 日志輪替
- logrotate配置文件
- 配置文件夾 /etc/logrotate.d
- 把自己日志加入輪替
日志管理
現在centos中使用的是rsyslogd日志管理服務,是之前syslogd的升級版。
Linux中的日志文件一般保存在/var/log目錄下。
系統中常見的日志文件
| /var/log/cron | 記錄了系統定時任務相關的日志。 |
| /var/logs/dmesg | 記錄了系統在開機時內核自檢的信息,也可以使用dmesg命令直接查看內核自檢信息。 |
| /var/log/btmp | 記錄錯誤登錄的日志,這個文件是二進制文件,需要用lastb命令查看。 |
| /var/log/lastlog | 記錄所有用戶最后一次登錄時間的日志,需要用lastlog明令查看。 |
| /var/log/mailog | 記錄郵件信息。 |
| /var/log/message | 記錄系統中重要信息的日志,如果系統出了問題,首先要檢查的就應該是這個日志。 |
| /var/log/wtmp | 永久記錄所有用戶的登錄,需要用last命令來查看。 |
| /var/log/secure | 記錄驗證和授權方面的信息,只要設計賬戶和密碼的程序都會記錄。 |
rpm包安裝的服務記錄的日志才會/var/log目錄下,源碼包安裝服務的日志則是在源碼包指定目錄中。
日志文件格式
只要是由日志服務rsyslogd記錄的日志文件,格式都是一樣的,基本日志格式有以下四列:
- 事件產生的事件
- 發生事件的服務器的主機名
- 產生事件的服務名或程序名
- 事件的具體信息
rsyslogd服務的配置文件
/etc/rsyslog.conf配置文件格式 :
[root@localhost log]# vim /etc/rsyslog.conf ... mail.* -/var/log/maillog #mail服務名 .連接符 *日志登記 -是指先存在內存中,存滿后存在磁盤里 /var/log/maillog存放位置 *.emerg :omusrmsg:* #如果情況比emerg嚴重的,通知給所有用戶 ...日志服務連接符號:
- “.”:代表只要比后面等級高,就記錄。
- “.=”:代表只記錄所需等級的日志。
- “.!”:除了該等級的日志,都記錄。
日志等級
| debug | 一般的調試說明信息 |
| info | 基本的通知信息 |
| notice | 普通信息,但有一定的重要性 |
| warning | 警告信息,但是還不會影響到服務或系統的運行 |
| err | 錯誤信息,一般達到err等級的信息以及可以影響到服務或系統的運行 |
| crit | 臨界狀況信息,比err嚴重 |
| alert | 警告狀態信息,比crit嚴重,必須立即采取行動 |
| emerg | 疼痛等級信息,系統已經無法使用了 |
| * | 所有日志等級 |
/etc/rsyslog.d/
# Include all config files in /etc/rsyslog.d/include(file="/etc/rsyslog.d/*.conf" mode="optional")這一行的意思是所有/etc/syslog.d/*.conf的文件都會被包括進來,所以要想給指定的服務添加日志管理,可以寫入/etc/rsyslog.conf,也可以在/etc/rsyslog.d/文件中添加日志管理文件。
日志輪替
在工作中,我們需要保存一定時間范圍內的日志文件,以分析和預防系統中可能出現的問題,這個時候,logrotate服務就很重要了,它是Linux提供的日志輪替服務。
日志輪替的功能就是把舊的日志文件改名,同時建立新的日志文件,把超過保存范圍時間的日志文件給刪除。如果配置文件中有"dateext"參數,那么logrotate將會用日期來作為舊日志的后綴。
logrotate配置文件
[root@localhost log]# vim /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly #輪替時間,一周輪替一次# keep 4 weeks worth of backlogs rotate 4 #會保存4個舊文件# create new (empty) log files after rotating old ones create# use date as a suffix of the rotated file dateext #舊日志會用日期作為后綴# uncomment this if you want your log files compressed #compress #輪替日志是否要壓縮,默認是關閉的# RPM packages drop log rotation information into this directory include /etc/logrotate.d #/etc/logrotate.d中的文件被包括進來,也是logrotate的配置文件# system-specific logs may be also be configured here.英文是官方注釋,中文是解釋了一下。
配置文件夾 /etc/logrotate.d
[root@localhost logrotate.d]# ls bootlog btmp chrony dnf firewalld httpd kvm_stat sssd syslog wtmp [root@localhost logrotate.d]# vim /etc/logrotate.d/httpd /var/log/httpd/*log {missingoknotifemptysharedscriptsdelaycompresspostrotate/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || trueendscript }logrotate配置文件的參數解釋:
| daily | 每天輪替 |
| weekly | 每周輪替 |
| mouthly | 每月輪替 |
| rotate 數字 | 保留的日志個數 |
| create mode owner group | 新建日志,并規定日志文件的權限、所有者、所屬組,如create 0600 root utmp |
| mail address | 當日志輪替是,輸出內容通過郵件地址發送到指定的郵件地址 |
| missingok | 當日止文件不存在時,忽略該日志文件的警告信息。 |
| notifempty | 如果日志為空文件,則不進行日志輪替 |
| minsize | 日志輪替的最小值,也就是日志一定要達到這個最小值才會輪替,否則就斷時間達到也不輪替 |
| size | 日志只有達到指定大小才輪替,不按照時間輪替 |
| dateext | 使用日期作為輪替文件后綴 |
| sharedscripts | 該關鍵字后的腳本只執行一次 |
| prerotate/endscript | 在日志輪替之前執行腳本命令 |
| postrotate/endscript | 在日志輪替之后執行腳本命令 |
注:
被輪替日志的服務和rsyslogd需要在輪替后重啟一次,否則無法正常運行。
把自己日志加入輪替
- 直接寫在/etc/logrotate.conf配置文件中。
- 直接在/etc/logrotate.d/目錄中加入配置文件。
模板:
/date/logs/nginx/access/access.log /date/logs/nginx/access/default.log{dailyrotate 15sharedscriptspostrotate/bin/kill -HUP $(/bin/cat /var/run/syslog.pid) &>/dev/null#重啟rsyslogd服務,平滑重啟/bin/kill -HUP $(/bin/cat /usr/local/nginx/logs/nginx.pid) &>/dev/null#重啟Nginx服務endscript }ps:尚硅谷linux視頻課程學習筆記
總結
以上是生活随笔為你收集整理的LINUX学习基础篇(三十五)日志管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盛大文学电子书引入广告测试免费阅读
- 下一篇: Photoshop中合成鸭梨人效果