1. 程式人生 > >Linux基礎知識(系統日誌的相關命令)

Linux基礎知識(系統日誌的相關命令)

一、系統日誌的採集規則

  1. 日誌可以直接看出系統中的錯誤,日誌在記憶體裡,由服務決定
    vim /etc/rsyslog.conf 檢視並修改採集日誌檔案配置,為了讓我們把日誌採集到指定位置。

  2. 日誌採集格式:日誌型別.日誌級別 日誌存放檔名稱
    1.日誌型別:
    auth 使用者登陸日誌(pam產生的日誌)
    authpriv 服務認證日誌(sshd認證日誌)
    kern 核心日誌
    cron 時間任務日誌
    lpr 印表機日誌
    mail 郵件日誌
    news 新聞日誌
    user 使用者相關程式產生的日誌
    uucp unix to unix copy, unix主機之間相關的通訊
    local 1~7 使用者自定義日誌
    mark(syslog)-rsyslog 服務內部資訊,時間標識
    2.日誌級別:


    debug 系統除錯資訊,日誌資訊最多
    info 常規資訊,最常用的資訊
    notice 最具有重要性的普通條件資訊
    warning 警告資訊
    err 報錯(級別低,阻止了某個功能不能正常工作)
    crit 報錯(級別高,阻止整個軟體或整個系統不能正常工作)
    alert 需要立即修改的資訊
    emerg 核心崩潰等嚴重資訊
    none 不採集任何日誌資訊
    注意: 日誌從上到下,級別從低到高,記錄的資訊也越來越少。

  3. 系統常用日誌
    /var/log/messages 所有日誌級別的常規資訊(不包含郵件,服務認證,定時任務)
    在這裡插入圖片描述
    /var/log/maillog 郵件日誌
    在這裡插入圖片描述
    /var/log/cron 定時任務日誌
    在這裡插入圖片描述


    /var/log/secure 服務認證日誌
    在這裡插入圖片描述
    :omusrmsg:* 核心崩潰等嚴重資訊日誌
    在這裡插入圖片描述
    /var/log/spooler unix主機之間相關的通訊和新聞日誌的高階報錯日誌
    在這裡插入圖片描述
    /var/log/boot.log 使用者自定義日誌
    在這裡插入圖片描述

  4. 日誌的遠端同步
    1.一臺主機處理多臺伺服器的日誌
    日誌傳送方:(客戶端)
    編輯vim /etc/rsyslog.conf
    vim /etc/rsyslog.conf編輯日誌的採集規則(說明要傳送的日誌型別和接受方) @ UDP @@TCP
    54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
    55 *.* @172.25.254.250

    日誌接收方的地址
    在這裡插入圖片描述
    systemctl restart rsyslog.service重新啟動服務
    [[email protected] ~]# > /var/log/messages清除原本日誌 (實驗用)
    [[email protected] ~]# > /etc/rc.d/rc.local 清除日誌的啟動指令碼,重新啟動後生效
    logger test 輸入 test
    cat /var/log/messages 檢視日誌
    在這裡插入圖片描述
    日誌接收方:
    systemctl stop firewalld 關閉防火牆
    編輯vim /etc/rsyslog.conf
    14 行# Provides UDP syslog reception
    15 $ModLoad imudp 開啟外掛
    16 $UDPServerRun 514 開啟介面 UDP
    在這裡插入圖片描述
    systemctl restart rsyslog.service 重新啟動服務
    [[email protected] ~]# > /var/log/messages 清空原日誌
    [[email protected] ~]# > /etc/rc.d/rc.local 清除日誌的啟動指令碼,重新啟動後生效
    cat /var/log/messages 檢視desktop主機的日誌
    在這裡插入圖片描述
    在這裡插入圖片描述

  5. 定義日誌的採集格式
    要求傳輸過來的日誌有時間,IP,程序來源,程序內容。
    在接收方端編輯 vim /etc/rsyslog.conf
    $template 格式名稱,“日誌採集格式”
    *.info;mail.none;authpriv.none;cron.none /var/log/messages;格式名稱
    在RULES下新增:

    $template WESTOS,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
    *.info;mail.none;authpriv.none;cron.none /var/log/messages;WESTOS
    在這裡插入圖片描述
    %timegenerated% 日誌生成時間
    %FROMHOST-IP% 日誌來源主機的IP
    %syslogtag% 日誌生成程式
    %msg% 日誌內容
    \n 換行
    編輯結束退出後執行重啟動服務systemctl restart rsyslog.service
    在這裡插入圖片描述
    在這裡插入圖片描述

  6. 時間同步(chrony命令)
    同步時間實驗:
    傳送放:desktop:編輯 vim /etc/chrony.conf
    server 172.25.254.250 iburst 同步ip為172.25.245.250主機的時間
    在這裡插入圖片描述
    systemctl restart chronyd.service 重新啟動服務
    在這裡插入圖片描述
    接收方:編輯修改時間 date 12121212
    Wed Dec 12 12:12:00 EST 2018
    在這裡插入圖片描述
    編輯vim /etc/chrony.conf
    #Allow NTP client access from local network.
    allow 172.25.254/24 允許指定主機同步不時間
    #Serve time even if not synchronized to any NTP server.
    local stratum 10 開啟介面表示允許同步
    在這裡插入圖片描述
    systemctl restart chronyd.service 重新啟動服務
    關閉火牆systemctl stop firewalld
    在這裡插入圖片描述
    測試:
    1.檢視傳送端時間
    在這裡插入圖片描述
    2.檢視接收端時間
    在這裡插入圖片描述
    檢視傳送端是否和接收端的時間同步 chronyc sources -v
    在傳送端desktop主機執行 chronyc sources -v 命令
    在這裡插入圖片描述
    同步成功與ip為172.25.254.250主機時間同步。

  7. 系統時間的修改
    timedatectl 命令顯示當前時間資訊
    在這裡插入圖片描述
    timedatectl list-timezones 檢視當前時區
    在這裡插入圖片描述
    timedatectl set-timezone Asia/shanghai設定當前時區

    timedatectl set-local-rtc 0 預設情況,RTC------UTC
    在這裡插入圖片描述
    vim /etc/adjtime檔案包括了調整硬體時鐘的資料
    在這裡插入圖片描述
    timedatectl set-local-rtc 1 RTC=local
    在這裡插入圖片描述
    vim /etc/adjtime
    在這裡插入圖片描述
    在這裡插入圖片描述
    timedatectl set-time "2018-10-17 16:05:50"設定當前系統時間
    在這裡插入圖片描述

  8. journalctl 命令日誌檢視工具,直接檢視記憶體中的日誌
    journalctl 檢視儲存在記憶體中的所有日誌
    在這裡插入圖片描述
    journalctl -n 3 檢視記憶體中最近的3行日誌
    在這裡插入圖片描述

    journalctl --since 12:10 --until 12:30:50檢視記憶體中從12:10分開始到12:30:50結束的日誌
    在這裡插入圖片描述
    journalctl -p err 檢視報錯日誌
    在這裡插入圖片描述
    journalctl -o verbose 檢視日誌詳細引數
    在這裡插入圖片描述
    實驗步驟:
    systemctl status sshd 檢視pid
    systemctl restart sshd 重開啟一個sshd,每重啟一次PID就會不一樣
    在這裡插入圖片描述
    _PID=1179 _COMM=sshd
    在這裡插入圖片描述

  9. 記憶體採集日誌
    1.對systemd-journald管理
    預設此程式只負責對日誌進行檢視而不對日誌進行儲存和採集。
    那麼關機後再開機,對日誌進行檢視,只能檢視到開機後的日誌,系統之前的日誌因為是儲存在記憶體中的,所以關機後就被清空了,那麼在開機時用journalctl看不到之前的日誌。
    2.如何讓systemd-journald儲存日誌到硬碟中
    步驟如下:
    mkdir /var/log/journal 首先建立journal 日誌
    ll -d /var/log/journal/ 檢視
    chgrp systemd-journal /var/log/journal/修改日誌的組資訊(因為只識別systemd-journal組 )
    ll -d /var/log/journal/
    chmod g+s /var/log/journal/
    ls -ld /var/log/journal/
    ps aux | grep systemd-journald
    kill -1 371
    cd /var/log/journal/
    ls
    946cb0e817ea4adb916183df8c4fc817
    cd 946cb0e817ea4adb916183df8c4fc817
    在這裡插入圖片描述
    journalctl 直接檢視
    在這裡插入圖片描述