天天看點

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                ##調試資訊

測試:

新增一個日志檔案,收集所有日志資訊

[[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服務
           

繼續閱讀