從 Ubuntu 11.04 (natty)之後的版本,就找不到 /var/log/messages ,因為原本的 syslog 變成了 rsyslog – RSYSLOG (rocket-fast system for log processing) .
圖片出自於 http://www.rsyslog.com/
rsyslog 檔案儲存在 /var/log/syslog ,RHEL / CentOS 6 ,7 使用 rsyslog 但保留一樣的檔案名稱 (/var/log/messages)
RSYSLOG 基本上就是強化版的 syslog 套件
- Multi-threading
可以同時記錄傳送多達(每秒高達百萬筆記錄),不管是本底端或是遠端資料. - TCP, SSL, TLS, RELP
更安全的傳輸 - MySQL, PostgreSQL, Oracle and more
可以使用 MySQL 與 PostgreSQL 資料庫當做儲存的媒介 - Filter any part of syslog message
更好的過濾器 (Filter) 來分析記錄. - Fully configurable output format
支援自定的紀錄格式以及可以使用 - Suitable for enterprise-class relay chains
適用於企業的資料
rsyslog 儲存名稱與路徑是依據 rsyslog 設定檔來決定,我們可以自行修改設定檔,將系統訊息寫到 /var/log/messages 以及其他的 log 中.
- Ubuntu
編輯 /etc/rsyslog.d/50-default.conf#sudo vi /etc/rsyslog.d/50-default.conf
- RHEL/CentOS 6/7
編輯 /etc/rsyslog.conf[root@localhost ~]$ vi /etc/rsyslog.conf #### MODULES #### # The imjournal module bellow is now used as a message source instead of imuxsock. $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal #### GLOBAL DIRECTIVES #### # Where to place auxiliary files $WorkDirectory /var/lib/rsyslog # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # File syncing capability is disabled by default. This feature is usually not required, # not useful and an extreme performance hit #$ActionFileEnableSync on # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf # Turn off message reception via local log socket; # local messages are retrieved through imjournal now. $OmitLocalLogging on # File to store the position in the journal $IMJournalStateFile imjournal.state #### RULES #### # 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/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log
設定方式類似 syslog 更多關於設定請參考 https://benjr.tw/22756
每一列都要包含的格式 facility.level action
- facility
用以代表訊息的來源, local0 至 local7 為使用者自定.系統預定的有- kern :kernel message
- user : generic user level message
- mail : mail system
- daemon : other daemon
- authpriv : security/authorization messages
- syslog : internal syslog messages
- lpr : printing system
- news : news system
- uucp : UUCP subsystem
- authpriv : security/authorization messages
- ftp : FTP daemon
- cron : clock daemons(atd and crond)
- level(priority)
代表何種等級的錯誤訊息需要登錄,可選用的錯誤等級(由高至低):
“emerg” (0), “alert” (1),”crit” (2), “err” (3), “warning” (4), “notice” (5), “info” (6),”debug” (7).
使用*代表所有的錯誤皆登錄,還有一種為none代表系統停用此一登錄措施. - action
代表系統日誌檔所存放的位址,除了本機可存放,還可以指定遠端機器來存放日誌檔.
裡面會在 Action 的設置中看到比較特別的寫法 -/var/log/maillog , 減號(-) 代表的是先記錄到記憶體中,之後在同步到檔案中.
修改存檔後,重新啟動 rsyslog
# sudo /etc/init.d/rsyslog restart
SystemD 版本的 Linux 則是透過本身的 systemd-journald 來協助記錄系統日誌 (可以透過指令 #journalctl 來檢視),讀取系統日誌檔時,可以依據需求做分類,請參考 https://benjr.tw/97011
沒有解決問題,試試搜尋本站其他內容