Linux基礎知識(系統日誌的相關命令)
一、系統日誌的採集規則
-
日誌可以直接看出系統中的錯誤,日誌在記憶體裡,由服務決定
vim /etc/rsyslog.conf 檢視並修改採集日誌檔案配置,為了讓我們把日誌採集到指定位置。 -
日誌採集格式:日誌型別.日誌級別 日誌存放檔名稱
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 不採集任何日誌資訊
注意: 日誌從上到下,級別從低到高,記錄的資訊也越來越少。 -
系統常用日誌
/var/log/messages 所有日誌級別的常規資訊(不包含郵件,服務認證,定時任務)
/var/log/maillog 郵件日誌
/var/log/cron 定時任務日誌
/var/log/secure 服務認證日誌
:omusrmsg:* 核心崩潰等嚴重資訊日誌
/var/log/spooler unix主機之間相關的通訊和新聞日誌的高階報錯日誌
/var/log/boot.log 使用者自定義日誌
-
日誌的遠端同步
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主機的日誌
-
定義日誌的採集格式
要求傳輸過來的日誌有時間,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
-
時間同步(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主機時間同步。 -
系統時間的修改
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"設定當前系統時間
-
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
-
記憶體採集日誌
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 直接檢視