1. 程式人生 > >Linux(RadHat)基礎學習—系統日誌管理

Linux(RadHat)基礎學習—系統日誌管理

war sin tag local mail dir 查錯 one 如何使用

系統日誌管理

1.系統日誌

系統日誌是記錄系統中硬件、軟件和系統問題的信息,同時還可以監視系統中發生的事件。用戶可以通過它來檢查錯誤發生的原因,或者尋找受到×××時×××者留下的痕跡。系統日誌包括系統日誌、應用程序日誌和安全日誌。

2.系統日誌默認分類

/var/log/messages       系統服務的日誌,包括服務的信息,報錯等等
/var/log/secure           系統登陸認證信息日誌
/var/log/maillog             系統郵件服務信息日誌
/var/log/cron                 系統定時任務信息日誌
/var/log/boot.log           系統啟動信息日誌

3.系統日誌采集

1.日誌管理服務rsyslog

rsyslog負責采集日誌和分類存放日誌,並不產生日誌

2.采集日誌的文件配置

vim /etc/rsyslog.conf   ------------>主配置文件
     *.*                              /var/log/westos
服務.日誌級別             存放文件

配置時寫入格式

日誌設備(類型).(連接符號)日誌級別   日誌處理方式(action)
    如*.*表示采集所有系統日誌
(1)日誌設備(類型)
auth                                     pam產生的日誌
authpriv                              ssh,ftp等登錄信息的驗證信息
cron                                    時間任務相關
kern                                    內核
lpr                                       打印
mail                                    郵件
mark(syslog)–rsyslog      服務內部的信息,時間標識
news                                  新聞組
user                                   用戶程序產生的相關信息
uucp                                   unix to unix copy, unix主機之間相關的通訊
local 1~7                          自定義的日誌設備
(2)連接符
.xxx             表示大於等於xxx級別的信息
.=xxx           表示等於xxx級別的信息
.!xxx            表示在xxx之外的等級的信息
(3)日誌級別
debug               有調式信息的,日誌信息最多
info                    一般信息的日誌,最常用
notice               最具有重要性的普通條件的信息
warning            警告級別
err                     錯誤級別,阻止某個功能或者模塊不能正常工作的信息
crit                     嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息 
alert                  需要立刻修改的信息
emerg              內核崩潰等嚴重信息
none                 什麽都不記錄
ps:從上到下,級別從低到高,記錄的信息越來越少

詳細的可以查看手冊: man 3 syslog
(3)采集日誌存放目錄

可以自定義目錄,不過一般放在/var/log/底下。

!自定義采集的每條日誌的格式!
在日誌接收方編輯文件:vim /etc/rsyslog.conf

在文件的第46行 ####RULES#### 後換行寫入:
$template LOGFMT, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
     格式     格式命名 :(冒號)                   "具體格式"

%timegenerated%         顯示日誌時間
%FROMHOST-IP%        顯示主機ip
%syslogtag%                 日誌記錄目標
%msg%                             日誌內容
\n                                       換行
例如:
           *.*              /var/log/westos;LOGFMT                      

技術分享圖片

配置完成以後重啟服務

systemctl restart rsyslog

2.日誌的遠程同步

1.關閉日誌發送方和接收方的防火墻

systemctl stop firewalld            關閉兩臺主機的火墻
systemctl disable firewalld     設置開機不啟動

2.配置日誌發送方

編輯文件:vim /etc/rsyslog.conf
*.*             @172.25.254.157 ---------->通過udp協議把日誌發送到157主機
ps:@  一個@表示使用udp協議發送
            @@  兩個@表示使用tcp協議發送
systemctl restart rsyslog       重啟日誌服務

技術分享圖片
3.配置日誌接收方

編輯文件:vim /etc/rsyslog.conf
在第15、16行
$ModLoad imudp            誌接收模塊(插件)
$UDPServerRun 514      開啟日誌接收插件使用端口
重啟日誌服務:systemctl restart rsyslog

技術分享圖片
4.測試

> /var/log/messages             兩邊都作清空日誌記錄
logger test message            日誌發送方產生測試日誌(ogger命令後跟字符常用來測試日誌是否被記錄)
tail -f /var/log/messages          查看接收端日誌文件messages後10行(看是否存在剛剛寫入的測試日誌)

3.時間同步服務

     服務名稱:chronyd

1.服務端(共享時間同步給其他主機的一端)

yum install chrony -y   安裝服務(安裝系統時已經安裝,如果沒有此服務再按照命令安裝)

同步時間需要關閉防火墻:systemctl stop firewalld

編輯文件:vim /etc/chrony.conf   
在第21~30行
# Allow NTP client access from local network.
allow 172.25.254.0/24    ------------>允許誰去同步我的時間(此處允許ip前三位一樣的主機)
# Serve time even if not synchronized to any NTP server.
ocal stratum 10              ------------>本機不去同步任何人的時間,本機作為時間源。
重啟服務:systemctl restart chronyd

timedatectl set-timezone Asia/Shanghai 更改時區(當時區一致時無需更改)

2.客戶端
關閉防火墻:systemctl stop firewalld

編輯文件vim /etc/chrony.conf
按照第3~8行的格式寫下同步時間的主機的ip:
    server 0.rhel.pool.ntp.org iburst
    server 1.rhel.pool.ntp.org iburst
    server 2.rhel.pool.ntp.org iburst
    server 3.rhel.pool.ntp.org iburst

例如:直接將其改成:server 172.25.250.200 iburst ---------->本機去同步此IP主機的時間

重啟服務:systemctl restart chronyd

timedatectl set-timezone Asia/Shanghai 更改時區(當時區一致時無需更改)

3.測試

chronyc sources -v              ---------->使時間同步

“^”:表是服務端
“*”:表示已經同步完成

4.journal

jounalctl                                                                  查看所有系統日誌
                        -n 3                                                   查看最近三條日誌
                        -p err                                              查看錯誤日誌
                        -o verbose                                    查看日誌的詳細參數
                        --since “開始時間” --until "截止日期"

如何使用systemd-journald保存系統日誌
此程序是默認將日誌寫到內存中的,並不會寫道硬盤。開機後無法查看到上次的系統日誌。而rsyslog是采集日誌。

1.建立文件:
    mkdir /var/log/journal
2.改變所有組:
    chgrp systemd-journal /var/log/journal
3.使產生的新文件所有組也是systemd-journald
    chmod g+s /var/log/journal
4.重啟system-journal:
    kill -1 systemd-journald

在journal下產生文件946cb0e817...8c4fc817,在裏面的文件是數據類型,不能直接打開查看,用journalctl查看

5.timedatectl命令

timedatectl     status                                   顯示當前時間信息
        set-time    “xxxx-xx-xx xx:xx:xx”           設定當前時間
        set-timezone    時區                              設定當前時區
        set-local-rtc 0|1                                      設定是否使用utc時間(0啟動utc時間,1啟動本地時間)
timedatectl set-timezone Asia/Shanghai  同步時間為CST時區

Linux(RadHat)基礎學習—系統日誌管理