Linux系统自带日志管理工具rsyslog简单介绍
1,可以已查看本機(jī)的rsyslog服務(wù)狀態(tài)
??sudo systemctl status rsyslog
2,可以查看服務(wù)的包的版本及配置所在目錄
2.1,可以看出這個(gè) /etc/logrotate.d/syslog這個(gè)文件是系統(tǒng)默認(rèn)自帶的要輪詢系統(tǒng)自帶日志的文件
cat /etc/logrotate.d/syslog /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler {missingokdailysharedscriptssize 512Mrotate 10postrotate/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || trueendscript }2.1,?/etc/rsyslog.conf為rsyslogd的主配置文件
[root@master logrotate.d]# grep -C 5 maillog /etc/rsyslog.conf # The authpriv file has restricted access. authpriv.* /var/log/secure# Log all the mail messages in one place. mail.* -/var/log/maillog# Log cron stuff cron.* /var/log/cron[root@master logrotate.d]# grep -C 10 maillog /etc/rsyslog.conf #kern.* /dev/console# Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages# The authpriv file has restricted access. authpriv.* /var/log/secure# Log all the mail messages in one place. mail.* -/var/log/maillog# Log cron stuff cron.* /var/log/cron# Everybody gets emergency messages *.emerg :omusrmsg:*# Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler2.3,/etc/sysconfig/rsyslog是配置rsyslog的文件
[root@master logrotate.d]# cat /etc/sysconfig/rsyslog # Options for rsyslogd # Syslogd options are deprecated since rsyslog v3. # If you want to use them, switch to compatibility mode 2 by "-c 2" # See rsyslogd(8) for more details SYSLOGD_OPTIONS="" [root@master logrotate.d]#3,服務(wù)說明
? ? ? ? 3.1
| 服務(wù)名稱 | 說明 |
| auth | 安全和認(rèn)證相關(guān)信息( 不推薦使用authpriv替代) |
| authpriv | 安全和認(rèn)證相關(guān)信息(私有的) |
| cron | 系統(tǒng)定時(shí)任務(wù)cront和at產(chǎn)生的日志 |
| daemon | 個(gè)各個(gè)守護(hù)進(jìn)程相關(guān)的日志 |
| ftp | ftp守護(hù)進(jìn)程產(chǎn)生的日志 |
| kern | 內(nèi)核產(chǎn)生相關(guān)的日志(不是用戶進(jìn)程產(chǎn)生的) |
| local0-local7 | 為本地服務(wù)使用預(yù)留的服務(wù) |
| lpr | 打印產(chǎn)生的日志 |
| 郵件收發(fā)信息 | |
| news | 與新聞服務(wù)器相關(guān)的日志 |
| syslog | 有syslog服務(wù)產(chǎn)生的日志信息(雖然服務(wù)名稱已經(jīng)改為rsyslogd,但是很多配置都還是沿用了syslogd的,這里名沒有修改服務(wù)名) |
| user | 用戶等級(jí)類別的日志信息 |
| uucp | uucp子系統(tǒng)的日志信息,uucp是早期Linux系統(tǒng)進(jìn)行數(shù)據(jù)傳遞的協(xié)議,后來也常用在新聞組服務(wù)中。 |
? ? ? ?3.2,連接符號(hào)
連接符號(hào)可以識(shí)別為:
“*”代表所有日志等級(jí),比如“authpriv.*”代表authpriv認(rèn)證信息服務(wù)產(chǎn)生的日志,所有的日志等級(jí)都記錄。
“.”代表只要比后面等級(jí)高的(包含該等級(jí))日志都記錄下來。比如:“cron.info”代表cron服務(wù)產(chǎn)生的日志,只要日志等級(jí)大于等于inifo級(jí)別,就記錄。
“.=”代表值記錄所需等級(jí)的日志,其他等級(jí)的都不記錄。比如:“*.=emerg”代表任何服務(wù)日志產(chǎn)生的日志,只要記錄是emerg等級(jí)就記錄。這種用法極少,了解就好。
“.!”代表不等于,也就是除了該等級(jí)的日志外,其他等級(jí)的日志都記錄。
? ? ? ? 3.3日志等級(jí)
| 等級(jí)名稱 | 說明 |
| debug | 一般的調(diào)試信息說明 |
| info | 基本的通知信息 |
| notice | 普通信息,但是有一定的重要性 |
| warning | 警告信息,但是還不會(huì)影響到服務(wù)或系統(tǒng)的運(yùn)行 |
| err | 錯(cuò)誤信息,一般達(dá)到err等級(jí)的信息以及可以影響到服務(wù)或系統(tǒng)的運(yùn)行了。 |
| crit | 臨界狀況信息,比err等級(jí)還要重要 |
| alert | 警告狀態(tài)信息,比crit還要嚴(yán)重,必須立即采取行動(dòng) |
| emerg | 疼痛等級(jí)信息,系統(tǒng)以及無法使用了 |
?3.4,日志記錄位置
日志文件絕對(duì)路徑,如“/var/log/secure”
系統(tǒng)設(shè)備文件,如“/dev/lp0”
轉(zhuǎn)發(fā)給遠(yuǎn)程主機(jī),如"@192.177.5.55:5200"
用戶名,如“root” 忽略或丟棄日志,如“~”
4,?那如果我們想設(shè)置一個(gè)自己服務(wù)該如果配置呢,其實(shí)很簡單
先看下定時(shí)任務(wù)的配置:
[root@master logrotate.d]# cat /etc/cron.daily/logrotate #!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0可以看到它其實(shí)是加載的/etc/logrotate.conf文件,那讓我們再看下這個(gè)文件
[root@master logrotate.d]# cat /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly# keep 4 weeks worth of backlogs rotate 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# no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp {monthlycreate 0664 root utmpminsize 1Mrotate 1 }/var/log/btmp {missingokmonthlycreate 0600 root utmprotate 1 }# system-specific logs may be also be configured here.可以看到include /etc/logrotate.d這行代碼其實(shí)是加載的 /etc/logrotate.d這個(gè)目錄,那再讓我們看下這個(gè)目錄下:
[root@master logrotate.d]# ll /etc/logrotate.d/ total 36 -rw-r--r--. 1 root root 91 Sep 30 2020 bootlog -rw-r--r--. 1 root root 160 Sep 19 2018 chrony -rw-r--r--. 1 root root 93 Nov 17 2020 firewalld -rw-r--r-- 1 root root 810 Oct 2 2020 mariadb -rw-r--r-- 1 root root 109 Feb 16 15:33 mysqld -rw-r--r-- 1 root root 127 Oct 26 2018 redis -rw-r--r--. 1 root root 224 Sep 30 2020 syslog -rw-r--r--. 1 root root 100 Oct 31 2018 wpa_supplicant -rw-r--r--. 1 root root 103 Oct 2 2020 yum可以看到都是一下文件,以服務(wù)名命名,我們打開一個(gè)比如redis
[root@master logrotate.d]# cat !$/redis cat /etc/logrotate.d//redis /var/log/redis/*.log {weeklyrotate 10copytruncatedelaycompresscompressnotifemptymissingok }參數(shù)說明如下:
| 配置參數(shù) | 說明 |
| monthly | 日志文件將按月輪循。其它可用值為'daily','weekly'或者'yearly'。 |
| rotate 5 | 一次將存儲(chǔ)5個(gè)歸檔日志。對(duì)于第六個(gè)歸檔,時(shí)間最久的歸檔將被刪除。 |
| compress | 在輪循任務(wù)完成后,已輪循的歸檔將使用gzip進(jìn)行壓縮。 |
| delaycompress | 總是與compress選項(xiàng)一起用,delaycompress選項(xiàng)指示logrotate不要將最近的歸檔壓縮,壓縮將在下一次輪循周期進(jìn)行。這在你或任何軟件仍然需要讀取最新歸檔時(shí)很有用。 |
| missingok | 在日志輪循期間,任何錯(cuò)誤將被忽略,例如“文件無法找到”之類的錯(cuò)誤。 |
| notifempty | 如果日志文件為空,輪循不會(huì)進(jìn)行。 |
| create 644 root root | 以指定的權(quán)限創(chuàng)建全新的日志文件,同時(shí)logrotate也會(huì)重命名原始日志文件。 |
| postrotate/endscript | 在所有其它指令完成后,postrotate和endscript里面指定的命令將被執(zhí)行。在這種情況下,rsyslogd?進(jìn)程將立即再次讀取其配置并繼續(xù)運(yùn)行。 |
所以如果想我想見一個(gè)mysql,其實(shí)只需要把目錄換成mysql自己的日志目錄就可以了,切分規(guī)則可以自己定,我的是這樣的:
[root@master logrotate.d]# cat /etc/logrotate.d/mysqld /data/mysql/log/mysql-error.log {weeklymissingokrotate 4copytruncatemaxsize 100K }我為了驗(yàn)證效果設(shè)置的切分大小有點(diǎn)小100k,我的效果是這樣的(當(dāng)然需要等定時(shí)任務(wù)生效,或者直接手動(dòng)重新執(zhí)行一下定時(shí)任務(wù)的那個(gè)命令即可)
[root@master logrotate.d]# ll /data/mysql/log/ total 228 drwxr-xr-x. 2 mysql mysql 80 Feb 16 15:00 binlog drwxr-xr-x. 2 mysql mysql 95 Feb 16 15:00 iblog -rw-r-----. 1 mysql mysql 0 Feb 16 15:33 mysql-error.log -rw-r----- 1 mysql mysql 224865 Feb 16 15:33 mysql-error.log-20220216 -rw-r-----. 1 mysql mysql 5686 Feb 16 15:00 mysql-slow.log drwxr-xr-x. 2 mysql mysql 6 Oct 21 2020 relaylog以上是我自己學(xué)習(xí)logrotate的一些總結(jié),希望幫助到更多人謝謝。
總結(jié)
以上是生活随笔為你收集整理的Linux系统自带日志管理工具rsyslog简单介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 文件管理器 ranger,l
- 下一篇: Linux 日志管理