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.發送日誌服務器
- 1
# vim /etc/ssh/sshd.config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
- 2
# 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    保留4create    輪轉後創建新文件
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(爲了避免不同規則互相影響。)
設置輪轉(腳本)
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找到日誌文件進行書寫,如果不重啓,找尋的依舊是老的日誌文件。
配置
# vim /etc/logrotate.d/syslog

{
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章