日誌文件vim
日誌文件:記錄本機什麼時候何事何人所爲。安全
日誌文件在管理中做用:服務器
1,系統故障排錯ide
2,統計訪問量測試
日誌軟件:rpm -q rsyslogspa
文件列表:rpm -ql rsyslog命令行
配置文件:rpm -qc rsyslogunix
日誌文件默認位置:ls /var/log調試
#:某些第3方軟件的日誌文件,存在於本身的目錄中的log目錄中或其餘位置。rest
常見的日誌文件(/var/log):
#:文件類型用file命令查。多很多天志文件是純文本文件,可用cat、head查看,還有些二進制(data)日誌文件,需用專用命令查看
secure : 安全相關,主要是用戶認證,如登陸 、建立和刪除帳號 、sudo等
audit/audit.log:審計日誌.跟用戶帳號相關
messages:記錄系統和軟件的絕大多數消息.如服務啓動 、中止 、服務錯誤等.
boot.log:系統啓動日誌.能看到啓動流程.
cron:計劃任務日誌.會記錄crontab計劃任務的建立、執行信息.
dmesg:硬件設備信息(device).純文本,也能夠用dmesg命令查看.
yum.log:yum軟件的日誌,記錄yum安裝、卸載軟件的記錄.
lastlog:最後登陸的日誌.用lastlog查看(二進制日誌文件)
btmp:登陸失敗的信息(bad).用lastb查(二進制日誌文件)
wtmp:正確登陸的全部用戶命令(who、w).用last查(二進制日誌文件)
rsyslog日誌程序的配置文件:rpm -qc rsyslog 查的結果以下
/etc/logrotate.d/syslog 日誌輪轉(切割、輪替)策略文件
/etc/rsyslog.conf 主配置文件
/etc/sysconfig/rsyslog 環境設置配置文件
cat /etc/rsyslog.conf 主配置文件
格式: 類別.等級 日誌文件路徑
#kern.* /dev/console
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
local3.notice /var/log/user.log 添加此行,用於logger測試案例
第一列爲日誌類型和日誌優先級的組合,每一個類型和優先級的組合稱爲一個選擇器;後面一列爲保存日誌的文件、服務器,或輸出日誌的終端。rsyslog 進程根據選擇器決定如何操做日誌。
日誌類別:man 3 syslog
注:日誌類別主要是用來區分軟件、服務.
LOG_AUTH 安全或受權信息
LOG_AUTHPRIV 安全或受權信息 (私有)
LOG_CRON 計劃任務
LOG_DAEMON 系統守護進程 without separate facility value
LOG_FTP ftp進程相關
LOG_KERN 內核消息 (these can't be generated from user processes)
LOG_LOCAL0 through LOG_LOCAL7 本地自定義
LOG_LPR 打印子系統
LOG_MAIL 郵件子系統
LOG_NEWS 新聞組子系統
LOG_SYSLOG 系統消息(8)
LOG_USER (default) 通常用戶的等級的消息
LOG_UUCP UUCP subsystem unix like機器自己相關子系統
日誌等級level:man 3 syslog
注:等級主要用來區分某個軟件中日誌的分類.
LOG_EMERG 疼痛級,嚴重錯誤
LOG_ALERT 報警.必須當即採起措施
LOG_CRIT 較嚴重
LOG_ERR 錯誤
LOG_WARNING 警告
LOG_NOTICE 提示信息.normal, but significant, condition
LOG_INFO 信息
LOG_DEBUG 調試級信息
注:等級爲none表示不記錄任何信息.
練習:要求建立一個跟messages日誌文件相同的日誌規則,將日誌記錄到/var/log/my.log文件中.
vim /etc/rsyslog.conf 執行以下操做
*.info;mail.none;authpriv.none;cron.none /var/log/messages 找到此行
*.info;mail.none;authpriv.*;cron.none /var/log/my.log 添加此行
重啓rsyslog服務:systemctl restart rsyslog
查看日誌: cat /var/log/my.log
logger 命令
logger 是Shell命令,能夠經過該命令使用 rsyslog 的系統日誌模塊,還能夠從命令行直接向系統日誌文件寫入一行信息。
logger命令的語法爲:
logger [-i] [-f filename] [-p priority] [-t tag] [message...]
每一個選項的含義以下:
-f filename:將 filename 文件的內容做爲日誌。
-i:每行都記錄 logger 進程的ID。
-p priority:指定優先級;優先級必須是形如 facility.priority 的完整的選擇器,默認優先級爲 user.notice。
-t tag:使用指定的標籤標記每個記錄行。
message:要寫入的日誌內容,多條日誌以空格爲分隔;若是沒有指定日誌內容,而且 -f filename 選項爲空,那麼會把標準輸入做爲日誌內容。
例如,將ping命令的結果寫入日誌:
建立ping的日誌:ping -c 3 127.0.0.1 | logger -it logger_test -p local3.notice
建立ping的日誌:ping -c 3 127.0.0.5 | logger -it logger_test -p local3.notice
查看日誌文件:cat /var/log/user.log
查看到的日誌內容:Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms
發現ping命令的結果成功輸出到 /var/log/userlog 文件。
命令 logger -it logger_test -p local3.notice 各選項的含義:
-i:在每行都記錄進程ID;
-t logger_test:每行記錄都加上「logger_test」這個標籤;
-p local3.notice:設置日誌類型和優先級。