Linux系統日志管理


 

1、系統常用的日志(日志是用來記錄重大事件的工具) 

    /var/log/message      系統信息日志,包含錯誤信息等

    /var/log/secure         系統登錄日志

    /var/log/cron            定時任務日志

    /var/log/maillog         郵件日志

    /var/log/boot.log       系統啟動日志

2、日志管理服務 rsyslog

    【1】作用:主要用來采集日志,不產生日志

    【2】配置文件:/etc/rsyslog.conf

   編輯文件時的格式為:  ------  *.*           存放日志文件 ------

          其中第一個*代表日志類型,第二個*代表日志級別

    1.日志類型分為:

     auth              ##pam產生的日志

     authpriv             ##ssh、ftp等登錄信息的驗證信息

     corn                ##時間任務相關

     kern              ##內核

     lpr                 ##打印

     mail                    ##郵件

     mark(syslog)-rsyslog##服務內部的信息,時間標識

     news  ##新聞組

     user  ##用戶程序產生的相關信息

     uucp  ##unix  to  nuix  copy主機之間相關的通信

     local  1-7  ##自定義的日志設備

     2. 日志級別分為:

     debug  ##有調試信息的,日志通信最多

     info    ##一般信息日志,最常用

  notice   ##最具有重要性的普通條件的信息

  warning   ##警告級別

  err     ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息

    crit     ##嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息

    alert     ##需要立刻修改的信息

    emerg   ##內核崩潰等重要信息

    none     ##什么都不記錄 

     注意:從上到下,級別從低到高,記錄信息越來越少

               詳細信息可查手冊:man   5   syslog 

     3.示例:在/etc/rsyslog中添加一個日志文件/var/log/xniu,當sshd服務出錯時,該文件會接收到錯誤

     [root@client ~]# vim /etc/rsyslog.conf
 
    
      
    

     注釋: ------ > /var/log/xniu ---是對文件的內容進行清空;當系統配置文件一定要重啟使其生效。   

3.日志的遠程同步 

        【1】 作用:便於管理多台主機

        【2】步驟: 

    (1)在日志發送方:vim  /etc/rsyslog.conf  ----->文件里添加內容: *.*@172.25.254.97 ------>  systemctl  restart  rsyslog

      注釋:添加內容里面,@表示使用udp協議發送;@@表示使用tcp協議發送 

    (2)在日志接收方:vim  /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld

              ------>systemctl   disable firewalld

            注釋: 配置文件里面,15行:$ModLoad  imudp ##表示日志接受模塊;

                     16行:$UDPServerRun 514##表示開啟接受模塊

                     systemctl   stopfirawalld##關閉接受方防火牆 

                     systemctl    disable  firewalld   ##使防火牆開機不自啟動 

    (3)發送方和接收方均清空日志文件,使用命令: > /var/log/message 

    (4)測試:在日志的發送方運行:logger   test  ------> cat /var/log/message   ;完成之后,會產生日志信息

           在接受方運行:cat    /var/log/message ; 

        【3】示例:client虛擬機為發送方,server虛擬機為接受方;實現日志的同步

         [root@client ~]# vim /etc/rsyslog.conf

        
        

 

        

          在服務端進行操作: 

         [root@server ~]# vim /etc/rsyslog.conf           

               
        

         注意:清空日志文件的先后順序。

4.日志采集格式的設定

  【1】作用:從發送方同步過來的日志,不利於我們查看相關信息;所以要接收方采集的日志按我們自己的設定的規則來顯示

  【2】設定步驟:vim   /etc/rsyslog.conf ------>  $template  LOGFMT,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg%\n"

             ------>  在自己顯示的日志文件后面,把格式添加進去:*.*/var/log/westos;LOGFMT 

    注釋: %timegenerated%   ##顯示日志時間

          %FROMHOST-IP%  ##顯示主機IP

          %syslogtag%      ##日志記錄目標

          %msg%         ##日志內容

          \n           ##換行

  【3】 示例: 在server虛擬機中設置規則,可以查看到發送方的信息

         [root@server ~]# vim /etc/rsyslog.conf

        

         在server主機測試結果:

        

5.日志分析和采集工具 

  【1】命令:journalctl##直接執行,進行日志的查看

  【2】參數:-n    3    ##查看最近三條記錄-perr##查看錯誤日志-overbose##查看日志的詳細參數

         --since##查看從什么時候開始的日志 --until##查看什么時候截止的日志

  【3】如何使用--- systemd-journald ---保存系統日志信息

  【4】示例: 使用-n命令來顯示最近3條命令 

                    

          使用-p命令顯示錯誤日志:

          

        使用-o  verbose查看詳細參數:

            

       也可以用命令:journalctl _PID=2482 _COMM=sshd 來進行精確查找:

           

       使用命令:journalctl --since "2018-07-27 12:00" --until  "2018-07-19 00:00" 時間段的日志

 

      

 

     補充:日志在系統的存儲是暫時的,系統重啟后之前的日志信息就不會存在。可以通過以下步驟實現日志的信息保存(在設置之后的留下的信息)   

     [root@client ~]# mkdir /var/log/journal
     [root@client ~]# chgrp systemd-journal /var/log/journal/  
     [root@client ~]# chmod g+s /var/log/journal/        ## 把該文件的使用均指定為組信息
     [root@client ~]# ps aux | grep systemd-journal
     root       364  0.0  0.2  40864  2428 ?        Ss   06:05   0:00 /usr/lib/systemd/systemd-journald
     root      5298  0.0  0.0 112644   936 pts/0    R+   12:08   0:00 grep --color=auto systemd-journal
     [root@client ~]# killall -1 systemd-journald        ##重新開啟日志進程
     [root@client ~]# cd /var/log/journal/
     [root@client journal]# ls
     946cb0e817ea4adb916183df8c4fc817            ##記錄日志信息的id
     [root@client journal]# ll                   ##該日志會記錄7-20 12:09以后的記錄
     total 0
     drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
     [root@client journal]# date
      Fri Jul 20 12:10:17 CST 2018

6.日志時間同步

  【1】作用:讓多台虛擬機保持時間的一致。

  【2】服務名稱:chronyd

  【3】步驟:(在兩台虛擬機下進行)

           (1)在服務端配置:vim  /etc/chronyd

                            22行 allow  172.25.254.0/24    ## 允許ip為172.25.254.0、子網掩碼為24的主機同步時間

                            28行 local stratum 10     ##表示不同步其他時間

                            systemctl  restart  chronyd   

            (2)在客戶端配置:vim  /etc/chronyd

                           2-5行留下一行:server  172.25.254.97    ##表示要同步的主機為172.25.254.97

                           systemctl restart  chrond             ## 重啟服務

                           systemctl stop  firewalld             ## 關閉防火牆

           (3)測試:在客戶端輸入:chronyc  sources -v

                若結果為如下,則表示同步成功:

            

            注意:在做此實驗前,兩邊的時間是不相同的(可以使用date查看);服務器端和客戶端要關閉防火牆,這樣可以進行數據的同步;

                      文件配置之后要重啟。               

7.時間設置timedatectl 

       使用timedatetcl查看系統時間

      

       命令timedatectl list-timezones列出所有時區 

     

       使用--- timedatectl set-timezone  時區名---來修改時區 

     

      使用---timedatectl  set-time  "2018-7-20 12:00:00" ---對時間設定

       

      注意:當前系統中的時間為bios時間+時區(windows下無這種計算方法);

          ---timedatectl set-local-rtc 0---表示使用UTC時間

          ---timedatectl set-local-rtc 1---表示使用LOCAL時間
        

   

 

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM