Linux在服務(wù)器多節(jié)點(diǎn)下面實(shí)現(xiàn)快速查找日志
Linux在服務(wù)器多節(jié)點(diǎn)下查找日志
最近在查找一個核心服務(wù)的后臺日志,發(fā)現(xiàn)竟然部署了十幾個節(jié)點(diǎn),而且沒使用ELK來做日志處理,所以查找日志非常不方便,不可能一個服務(wù)節(jié)點(diǎn)一個服務(wù)地找,所以通過同事間互相溝通找到一個方法,通過 $(find …)加上grep關(guān)鍵字來實(shí)現(xiàn)多節(jié)點(diǎn)日志模糊查找
日志部署
多節(jié)點(diǎn)的日志歸檔,是按照日期進(jìn)行歸類,在對應(yīng)日期文件夾下面,是多個服務(wù)器節(jié)點(diǎn)的歸類目錄,在節(jié)點(diǎn)目錄下面是業(yè)務(wù)模塊命名的文件夾
舉個例子:
/2024-10-17/server01-192.168.0.1/portal/catalina.out.2024-10-17 /2024-10-17/server02-192.168.0.2/portal/catalina.out.2024-10-17 /2024-10-17/server03-192.168.0.3/portal/catalina.out.2024-10-17
所以節(jié)點(diǎn)少,還可以一個節(jié)點(diǎn)一個節(jié)點(diǎn)查找,節(jié)點(diǎn)多就需要通過一條命令來查找,先cd
到日期命名的目錄,然后通過一條命令進(jìn)行全量掃描
grep "關(guān)鍵字" $(find ./ -type f -name catalina.out.2024-10-17|grep portal)
Linux查看日志的幾種方法
最常用查看日志方法
- 實(shí)時日志:tail -f XXX.log
- 搜索關(guān)鍵字附近日志:cat -n XXX.log | grep "關(guān)鍵字"
查看日志常用命令
tail
:
-n 是顯示行號;相當(dāng)于nl命令;
例子如下:
- tail -100f test.log 實(shí)時監(jiān)控100行日志
- tail -n 10 test.log 查詢?nèi)罩疚膊孔詈?0行的日志;
- tail -n +10 test.log 查詢10行之后的所有日志;
head
:
跟tail是相反的,tail是看后多少行日志,而head是查看日志文件的頭多少行,例子如下:
- head -n 10 test.log 查詢?nèi)罩疚募械念^10行日志;
- head -n -10 test.log 查詢?nèi)罩疚募俗詈?0行的其他所有日志;
cat
:
- tac是倒序查看,是cat單詞反寫;例子如下:
- cat -n test.log |grep "debug" 查詢關(guān)鍵字的日志(常用!~)
vim
:
- 1、進(jìn)入vim編輯模式:vim filename
- 2、輸入“/關(guān)鍵字”,按enter鍵查找
- 3、查找下一個,按“n”即可
- 退出:按ESC鍵后,接著再輸入:號時,vi會在屏幕的最下方等待我們輸入命令
- wq! 保存退出
- q! 不保存退出
常見的應(yīng)用場景
查看日志應(yīng)用場景一:按行號查看:過濾出關(guān)鍵字附近的日志
(1) cat -n test.log |grep "debug" 得到關(guān)鍵日志的行號
(2) cat -n test.log |tail -n +92|head -n 20 選擇關(guān)鍵字所在的中間一行. 然后查看這個關(guān)鍵字前10行和后10行的日志:
- tail -n +92表示查詢92行之后的日志
- head -n 20 則表示在前面的查詢結(jié)果里再查前20條記錄
查看日志應(yīng)用場景二:根據(jù)日期查詢?nèi)罩?/strong>
(1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特別說明:
- 上面的兩個日期必須是日志中打印出來的日志,否則無效
- 先 grep '2014-12-17 16:17:20' test.log 來確定日志中是否有該時間點(diǎn)
- 查看日志應(yīng)用場景三:日志內(nèi)容特別多,打印在屏幕上不方便查看,分頁/保存文件查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 這樣就分頁打印了,通過點(diǎn)擊空格鍵翻頁
(2)使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析
如:cat -n test.log |grep "debug" >debug.txt
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
阿里云Linux主機(jī)安裝WDCP管理面板(包含lamp+lnmp+lanmp環(huán)境)
這篇文章主要介紹了阿里云Linux主機(jī)安裝WDCP管理面板(包含lamp+lnmp+lanmp環(huán)境),需要的朋友可以參考下2017-08-08Centos8下django項(xiàng)目部署 nginx+uwsgi的教程
這篇文章主要介紹了Centos8下django項(xiàng)目部署 nginx+uwsgi的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05YUM解決RPM包安裝依賴關(guān)系及yum工具介紹本地源配置方法詳解
這篇文章主要介紹了YUM解決RPM包安裝依賴關(guān)系及yum工具介紹本地源配置方法詳解,本文給大家介紹的非常詳細(xì)具有參考借鑒價值,需要的朋友可以參考下2016-10-10linux下使用 du查看某個文件或目錄占用磁盤空間的大小方法
下面小編就為大家?guī)硪黄猯inux下使用 du查看某個文件或目錄占用磁盤空間的大小方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Ubuntu下使用python3中的venv創(chuàng)建虛擬環(huán)境
這篇文章主要介紹了Ubuntu下使用python3中的venv創(chuàng)建虛擬環(huán)境,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12Linux上查看用戶創(chuàng)建日期的幾種方法總結(jié)
在Linux系統(tǒng)中,如何找到用戶創(chuàng)建的時間呢?下面這篇文章就來給大家介紹了關(guān)于在Linux上如何查看用戶創(chuàng)建日期的幾種方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法
linux使用tcpdump命令監(jiān)視指定網(wǎng)絡(luò)數(shù)據(jù)包的方法,大家參考使用吧2013-12-12