日志管理
一、概念
(1)在RHEL系統中,日志是通過什么協議記錄的呢? Syslog
(2)記錄服務有關、開機引導有關的日志,服務在運行時候才有有關的日志:Systemd-journald.service
(3)如何保存:以二進制文件的形式保存在內存,如果系統被重啟以后,systemd-journald.service保存的日志就沒有了。
(4)把systemd-journald.service 保存的二進制內容,轉換成文本文檔,並且會保存在/var/log中:rsyslog.service
二、日志分類
/var/log/secure: 一般和登陸有關,例如SSH遠程連接,本地登陸等。
/var/log/boot.log: 系統啟動時啟動的服務和組件等。
三、日志的格式:
Jul 4 05:14:36 : 時間。指記錄/產生這條日志的時間
Servera:產生這天日志的對象(rsyslog可以記錄遠程主機的日志)
sshd[22895]:這個日志是通過哪個服務產生的
Accepted…… : 具體的日志事件
服務類型的日志(如httpd服務的日志)
對於特定的服務日志格式,在服務的配置文件會定義好保存的日志
格式:。例如在/etc/httpd/conf.d/httpd.conf中有格式定義:
Tips:在配置文件中輸入“/LogFormat”可以快速定位到該行,日志格式的定義以通配符表示。
Tips:當使用Linux查看日志時,可以根據以下兩種情況:
A、當需要查看某種具體的服務時:
了解該服務的配置文件中,關於日志的定義路徑,以及日志格式。
B、當需要查看普通的系統相關日志以及服務的簡略日志:
方法一:查看/var/log路徑下的日志(以上已給出)
方法二:使用命令systemctl status xxx(服務名)
C、更多的場景下是通過專門的記錄日志的方式: ELK (不進行詳細的介紹)
四、日志的級別:
日志中的告警信息是分級別的,分為8個等級:
Tips:告警的級別數值越小,說明優先級越高,緊急的程度也越高。當出現emerg的告警信息時,系統基本會死機狀態。一般來說,我們只重點處理0~3的告警。
在rsyslog.conf中,可以配置將不同的告警信息放在指定的文件中(分門別類的存放):/etc/rsyslog.conf
解讀:
A、
authpriv.* /var/log/secure
凡是與登陸驗證相關的告警信息都存放在var/log/secure中。
B、
*.info;mail.none;authpriv.none;cron.none /var/log/messages
所有的信息,除了與郵件,登陸驗證,作業調度相關的告警外,都存放在/var/log/messages中。
C、
*.emerg :omusrmsg:*
針對所有的emerge信息,都會立即顯示在所有的終端上。
:omusrmsg:* : 所有的終端(屏幕上)
日志的級別:日志的文件內容及日志的定義方式
local7.* :日志設備
首先有服務記錄日志到特定的local設備,然后在通過rsyslog存
儲到特定的文件
local0 ~ local7 保留給本機用戶使用
local7:日志的最高級別為7。
舉幾個例子:
(1)在/etc/rsyslog.conf中增加如下配置后重啟rsyslog服務
local2.info /var/log/test.log
執行命令
[root@localhost ~]# logger -p local2.info "hello world"
查看 /var/log/test.log
[root@localhost ~]# tail /var/log/test.log
Nov 18 22:36:30 localhost root: hello world
Tips: logger命令-p參數含義: -p, --priority priority_level
指定輸入消息的優先級,優先級可以是數字或者指定為 " facility.level" 的格式。比如:" -p local3.info " local3 這個設備的消息級別為 info。默認級別是 "user.notice"
(2)如果是使用rsyslog開源代碼進行開發,可以設置日志的facility類型為local0,對應的rsyslog服務器配置local0日志類型的處理
(3)另外如果是路由設備,比如華為設備,可以對log進行配置:
info-center loghost 192.168.1.1 facility local4
這樣,在192.168.1.1的rsyslog服務器上配置local4日志類型的處理方式,就可以存儲來自路由設備的日志了
五、日志的輪替(logrotate)
日志輪替的定義:使用者定義一種日志規則,每當日志滿足條件時(日志文件大小,周期等),將會產生(替換)一個新的文件記錄日志。
- 日志的輪替規則
(1)以周期為規則。如每周的周五執行一次輪替
(2)以大小為規則。以日志文件的大小進行輪替,如文件大小達到5M時執行一次輪替。
(3)以上兩種方式混合使用來輪替。
日志輪替的配置文件:/etc/logrotate.conf
六、systemd-journald服務
- 查看內存日志命令:journalctl
各個常用參數的含義:
-f (follow):實時滾動顯示最新的日志
-n : 查看后面n行的日志
-p : 查看指定告警級別的日志
--since --until : 指定一個時間段內產生的日志
Tips:如何設置日志的永久存儲
(1)編輯/etc/systemd/journald.conf
(2)設置Storage=persistent
(3)重啟systemd-journald服務即可生效
systemctl restart systemd-journald
七、時間與時區(timedatectl)
設置時區 set-timezone
Tips:這里是CST是指China Standard Time(中國標准時間)
但CST不總是代表中國標准時間
配置Chrony(NTP)服務
如果直接使用timedatectl設置時間
系統會報錯,因為默認使用了NTP(網絡時間協議,一種用於使計算機時間同步的協議),所以不可以自行修改時間。
所以,要先將NTP功能關閉,然后才可以手動修改時間,操作如下:
將NTP功能開啟
遠程服務器設置(chronyd/ntp)
需求:
配置一台客戶端B與另一台服務器A的時間同步(chronyd)
Step 1:在服務器和客戶端安裝chronyd服務
(1)使用dnf在包管理器下載安裝chronyd服務
(2)安裝完成后,啟動並啟用chrongyd服務,並查看一下服務狀態是否顯示正在運行:
Step 2:配置chronyd服務器
(1)chrony安裝完成后,可以在chrony主配置文件/etc/chrony.conf上進行更改配置,配置你想要同步時間的服務器。
Tips:在RHEL7版本及之前,配置文件為ntp.conf
設置最接近你的時間服務器:注釋掉第一個pool行並添加NTP服務器列表:
你還可以指定允許訪問NTP服務器的IP地址或網絡地址block:
更改后重新啟動chronyd服務
(2)如果有活動的firewalld服務,請允許ntp端口:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
(3)檢查NTP服務器是否正常工作:
Step 3:配置chronyd客戶端
(1)編輯配置文件以將NTP服務器設置為指向新配置的NTP服務器:
更改后重新啟動chronyd服務
(2)檢查NTP服務器是否正常工作:
Step 4:驗證
配置到了這里,NTP服務器已經在RHEL 8服務器上運行了
參考鏈接
在RHEL 8系統上使用Chrony配置NTP服務器
https://ywnz.com/linuxyffq/3920.html
國內常用的NTP服務器地址
https://www.cnblogs.com/jins-note/p/9513385.html