1. 程式人生 > >Linux(Centos7)日誌管理

Linux(Centos7)日誌管理

日誌管理 處理日誌的程序 rsyslogd:系統的專職日誌程式,將絕大部分作業系統相關的日誌記錄。(安全、認證、計劃任務..)

應用程式日誌:各類應用程式以自己的方式記錄的日誌。

常見日誌檔案 # tail /var/log/messages        //系統主日誌檔案 # tail -20 /var/log/messages # tail -f /var/log/messages         //動態檢視日誌檔案的尾部 # tailf /var/log/secure          //認證、安全 # tail /var/log/maillog          //跟郵件postfix相關 # tail /var/log/cron            //crond、at程序產生的日誌 # tail /var/log/dmesg            //和系統啟動相關 # tail /var/log/audit/audit.log      //系統審計日誌 # tail /var/log/yum.log          //yum # tail /var/log/mysqld.log      //MySQL # tail /var/log/xferlog             //和訪問FTP伺服器相關 # tail  /var/log/wtmp                   //當前登入的使用者(命令:w) # tail  /var/log/btmp               //最近登入的使用者(命令last    ) # tail  /var/log/lastlog                //所有使用者的登入情況(命令lastlog ) rsyslogd配置 相關程式 # yum install rsyslog logrotate  (預設已安裝) # systemctl  start  rsyslog.service   //啟動 相關檔案 # rpm -qc rsyslog   //查詢相關檔案 /etc/rsyslog.conf       //rsyslogd的主配置檔案 /etc/sysconfig/rsyslog       //rsyslogd相關檔案,定義級別 /etc/logrotate.d/syslog     //和日誌辦輪轉(切割)相關 日誌收集伺服器 目的 集中日誌管理,簡化日誌分析工作。 日誌可存放於本地或(和)遠端伺服器 步驟 1.傳送日誌伺服器 # vim /etc/ssh/sshd.config #SyslogFacility AUTHPRIV SyslogFacility LOCAL5 # vim /etc/rsyslog.conf local5.*        @192.168.2.131      <---此處填寫另一臺裝置的IP地址。 另一臺裝置是集中日誌伺服器。 - 3 # systemctl restart sshd # systemctl restart rsyslog #systemctl stop firewalld 2.接受日誌伺服器 - 1 # vim /etc/rsyslog.conf  $ModLoad imudp $UDPServerRun 514 local5.*       /var/log/server152.log - 2 # systemctl restart rsyslog #systemctl stop firewalld - 3 嘗試ssh登入伺服器1. 並觀察本地日誌 ll /var/log/server152.log 日誌輪轉logrotate Linux系統預設安裝logrotate工具

Logrotate是基於cron來執行的,其指令碼是/etc/cron.daily/logrotate,日誌輪轉是系統自動完成的。 實際執行時,Logrotate會呼叫配置檔案/etc/logrotate.conf。

作用: 日誌記錄了程式執行的各種資訊,通過日誌可以分析使用者行為記錄執行軌跡,查詢程式問題,但磁碟是有限的,因此需要記錄最後一段時間發生的記錄。

logrotate本身不是系統守護程序,他是通過計劃任務crond每天執行。

工作原理 被crond調動 # cat /etc/cron.daily/logrotate 

#!/bin/sh  /usr/sbin/logrotate /etc/logrotate.conf     //日誌輪轉,按/etc/logrotate.conf  按配置進行輪轉 配置檔案種類 logrotate 配置檔案: 主檔案:/etc/logrotate.conf (決定每個日誌檔案如何輪轉) 子資料夾:/etc/logrotate.d/* 主配置檔案 # vim /etc/logrotate.conf 全域性設定 weekly    輪轉週期 rotate    保留4份 create    輪轉後建立新檔案 dateext   使用日期作為字尾 #compress 是否壓縮 include /etc/logrotate.d  包含該目錄下的子配置檔案

對某日誌檔案設定輪轉的方法 /var/log/wtmp{  monthly      一月輪轉一次  minsize 1M   最小達到1M才輪轉,monthly and  minsize create 0664 root utmp   最小達到1M才輪轉,monthly and  minsize rotate 1   保留一份     }

/var/log/btmp { missingok       //丟失不提示 monthly             //每月輪轉一次 create 0600 root utmp   //輪轉後建立新檔案,並設定許可權 rotate 1        //保留一份 } 子配置檔案 # ls /etc/logrotate.d/*

/etc/logrotate.d/bootlog  /etc/logrotate.d/messages        /etc/logrotate.d/yum /etc/logrotate.d/chrony   /etc/logrotate.d/wpa_supplicant logrotate.conf 才主要的配置檔案,logrotate.d 是一個目錄,該目錄裡的所有檔案都會被主動的讀入/etc/logrotate.conf中執行 。

如果 /etc/logrotate.d/ 裡面的檔案中沒有設定一些細節,則會以/etc/logrotate.conf這個檔案的設定來作為預設值。

舉個栗子messages 目的 設定系統日誌輪轉 為系統日誌檔案增加屬性,用於保護日誌檔案 準備工作 # vim /etc/logrotate.d/syslog # 刪除 /var/log/messages(為了避免不同規則互相影響。) 1 2 設定輪轉(指令碼) vim /etc/logrotate.d/messages /var/log/messages { prerotate chattr -a /var/log/messages   #減去chattr endscript

#notifempty daily create 0600 root root missingok rotate 5

postrotate chattr +a /var/log/messages   #增加chattr endscript }

#修改時間重啟rsyslog即可進行輪轉測試 輪轉後需重啟 說明 輪轉後原日誌檔案被改名,新日誌檔案是建立的應用程式根據inode找到日誌檔案進行書寫,如果不重啟,找尋的依舊是老的日誌檔案。 1 配置 # vim /etc/logrotate.d/syslog

{     missingok     sharedscripts     postrotate         /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true     endscript } ---------------------