1. 程式人生 > >LINUX日誌採集及遠端日誌同步

LINUX日誌採集及遠端日誌同步

一、系統日誌
程序和作業系統核心需要能夠為發生的事件記錄日誌 , 這些日誌可用於系統稽核和問題的故障排除 , 一般這些日誌永久儲存 /var/log 目錄中
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.日誌級別
debug            ###有調式資訊的,日誌資訊最多
info            ###一般資訊的日誌,最常用
notice            ###最具有重要性的普通條件的資訊
warning            ###警告級別
err            ###錯誤級別,阻止某功能或模組不能正常工作的資訊
crit            ###嚴重級別,阻止整個系統或整個軟體不能正常工作的資訊
alert            ###需要立刻修改的資訊
emerg            ###核心崩潰等嚴重資訊
none            ###什麼都不記錄
注:
3.日誌儲存檔案
日誌永久儲存於 /var/log 目錄中。各系統檔案記錄資訊如下:
var/log/messages    ###大多數系統日誌資訊記錄在此處
/var/log/secure        ###安全和身份認證相關的訊息和錯誤的日誌檔案(系統登陸)
/var/log/maillog    ###與郵件伺服器相關的日誌檔案
/var/log/cron         ###與定時任務相關的日誌檔案
/var/log/boot.log     ###與系統啟動有關的日誌檔案

二、日誌採集
1.系統日誌採集服務rsyslog

     此服務是用來採集服務的,他不產生日誌,只是採集
2.日誌採集規則

1)指定日誌採集路徑

rsyslog 服務的主配置檔案為/etc/rsyslog.conf 。在此檔案中指定日誌採集路徑的格式為:
     日誌型別 . 日誌級別           /var/log/file(日誌存放檔案)

測試步驟:

vim   /etc/rsyslog.conf          ##檢視並修改採集日誌檔案配置,為了讓我們把日誌採用到指定位置

        *.*       /var/log/westos     #將所有日誌的所有除錯資訊放到/var/log/westos(這個檔案會自動生成)
systemctl  restart  rsyslog.service     #重啟rsyslog系統

 >    /var/log/westos            ###清空日誌

logger  test   

cat   /var/log/westos           ###檢視日誌

2)指定日誌採集格式

vim      /etc/rsyslog.conf

      $template 格式名稱 , “日誌採集格式”

       日誌型別 . 日誌級別                /etc/log/file(日誌儲存檔案);格式名稱

%timegenerated%  #日誌生成時間
%FROMHOST-IP%    #日誌來源主機的IP
%syslogtag%             #日誌生成程式(記錄目標)
%msg%                    #日誌內容
\n                             #換行

測試步驟:

vim    /etc/rsyslog.conf
      $template STUDENT,"%FROMHOST-IP% %syslogtag% %msg%\n"          ###不採集時間
      *.*                                                     /var/log/westos;STUDENT

systemctl  restart  rsyslog.service 

 >    /var/log/westos            ###清空日誌

logger  student 

cat   /var/log/westos           ###檢視日誌

三、日誌的遠端同步及採集格式設定

1.遠端日誌同步

1)在日誌傳送方

vim   /etc/rsyslog.conf

*.*    @接受IP *.*         ##‘@’表示udp協議傳送,‘@@’表示tcp協議傳送   ##將所有日誌的所有除錯資訊傳送到接收方地址

systemctl  restart  rsyslog.service          ###重啟rsyslog伺服器

2)在日誌接收方
vim /etc/rsyslog.conf
15    $ModLoad imudp            ###日誌接收模組
16    #$UDPServerRun 514          ###開啟接收埠

systemctl restart rsyslog 
systemctl stop firewalld            ###關閉防火牆 

systemctl disable firewalld   #關閉防火牆對接收的遮蔽

測試步驟:

傳送方server(172.25.254.248):

vim   /etc/rsyslog.conf

systemctl restart rsyslog.service

接收方desktop(172.25.254.168):

vim   /etc/rsyslog.conf

systemctl restart rsyslog

systemctl stop firewalld   

在傳送方:

在接收方:

注意排錯:防火牆關閉;網路暢通;服務開啟;介面開啟

四、時間同步

1.時間同步服務名稱  chronyd

在伺服器端共享時間:
vim /etc/chrony.conf

   22      allow  IP/24                ##允許那些客戶端來訪問本機共享的時間

   29      local stratum 10                 ##本機不同步任何時間,本機作為時間源

   systemctl restart chronyd.server    ##重啟chronyd服務

在客戶端:

vim /etc/chrony.conf

server  主機IP    iburst      ##本機立即同步ip主機的時間

systemctl restart chronyd    ##重啟chronyd

chronyc sources -v

改為

出現“^* ”就說明試驗成功,已經和172.25.254.248的時間同步

^                   ##172.25.254.248的伺服器

*                   ##current synced已完成同步

2.修改時間

1)timedatectl 命令

timedatectl                  ##檢視時間

timedatectl  list-timezones  ##查詢所有時區時間
timedatectl  set-timezone Asia/Shanghai    ##修改時間為上海時間

timedatectl status            ##顯示當前時間資訊

timedatectl set-time "2018-10-13  22:15:00"    ##更改當前時間

2)設定硬體時間

timedatectl set-local-rtc 0   ##使用UTC(倫敦)時間

timedatectl set-local-rtc 1    ##使用當地時間

vim  /etc/adjtime              ###檢視硬體時間配置檔案

五、日誌檢視

1.     journalctl                  ##日誌檢視工具,直接檢視記憶體中的日誌(暫時)

   
        journalctl  -n  3        ##檢視最近日誌的前三行

   
        journalctl  -p  err     ##檢視日誌中的錯誤

   
        journalctl  --since  時間點   --until  時間點

  
        journalctl -o verbose             ##檢視日誌詳細引數  

 

         journalctl _COMM=sshd _PID=10171

測試:systemctl status sshd   ##檢視pid

            systemctl restart sshd       ##重開啟一個sshd,每重啟一次PID就會不一樣

    

2.如何使用systemd-journald永久儲存日誌

預設此程式只負責對日誌進行檢視而不對日誌進行儲存和採集,那麼關機後再開機,對日誌進行檢視,只能檢視到開機後的日誌

系統之前的日誌因為是儲存在記憶體中的,所以關機後就被清空了,那麼在開機是用journalctl看不到

讓systemd-journald儲存日誌到硬碟:
mkdir     /var/log/journal
chown    root.systemd-journal     /var/log/journal     ##更改檔案所有人及所有組
chmod   g+s    /var/log/journal                                  ##在目錄中建立的檔案都自動歸屬到目錄所在組
killall    -1    systemd-journald                                   ##訊號1,重新載入配置而不重啟

法二:

測試:

journalctl   -n  3         ##檢視日誌前三行內容
reboot                 ##退出系統
重新登陸

cd   /mnt         ###隨便執行一條命令

journalctl          ##檢視日誌