linux之系統日誌管理

1.rsyslog                

          ##此服務是用來採集日誌的,它不產生日誌,只是起到採集作用

          vim  /etc/rsyslog.conf        ##查看採集日誌信息

          /var/log/messages            ##服務信息日誌
           /var/log/secure            ##系統登陸日誌
           /var/log/cron                ##定時任務日誌
           /var/log/maillog            ##郵件日誌
           /var/log/boot.log            ##系統啓動日誌

 指定路徑採集路徑

            在指定日誌的下一行  設定 *.*               /var/log/westos    重新啓動服務,用ll命令查看westos採集的服務內容。

  

2.指定日誌採集路徑


**   *(什麼類型日誌).*(什麼級別的日誌)   /var/log/westos ##所有級別所有類型

什麼類型的日誌.什麼級別的日誌        /var/log/file    ##日誌採集規則

##日誌類型分爲:
auth        ##pam產生的日誌
authpriv    ##ssh,ftp等登陸信息的驗證信息
cron        ##時間任務相關
kern        ##內核
lpr        ##打印
mail        ##郵件
mark(syslog)-rsyslog    ##服務內部的信息,時間標識
news        ##新聞組
user        ##用戶程序產生的相關信息
uucp        ##unix to unix copy,unix主機之間相關的通訊
local 1~7    ##自定義的日誌設備

##日誌級別分爲:
debug        ##有調試信息的,日誌信息最多
info        ##一般信息的日誌,最常用
notice        ##最具有重要性的普通條件的信息
warning        ##警告級別
err        ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息
crit        ##嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息
alert        ##需要立刻修改的信息
emerg        ##內核崩潰等嚴重信息
none        ##什麼都不記錄

##注意:從上到下,級別從低到高,記錄的信息越來越少
##詳細的可以查看手冊:man 3 syslog

 

2.日誌的遠程同步

1)在日誌的發送方:

           vim /etc/rsyslog.conf
           *.*        @172.25.254.200 (接受方的ip)        ##"@表示udp  @@表示tcp"""

           systemctl  restart  rsyslog

2)在日誌的接受方:
          vim  /etc/rsyslog.conf
          $ModLoad  imudp         ##日誌接受模塊
          $UDPServerRun 514    ##開啓接受端口


         systemctl  restart  rsyslog
         systemctl  stop  firewalld        ##關閉火牆
         systemctl  disable  firewalld    ##設定火牆開機關閉

          

                

3)測試:
         在發送方和接受方都清空日誌文件
         > /var/log/messages

         在日誌的發送方
         logger test

         cat /var/log/messages    ##查看日誌已經完成

         在日誌接受方查看
          cat /var/log/messages

         

         

###日誌採集格式的設定##
在接收方:

vim /etc/rsyslog.conf
systemctl restart rsyslog

$template LOGFMT, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
*.*                            /var/log/westos;LOGFMT

%timegenerated%        ##顯示日誌時間
%FROMHOST-IP%        ##顯示主機ip
%svslogtag%        ##日誌記錄目標
%msg%            ##日誌內容
\n            ##換行

cat /var/log/westos

3.時間同步服務

服務名稱
      chronyd

1)在服務端:
vim /etc/chrony.conf
22    allow 172.25.254.0/24        ##允許那些客戶端來同步本機時間
29     local stratum 10                   ##本機不同步任何主機的時進,本機作爲時間源

systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai

2)在客戶端:
vim /etc/chrony.conf
server 172.25.254.200 iburst(三行刪掉一行改)   ##本機立即同步200主機的時間

systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai        ##管理時間改時區

3)測試
[[email protected] Desktop]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||                                                /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                  \            |    zzzz = estimated error.
||                                   |           |                         
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 172.25.254.216                0   7     0   10y     +0ns[   +0ns] +/-    0ns
##出現問號?時,要注意火牆是否關閉


4.timedatectl 命令

timedatectl    ##管理系統時間
         status            ##顯示當前時間信息
        set-time        ##設定當前時間
eg:timedatectl set-time "2018-11-11 11:11:11"    ##設定當前時間爲2018年11月11日11點11分11秒
        set-timezone        ##設定當前時區
eg:timedatectl set-timezone Asia/Shanghai    ##設定當前時區爲東8區

        set-local-rtc 0|1    ##設定是否使用utc時間 (1開0關)
        list-timezones        ##查看支持的所有時區

5.journal

1.journalctl           ##日誌查看工具
            -n 3           ##查看最近三條日誌
            -p err        ##查看錯誤日誌
            -o verbose    ##查看日誌的詳細參數
            --since      ##查看從什麼時間開始的日誌
            --until        ##查看從什麼時間截止的日誌

 

2.如何使用systemd-journald保存系統日誌
默認systemd-journald是不保存系統日誌到硬盤的
那麼關機後再次開機只能看到本次開機之後的日誌
上一次關機之前的日誌是無法查看的

mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald

ls /var/log/journal
946cb0e817ea4adb916183df8c4fc817

reboot        ##重啓
journalctl -n 6