Linux-日誌採集與查看

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                ##調試信息

測試:

新增一個日誌文件,收集所有日誌信息

[root@desktop ~]# 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

[root@desktop ~]# systemctl restart rsyslog.service     ##重啓服務
[root@desktop ~]# systemctl restart sshd.service        ##重啓一個服務生成日誌
[root@desktop ~]# 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.

遠程記錄日誌信息

[root@desktop ~]# 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傳輸
[root@desktop ~]# systemctl restart rsyslog.service         ##重啓服務

日誌接收端
[root@server ~]# 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
[root@server ~]# systemctl restart rsyslog.service          ##重啓rsyslog服務
[root@server ~]# systemctl stop firewalld.service           ##關閉防火牆,防止防火牆攔截日誌信息
[root@server ~]# systemctl disable firewalld.service        ##禁止防火牆自動啓動
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
[root@server ~]# > /var/log/messages                        ##清空日誌,以便查看新日誌
[root@server ~]# 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
[root@server ~]# > /etc/rc.d/rc.local                   ##rc.local有自動運行腳本,清空
[root@server ~]# reboot                                        
[root@server ~]# > /var/log/messages                        ##清空日誌
[root@server ~]# cat /vat/log/messages               
[root@server ~]# 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    ##日誌選用格式
[root@server ~]# systemctl restart rsyslog.service
       ##查看是否清空

日誌發送端
[root@desktop ~]# systemctl restart sshd                    ##重啓服務產生日誌
日誌接收端
[root@server ~]# 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保存日誌到硬盤中
[root@desktop ~]# mkdir /var/log/journal                        ##創建日誌保存目錄
[root@desktop ~]# chown root.systemd-journal /var/log/journal   ##設置目錄所屬族
[root@desktop ~]# chmod g+s /var/log/journal                    ##目錄中新建文件所屬族繼承父目錄
[root@desktop ~]# killall -1 systemd-journald                   ##重新家在journald服務

發佈了37 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章