共計(jì) 4018 個(gè)字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。
這篇文章主要介紹了 linux 中日志管理的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
1. 什么是日志
電腦的日志相當(dāng)于我們平常寫的日記,日志里面記錄的是服務(wù)器的狀態(tài)。
原因:
日志的存在可以使管理員提前知道服務(wù)器的各種狀態(tài),如果服務(wù)器出現(xiàn)什么問題可以提前處理。
那么問題來了,公司的服務(wù)器很多,難道管理員一個(gè)一個(gè)查看服務(wù)器的狀態(tài)嗎?實(shí)際上并不是這樣的,為了提高工作效率,我們可以把所有服務(wù)器的日志集中在一起管理,放在一臺主機(jī)上管理,將其他服務(wù)器的日志都傳到這臺管理日志的主機(jī)上,這樣就方便多了。
注意:系統(tǒng)啟動自動打開的 shell 會一直產(chǎn)生日志
2. 搭建實(shí)驗(yàn)環(huán)境
key1: 先在真機(jī)里面開啟兩臺虛擬機(jī),并且配置好網(wǎng)絡(luò)
key2: 將真機(jī)作為日志的接收方,將 desktop 虛擬機(jī)作為日志的發(fā)送方
(備注:這里真機(jī)的 ip 為 172.25.254.39 虛擬機(jī) ip 為 172.25.254.239)
3. 系統(tǒng)日志管理基本概念
1.rsyslog:此服務(wù)是用來采集系統(tǒng)日志的,它自己不產(chǎn)生日志,只是起到采集日志的作用
2.rsyslog 的管理:
/var/log/messages 服務(wù)信息日志
/var/log/secure 系統(tǒng)登陸日志
/var/log/cron 定時(shí)任務(wù)日志
/var/log/maillog 郵件日志
/var/log/boot.log 系統(tǒng)啟動日志
注: 以上這些路徑是用來指定日志的采集路徑
3. 日志采集規(guī)則在 /var/log/file(文件名)中設(shè)置
注:心里要清楚什么類型的日志,什么級別的日志
日志類型
auth pam 產(chǎn)生的日志
authpriv ssh,ftp 等登陸信息的驗(yàn)證信息
cron 時(shí)間任務(wù)相關(guān)
kern 內(nèi)核
lpr 打印
mail 郵件
mark (syslog)-rsyslog 服務(wù)內(nèi)部的信息,時(shí)間標(biāo)示
news 新聞組
user 用戶程序產(chǎn)生的相關(guān)信息
uucp unix to unix copy ,unix 主機(jī)之間相關(guān)的通訊
local 1~7 自定義的日志設(shè)備
** 日志級別 **
debug 有調(diào)試信息的,日志信息最多
info 一般信息的日志,最常用的
notice 最具有重要性的普通條件信息
warning 警告級別
err 錯(cuò)誤級別,阻止某個(gè)功能或者模塊不能正常工作的信息
crit 嚴(yán)重級別,阻止整個(gè)系統(tǒng)或者整個(gè)軟件不能正常工作的信息
alert 需要立刻修改的信息
emerg 內(nèi)核崩潰等嚴(yán)重消息
none 什么都不記錄
注:從上到下,級別從低到高,記錄的信息越來越少, 詳細(xì)的可以查看手冊:man 3 syslog
4. 日志的定向采集
將什么類型、什么級別的日志放在哪個(gè)路徑下,這就叫日志的定向采集
這樣做也有利于日志的管理和查看,因此應(yīng)該設(shè)計(jì)采集規(guī)則
(1)搭建實(shí)驗(yàn)環(huán)境:開啟虛擬機(jī),配置 ip
(2)操作:打開設(shè)定日志采集規(guī)則的文件 vim /etc/rsyslog.conf
(3) 在日志采集文件里面設(shè)置將任意類型、任何級別的日志都存放在 /var/log/westos 下, 如果 westos 文件不存在,會自動生成該文件 命令格式為. /var/log/westos
(4) 重啟系統(tǒng) systemctl restart rsyslog
(5)測試:1 生成日志 systemctl restart sshd
2 查看日志 cat /var/log/westos
5. 日志的遠(yuǎn)程同步
一臺服務(wù)器管理多臺服務(wù)器
在日志發(fā)送方設(shè)置:
1. 在虛擬機(jī) desktop 中先 vim /etc/rsyslog.conf
寫入 . @172.25.254.39(接受方 ip 及真機(jī)的 ip)
2. 退出文件后,再 shell 里面輸入 systemctl restart rsyslog,重啟系統(tǒng)
在日志接受方設(shè)置:
1. 在主機(jī) server 主機(jī)中先 vim /etc/rsyslog.conf
2. 將 /etc/rsyslog.conf 這個(gè)文件中的 15 行和 16 行的注釋去掉
15 $ModLoad imudp 日志接受模塊
16 $UDPServerRun 514 開啟接收模塊
3. 重啟系統(tǒng) systemctl restart rsyslog
4. 關(guān)閉火墻 syatemctl stop firewalled
測試:
(1)在發(fā)送方和接受方清空日志文件 命令:
/var/log/messages
(2) 在日志發(fā)送方的 shell 當(dāng)中輸入
logger 內(nèi)容
分別 cat /var/log/messages 看否有文件已經(jīng)生成
注:在查看日志時(shí),同時(shí)也生成了很多的 /etc/rc.d/rc.local 文件,為了在實(shí)現(xiàn)日志同步時(shí)便于觀看應(yīng)該在發(fā)送方主機(jī)清空這個(gè)文件
重新啟動:reboot
(3)在日志接收方:
重啟系統(tǒng):systemctl restart rsyslog
關(guān)閉火墻:systemctl stop firewalld
(4)在日志接收方發(fā)送發(fā)都清空歷史日志文件
/var/log/messages,重新建立日志,并且查看
(5)在日志接收方查看遠(yuǎn)程同步的日志
用該命令在接收方可以查看接口配置是否正確 netstat -antlupe | grep rsyslog
日志的采集格式
一般情況下我們采集到的日志格式如下
cat /var/log/messages 日志是默認(rèn)的格式
1. 在接受日志方(server 服務(wù)端)進(jìn)行日志采集格式的設(shè)置
1. 先 vim /etc/rsyslog.conf
2. 然后在 rules(規(guī)則下)設(shè)置日志采集規(guī)則
3.$template JJ(任意寫),“%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n” 顯示日志的生成時(shí)間 %timegenerated%
顯示發(fā)送發(fā)的 ip %FROMHOST-IP%
日志內(nèi)容 %msg%
日志記錄目標(biāo) %syslogtag%
換行 \n
在下面寫 *.* /var/log/messages;JJ # 在指定的日志中采用 JJ 格式
4. 重啟服務(wù)
5. 在日志接收方查看日志格式
6. 想要文件的默認(rèn)格式都是這樣
**7. 設(shè)置系統(tǒng)時(shí)間 **
timedatectl 管理系統(tǒng)時(shí)間
timedatectl status 顯示當(dāng)前時(shí)間信息
timedatectl set-time 設(shè)定當(dāng)前時(shí)間
timedatectl set-timezone 設(shè)定當(dāng)前時(shí)區(qū)
timedatectl set-local-rtc 0 或 1 設(shè)定是否使用 utc 時(shí)間
timedatectl list-timezones 查看支持的所有時(shí)區(qū)
3 個(gè) local time
Universal time 國際時(shí)間
RTC time 硬件時(shí)間
Timezone 時(shí)區(qū)
8. 時(shí)間同步服務(wù)
服務(wù)名稱:chronyd
步驟:在服務(wù)端:
1.vim /etc/chrony.conf
1.allow 172.25.254.0/24 允許那些客戶端來同步本機(jī)時(shí)間
2.local stratum 10 本機(jī)不同步任何主機(jī)的時(shí)間,本機(jī)作為時(shí)間源
3.systemctl restart chronyd
在客戶端
1.vim /etc/chrony.conf
1.server 172.25.254.239(服務(wù)端的 ip)iburst(刪除其他的) 本機(jī)立即同步 211 主機(jī)的時(shí)間
2.systemctl restart chronyd
測試
在客戶端輸入:chronyc sources -v
出現(xiàn) ip 就說明好了
在客戶端和服務(wù)端均輸入 date 看是否時(shí)間同步
9. 新的日志采集方式 journal
1. 原因:
1.rsyslog 采集日志,從磁盤讀取,速度慢,reboot 重啟系統(tǒng)之后系統(tǒng)之前的日志會被清除
2.journal 不采集日志,直接從內(nèi)核存看日志,速度更快,reboot 重啟系統(tǒng)之后系統(tǒng)之前的日志會被清除
2.journalctl 日志查看工具
journalctl -n 3 查看最近 3 條日志
journalctl -p err 查看錯(cuò)誤日志
journalctl -o verbose 查看日志的詳細(xì)參數(shù)
journalctl –since 查看從什么時(shí)間開始的日志
journalctl –until 查看到什么時(shí)間為止的日志
3. 在硬盤創(chuàng)建一個(gè)區(qū)域,專門存放 journal 采集的日志(這樣 reboot 之后日志還會存在)
1.mkdir /var/log/journal
2.chgrp systemd-journal /var/log/journal/
(系統(tǒng)初始化程序控制這個(gè)日志,改這個(gè)文件的所有組 systemd-journal, 這樣系統(tǒng)就能識別這個(gè)文件了,把這個(gè)文件放入這個(gè)組,讓組控制這個(gè)文件)
3.chmod g+s /var/log/journal/(改這個(gè)文件的權(quán)限,使這個(gè)文件的 systemd-journal 組都能查看這個(gè)日志)
4.ls -ld /var/log/journal/ 查看文件屬性
5.ps aux | grep journal 查看進(jìn)程
6.killall -1 /usr/lib/systemd/systemd-journald(進(jìn)程重新加載配置,不會關(guān)閉進(jìn)程)
7.date 查看系統(tǒng)當(dāng)前時(shí)間
8.ls /var/log/journal/
9.bootctl 重啟
感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“l(fā)inux 中日志管理的示例分析”這篇文章對大家有幫助,同時(shí)也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!