Linux(RadHat)基礎學習—系統日誌管理
阿新 • • 發佈:2018-07-28
war sin tag local mail dir 查錯 one 如何使用 系統日誌管理
1.系統日誌
系統日誌是記錄系統中硬件、軟件和系統問題的信息,同時還可以監視系統中發生的事件。用戶可以通過它來檢查錯誤發生的原因,或者尋找受到×××時×××者留下的痕跡。系統日誌包括系統日誌、應用程序日誌和安全日誌。
2.系統日誌默認分類
/var/log/messages 系統服務的日誌,包括服務的信息,報錯等等 /var/log/secure 系統登陸認證信息日誌 /var/log/maillog 系統郵件服務信息日誌 /var/log/cron 系統定時任務信息日誌 /var/log/boot.log 系統啟動信息日誌
3.系統日誌采集
1.日誌管理服務rsyslog
rsyslog負責采集日誌和分類存放日誌,並不產生日誌
2.采集日誌的文件配置
vim /etc/rsyslog.conf ------------>主配置文件
*.* /var/log/westos
服務.日誌級別 存放文件
配置時寫入格式
日誌設備(類型).(連接符號)日誌級別 日誌處理方式(action) 如*.*表示采集所有系統日誌 (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)連接符 .xxx 表示大於等於xxx級別的信息 .=xxx 表示等於xxx級別的信息 .!xxx 表示在xxx之外的等級的信息 (3)日誌級別 debug 有調式信息的,日誌信息最多 info 一般信息的日誌,最常用 notice 最具有重要性的普通條件的信息 warning 警告級別 err 錯誤級別,阻止某個功能或者模塊不能正常工作的信息 crit 嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息 alert 需要立刻修改的信息 emerg 內核崩潰等嚴重信息 none 什麽都不記錄 ps:從上到下,級別從低到高,記錄的信息越來越少
詳細的可以查看手冊: man 3 syslog
(3)采集日誌存放目錄
可以自定義目錄,不過一般放在/var/log/底下。
!自定義采集的每條日誌的格式!
在日誌接收方編輯文件:vim /etc/rsyslog.conf
在文件的第46行 ####RULES#### 後換行寫入: $template LOGFMT, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n" 格式 格式命名 :(冒號) "具體格式" %timegenerated% 顯示日誌時間 %FROMHOST-IP% 顯示主機ip %syslogtag% 日誌記錄目標 %msg% 日誌內容 \n 換行 例如: *.* /var/log/westos;LOGFMT
配置完成以後重啟服務
systemctl restart rsyslog
2.日誌的遠程同步
1.關閉日誌發送方和接收方的防火墻
systemctl stop firewalld 關閉兩臺主機的火墻
systemctl disable firewalld 設置開機不啟動
2.配置日誌發送方
編輯文件:vim /etc/rsyslog.conf
*.* @172.25.254.157 ---------->通過udp協議把日誌發送到157主機
ps:@ 一個@表示使用udp協議發送
@@ 兩個@表示使用tcp協議發送
systemctl restart rsyslog 重啟日誌服務
3.配置日誌接收方
編輯文件:vim /etc/rsyslog.conf
在第15、16行
$ModLoad imudp 誌接收模塊(插件)
$UDPServerRun 514 開啟日誌接收插件使用端口
重啟日誌服務:systemctl restart rsyslog
4.測試
> /var/log/messages 兩邊都作清空日誌記錄
logger test message 日誌發送方產生測試日誌(ogger命令後跟字符常用來測試日誌是否被記錄)
tail -f /var/log/messages 查看接收端日誌文件messages後10行(看是否存在剛剛寫入的測試日誌)
3.時間同步服務
服務名稱:chronyd
1.服務端(共享時間同步給其他主機的一端)
yum install chrony -y 安裝服務(安裝系統時已經安裝,如果沒有此服務再按照命令安裝)
同步時間需要關閉防火墻:systemctl stop firewalld
編輯文件:vim /etc/chrony.conf
在第21~30行
# Allow NTP client access from local network.
allow 172.25.254.0/24 ------------>允許誰去同步我的時間(此處允許ip前三位一樣的主機)
# Serve time even if not synchronized to any NTP server.
ocal stratum 10 ------------>本機不去同步任何人的時間,本機作為時間源。
重啟服務:systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 更改時區(當時區一致時無需更改)
2.客戶端
關閉防火墻:systemctl stop firewalld
編輯文件vim /etc/chrony.conf
按照第3~8行的格式寫下同步時間的主機的ip:
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
例如:直接將其改成:server 172.25.250.200 iburst ---------->本機去同步此IP主機的時間
重啟服務:systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 更改時區(當時區一致時無需更改)
3.測試
chronyc sources -v ---------->使時間同步
“^”:表是服務端
“*”:表示已經同步完成
4.journal
jounalctl 查看所有系統日誌
-n 3 查看最近三條日誌
-p err 查看錯誤日誌
-o verbose 查看日誌的詳細參數
--since “開始時間” --until "截止日期"
如何使用systemd-journald保存系統日誌
此程序是默認將日誌寫到內存中的,並不會寫道硬盤。開機後無法查看到上次的系統日誌。而rsyslog是采集日誌。
1.建立文件:
mkdir /var/log/journal
2.改變所有組:
chgrp systemd-journal /var/log/journal
3.使產生的新文件所有組也是systemd-journald
chmod g+s /var/log/journal
4.重啟system-journal:
kill -1 systemd-journald
在journal下產生文件946cb0e817...8c4fc817,在裏面的文件是數據類型,不能直接打開查看,用journalctl查看
5.timedatectl命令
timedatectl status 顯示當前時間信息
set-time “xxxx-xx-xx xx:xx:xx” 設定當前時間
set-timezone 時區 設定當前時區
set-local-rtc 0|1 設定是否使用utc時間(0啟動utc時間,1啟動本地時間)
timedatectl set-timezone Asia/Shanghai 同步時間為CST時區
Linux(RadHat)基礎學習—系統日誌管理