1、系統常用的日志(日志是用來記錄重大事件的工具)
/var/log/message 系統信息日志,包含錯誤信息等
/var/log/secure 系統登錄日志
/var/log/cron 定時任務日志
/var/log/maillog 郵件日志
/var/log/boot.log 系統啟動日志
2、日志管理服務 rsyslog
【1】作用:主要用來采集日志,不產生日志
【2】配置文件:/etc/rsyslog.conf
編輯文件時的格式為: ------ *.* 存放日志文件 ------
其中第一個*代表日志類型,第二個*代表日志級別
1.日志類型分為:
auth ##pam產生的日志
authpriv ##ssh、ftp等登錄信息的驗證信息
corn ##時間任務相關
kern ##內核
lpr ##打印
mail ##郵件
mark(syslog)-rsyslog##服務內部的信息,時間標識
news ##新聞組
user ##用戶程序產生的相關信息
uucp ##unix to nuix copy主機之間相關的通信
local 1-7 ##自定義的日志設備
2. 日志級別分為:
debug ##有調試信息的,日志通信最多
info ##一般信息日志,最常用
notice ##最具有重要性的普通條件的信息
warning ##警告級別
err ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息
crit ##嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##內核崩潰等重要信息
none ##什么都不記錄
注意:從上到下,級別從低到高,記錄信息越來越少
詳細信息可查手冊:man 5 syslog
3.示例:在/etc/rsyslog中添加一個日志文件/var/log/xniu,當sshd服務出錯時,該文件會接收到錯誤
注釋: ------ > /var/log/xniu ---是對文件的內容進行清空;當系統配置文件一定要重啟使其生效。
3.日志的遠程同步
【1】 作用:便於管理多台主機
【2】步驟:
(1)在日志發送方:vim /etc/rsyslog.conf ----->文件里添加內容: *.*@172.25.254.97 ------> systemctl restart rsyslog
注釋:添加內容里面,@表示使用udp協議發送;@@表示使用tcp協議發送
(2)在日志接收方:vim /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld
------>systemctl disable firewalld
注釋: 配置文件里面,15行:$ModLoad imudp ##表示日志接受模塊;
16行:$UDPServerRun 514##表示開啟接受模塊
systemctl stopfirawalld##關閉接受方防火牆
systemctl disable firewalld ##使防火牆開機不自啟動
(3)發送方和接收方均清空日志文件,使用命令: > /var/log/message
(4)測試:在日志的發送方運行:logger test ------> cat /var/log/message ;完成之后,會產生日志信息
在接受方運行:cat /var/log/message ;
【3】示例:client虛擬機為發送方,server虛擬機為接受方;實現日志的同步
[root@client ~]# vim /etc/rsyslog.conf

在服務端進行操作:
[root@server ~]# vim /etc/rsyslog.conf
注意:清空日志文件的先后順序。
4.日志采集格式的設定
【1】作用:從發送方同步過來的日志,不利於我們查看相關信息;所以要接收方采集的日志按我們自己的設定的規則來顯示
【2】設定步驟:vim /etc/rsyslog.conf ------> $template LOGFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
------> 在自己顯示的日志文件后面,把格式添加進去:*.*/var/log/westos;LOGFMT
注釋: %timegenerated% ##顯示日志時間
%FROMHOST-IP% ##顯示主機IP
%syslogtag% ##日志記錄目標
%msg% ##日志內容
\n ##換行
【3】 示例: 在server虛擬機中設置規則,可以查看到發送方的信息
[root@server ~]# vim /etc/rsyslog.conf
在server主機測試結果:
5.日志分析和采集工具
【1】命令:journalctl##直接執行,進行日志的查看
【2】參數:-n 3 ##查看最近三條記錄-perr##查看錯誤日志-overbose##查看日志的詳細參數
--since##查看從什么時候開始的日志 --until##查看什么時候截止的日志
【3】如何使用--- systemd-journald ---保存系統日志信息
【4】示例: 使用-n命令來顯示最近3條命令
使用-p命令顯示錯誤日志:
使用-o verbose查看詳細參數:
也可以用命令:journalctl _PID=2482 _COMM=sshd 來進行精確查找:
使用命令:journalctl --since "2018-07-27 12:00" --until "2018-07-19 00:00" 時間段的日志
補充:日志在系統的存儲是暫時的,系統重啟后之前的日志信息就不會存在。可以通過以下步驟實現日志的信息保存(在設置之后的留下的信息)
[root@client ~]# chgrp systemd-journal /var/log/journal/
[root@client ~]# chmod g+s /var/log/journal/ ## 把該文件的使用均指定為組信息
[root@client ~]# ps aux | grep systemd-journal
root 364 0.0 0.2 40864 2428 ? Ss 06:05 0:00 /usr/lib/systemd/systemd-journald
root 5298 0.0 0.0 112644 936 pts/0 R+ 12:08 0:00 grep --color=auto systemd-journal
[root@client ~]# killall -1 systemd-journald ##重新開啟日志進程
[root@client journal]# ls
946cb0e817ea4adb916183df8c4fc817 ##記錄日志信息的id
[root@client journal]# ll ##該日志會記錄7-20 12:09以后的記錄
total 0
drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
[root@client journal]# date
Fri Jul 20 12:10:17 CST 2018
6.日志時間同步
【1】作用:讓多台虛擬機保持時間的一致。
【2】服務名稱:chronyd
【3】步驟:(在兩台虛擬機下進行)
(1)在服務端配置:vim /etc/chronyd
22行 allow 172.25.254.0/24 ## 允許ip為172.25.254.0、子網掩碼為24的主機同步時間
28行 local stratum 10 ##表示不同步其他時間
systemctl restart chronyd
(2)在客戶端配置:vim /etc/chronyd
2-5行留下一行:server 172.25.254.97 ##表示要同步的主機為172.25.254.97
systemctl restart chrond ## 重啟服務
systemctl stop firewalld ## 關閉防火牆
(3)測試:在客戶端輸入:chronyc sources -v
若結果為如下,則表示同步成功:
注意:在做此實驗前,兩邊的時間是不相同的(可以使用date查看);服務器端和客戶端要關閉防火牆,這樣可以進行數據的同步;
文件配置之后要重啟。
7.時間設置timedatectl
使用timedatetcl查看系統時間
命令timedatectl list-timezones列出所有時區
使用--- timedatectl set-timezone 時區名---來修改時區
使用---timedatectl set-time "2018-7-20 12:00:00" ---對時間設定
注意:當前系統中的時間為bios時間+時區(windows下無這種計算方法);
---timedatectl set-local-rtc 0---表示使用UTC時間