Linux系統中,擁有非常強大的日志功能,可以儲存幾乎所有的記錄,我們可以從中檢索出我們所需要的資訊。
一般日志存放的目錄:/var/log/
系統常見日志:
/var/log/wtmp ##系統登陸日志
/var/log/messages ##所有日志級别的正常資訊(不包含郵件,服務認證,定時任務)
/var/log/maillog ##系統郵件服務日志
/var/log/secure ##系統認證日志
/var/log/crom ##系統定時任務日志
rsyslog:用于日志采集的服務
配置檔案:
/etc/rsyslog.conf
日志的類型:
auth ##安全授權資訊
authpriv ##服務認證資訊
cron ##定時任務資訊
ftp ##FTP程序資訊
kern ##核心日志
lpr ##列印機日志
mail ##郵件日志
news ##新聞
local0-7 ##本地自定義日志
日志級别(遞減)
emerg ##系統崩潰
alert ##必須立刻處理的問題
crit ##報錯(進階别)
err ##報錯(低級别)
warning ##警告資訊
notice ##重大資訊
info ##正常資訊
debug ##調試資訊
測試:
新增一個日志檔案,收集所有日志資訊
[[email protected] ~]# vim /etc/rsyslog.conf ##編輯配置檔案
52 # Log anything (except mail) of level info or higher.
53 # Don't log private authentication messages!
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
55 *.* /tmp/jinx ##新增儲存所有級别所有日志資訊到/tmp/jinx
[[email protected] ~]# systemctl restart rsyslog.service ##重新開機服務
[[email protected] ~]# systemctl restart sshd.service ##重新開機一個服務生成日志
[[email protected] ~]# cat /tmp/jinx ##檢視系統日志是否生成
Apr 20 09:08:26 desktop rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="3904" x-info="http://www.rsyslog.com"] start
Apr 20 09:08:26 desktop rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Apr 20 09:08:26 desktop systemd: Stopping System Logging Service...
Apr 20 09:08:26 desktop systemd: Starting System Logging Service...
Apr 20 09:08:26 desktop systemd: Started System Logging Service.
Apr 20 09:08:38 desktop systemd: Stopping OpenSSH server daemon...
Apr 20 09:08:38 desktop sshd[1243]: Received signal 15; terminating.
Apr 20 09:08:38 desktop systemd: Starting OpenSSH server daemon...
Apr 20 09:08:38 desktop systemd: Started OpenSSH server daemon.
Apr 20 09:08:38 desktop sshd[3922]: Server listening on 0.0.0.0 port 22.
Apr 20 09:08:38 desktop sshd[3922]: Server listening on :: port 22.
遠端記錄日志資訊
[[email protected] ~]# vim /etc/rsyslog.conf ##編輯配置檔案
52 # Log anything (except mail) of level info or higher.
53 # Don't log private authentication messages!
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
55 *.* @172.25.80.100
## 55 *.* 所有日志所有級别 @172.25.80.100 通過udp協定發送至172.25.80.100 @通過udp傳輸,@@通過tcp傳輸
[[email protected] ~]# systemctl restart rsyslog.service ##重新開機服務
日志接收端
[[email protected] ~]# vim /etc/rsyslog.conf ##編輯配置檔案
14 # Provides UDP syslog reception
15 $ModLoad imudp ##删除#符,開啟udp系統日志接收
16 $UDPServerRun 514 ##使用端口:514
17
18 # Provides TCP syslog reception
19 #$ModLoad imtcp ##這裡設定開啟tcp系統日志接收
20 #$InputTCPServerRun 514
[[email protected] ~]# systemctl restart rsyslog.service ##重新開機rsyslog服務
[[email protected] ~]# systemctl stop firewalld.service ##關閉防火牆,防止防火牆攔截日志資訊
[[email protected] ~]# systemctl disable firewalld.service ##禁止防火牆自動啟動
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
[[email protected] ~]# > /var/log/messages ##清空日志,以便檢視新日志
[[email protected] ~]# cat /var/log/messages ##檢視日志
Apr 20 09:37:30 localhost rc.local: /etc/rc.d/rc.local: connect: No route to host
Apr 20 09:37:30 localhost rc.local: /etc/rc.d/rc.local: line 18: /dev/tcp/content.example.com/80: No route to host
[[email protected] ~]# > /etc/rc.d/rc.local ##rc.local有自動運作腳本,清空
[[email protected] ~]# reboot
[[email protected] ~]# > /var/log/messages ##清空日志
[[email protected] ~]# cat /vat/log/messages
[[email protected] ~]# vim /etc/rsyslog.conf
51 $template jinx,"%timegenerated% %FORMHOST-IP% %syslogtag% %msg%\n" ##建立格式
52 # Log anything (except mail) of level info or higher.
53 # Don't log private authentication messages!
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages;jinx ##日志選用格式
[[email protected] ~]# systemctl restart rsyslog.service
##檢視是否清空
日志發送端
[[email protected] ~]# systemctl restart sshd ##重新開機服務産生日志
日志接收端
[[email protected] ~]# cat /var/log/messages ##檢視生成的日志
Apr 20 10:13:07 desktop systemd: Stopping OpenSSH server daemon...
Apr 20 10:13:07 desktop systemd: Starting OpenSSH server daemon...
Apr 20 10:13:07 desktop systemd: Started OpenSSH server daemon.
自定義日志采集格式
$template 格式名稱,"日志采集格式"
%timegenerated% ##日志生成時間
%FORMHOST-IP% ##日志來源主機的IP
%syslogtag% ##日志生成的程式
%msg% ##日志内容
\n ##換行
journalctl ##用于日志檢視(記憶體中的),rhel7以後的版本新增
-f ##監控
-n 10 ##十條
-p err ##報錯 emerg\alert\crit\err\warning\notice\info\debug
--since 時間 ##開始時間
--until 時間 ##結束時間
-o verbose ##詳細資訊
verbose ##檢視詳細資訊相關日志
journalctl預設隻負責對日志進行檢視而不對日志進行儲存和采集
讓systemd-journald儲存日志到硬碟中
[[email protected] ~]# mkdir /var/log/journal ##建立日志儲存目錄
[[email protected] ~]# chown root.systemd-journal /var/log/journal ##設定目錄所屬族
[[email protected] ~]# chmod g+s /var/log/journal ##目錄中建立檔案所屬族繼承父目錄
[[email protected] ~]# killall -1 systemd-journald ##重新家在journald服務