1.系統日至預設分類
指令 | 功能 |
---|---|
/var/log/messages | 系統服務及日志,包括服務的資訊,報錯等等 |
/var/log/secure | 系統認證資訊日志 |
/var/log/maillog | 系統郵件服務資訊 |
/var/log/cron | 系統定時任務資訊 |
/var/log/boot.log | 系統啟動資訊 |
2.日志管理服務rsyslog
1.rsyslog負責采集日志和分類存放日志
2.rsyslog日志分類
vim /etc/rsyslog.conf ##主配置檔案
格式:
日志裝置(類型).日志級别 /存放檔案
*.* /var/log/westos
systemctl restart rsyslog ##重起服務

日志裝置(日志類型):
auth | pam産生的日志 |
authpriv | ssh,ftp等登入資訊的驗證資訊 |
cron | 時間任務相關 |
kern | 核心 |
lpr | 列印 |
郵件 | |
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
連結符号
.xxx: 表示大于等于xxx級别的資訊
.=xxx:表示等于xxx級别的資訊
.!xxx:表示在xxx之外的等級的資訊
3.日志同步
systemctl stop firewalld ##關閉兩台主機的火牆
配置日志發送方
*.* @172.25.254.136 ##通過udp協定把日志發送到136主機,@udp,@@tcp
配置日志接受方
$ModLoad imudp ##日志接收插件
$UDPServerRun 514 ##日志接收插件使用端口
因為在服務端使用的是一個@符号,故使用戶端的UDP日志接收插件等的注釋去掉,即收發兩方的協定必須相同
測試
> /var/log/messages ##兩邊都作
logger test messages ##日志發送方
cat /var/log/messages ##檢視日志
tail -f /var/log/message ##日志接收方
若在使用檢視日志時出現某一行出錯,則将其檔案删掉後重起
如50行出錯
服務端清空日志,測試日志
用戶端可以檢視服務端日志
4.日志采集格式
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% | 顯示日志時間 |
%FROMHOST-IP% | 顯示主機ip |
%syslogtag% | 日志記錄目标 |
%msg% | 日志内容 |
\n | 換行 |
注:格式名稱必須是大寫, “參數”參數兩邊都有% 參數寫在什麼位置生成的日志對應參數就在相應的位置 不加換行不會自動換行
參數中間加的分隔符會顯示到日志中 出現invalid property name報錯是參數寫錯 在使用該格式的日志檔案後加;和格式名稱
如果是給别的主機發送就在接收方的/etc/rsyslog.conf下設定同樣的格式即可, 否則發送的會以接收方的格式顯示
即在哪檢視以哪的标準顯示
編輯服務端主檔案
重起使用test2測試
用戶端檢視
發現檔案的格式沒有改變,因為隻在服務端做了格式修改而在用戶端沒有修改
用戶端做同樣修改
再次檢視發現格式改變
5.時間同步
編輯服務,設定時間源
重起服務
服務端關閉防火牆,防火牆不允許别的主機通路或向本機發送資料包
23行 把時間共享出去,允許誰去同步我的時間,allow 172.25.136/24 隻要前三個數字相同就可以通路
30行 local stratum 10 表示時間源的級别,本機不同步任何主機的時間,本機作為時間源
用戶端
vim /etc/chrony.conf
删掉原有的網址,設定服務端ip
通路端 隻保留一行 server 後的是ip位址,iburst是指讓更改立即生效
用戶端測試:
<1>為了差別時間可以在用戶端設定一個别的時間
<2>在未重新開機服務之前
chronyc sources -v檢視目前的設定
<3>重新開機服務,再次檢視,時間與服務端同步
timedatectl指令
指令 | 功能 |
---|---|
timedatectl status | 顯示目前時間資訊 |
timedatectl set-time " " | 設定目前時間 |
timedatectl set-timezone | 設定時區 |
timedatectl set-local-rtc 0/1 | 設定是否使用utc時間 |
設定本地時間
檢視時區
設定時間
設定時區‘
6.journal
journalctl ##日志檢視工具
journalctl主要保證日志的時效性和詳細性,儲存,備份,以及定時删除日志不是他的特長,但是,他也可以實作
注:journalctl查到的是系統目前生成的日志;系統重新開機之後,記憶體斷過電,儲存的日志就會丢失,用journalct就檢視不到日志;
而/var/log/messages檔案裡記錄的是被采集過的日志,系統重新開機不影響其對日志的記錄
指令 | 功能 |
---|---|
journalctl -n 3 | 檢視最近3條日志 |
journalctl -p err | 檢視錯誤日志 |
journalctl -o verbose | 檢視日志的詳細參數 |
journalctl --since “時間點” | 檢視從什麼時間開始的日志 |
journalctl --until “時間點” | 檢視到什麼時間為止的日志 |
journalctl --since “時間點1” --until “時間點2” | 檢視從時間點1到時間點2為止的所有日志 |
journalctl _HOSTNAME=localhost | 檢視主機名為localhost的主機的日志 |
使用systemd-journald儲存系統日志
預設systemd-journald是不儲存系統日志到硬碟的
那麼關機後再次開機隻能看到本次開機之後的日志
上次關機之前的日志是無法檢視的
想要檢視關機之前的日志,首先:
建立日志檔案,改變其組,給特殊權限
重新加載systemd-journald程序配置
檢視日志内容
發現檔案中的内容是目前機器的機器id
重起虛拟機
檢視曆史記錄
就可以儲存08:24:59以前的内容