點(diǎn)擊訪問(wèn)原文
您還可以加入全棧技術(shù)交流群(QQ群號(hào):254842154)
服務(wù)器日志查看师崎,是開(kāi)發(fā)人員和服務(wù)器運(yùn)維人員在工作中經(jīng)常會(huì)遇到的一件事情默终,只有一臺(tái)服務(wù)器時(shí),比較好辦犁罩,直接登錄服務(wù)器使用tail -f file-path
命令就可以實(shí)時(shí)查看到日志文件的輸出齐蔽。當(dāng)有負(fù)載的需要,服務(wù)器多了之后床估,就會(huì)比較麻煩含滴,為了查找一個(gè)問(wèn)題的日志可能需要登錄多臺(tái)服務(wù)器。今天給大家介紹一種借助sshfs丐巫,非常簡(jiǎn)單的日志文件掛載方案谈况,可以方便大家查看服務(wù)器日志文件。
sshfs介紹
sshfs是基于fuse構(gòu)建的ssh文件系統(tǒng)客戶端程序递胧,通過(guò)它遠(yuǎn)程主機(jī)的配置無(wú)需作任何改變碑韵,就可以透過(guò)SSH協(xié)議來(lái)掛載遠(yuǎn)程文件系統(tǒng)了,非常方便及安全缎脾。
sshfs的安裝祝闻,在centOS中的安裝命令如下:
yum -y install sshfs
掛載
sshfs的遠(yuǎn)程文件掛載,需要結(jié)合ssh免密碼登錄一起實(shí)施遗菠。假設(shè)現(xiàn)在有A联喘、B华蜒、C三臺(tái)服務(wù)器的日志,需要掛載到D服務(wù)器豁遭。首先需要將D服務(wù)器的公鑰寫(xiě)入A叭喜、B、C三臺(tái)服務(wù)器蓖谢。配置方法參見(jiàn)我之前的文章捂蕴。
把遠(yuǎn)程服務(wù)器的 /mydata/logs/
目錄下的所有文件,掛載到D服務(wù)器闪幽,在D服務(wù)器的/mydata/logs/
目錄下為每個(gè)服務(wù)器建一個(gè)目錄启绰。(ip_address_A代表A服務(wù)器的ip地址,需要自行替換)
//把A服務(wù)器的 /mydata/logs/ 目錄 掛載到 D服務(wù)器的 /mydata/logs/A/ 目錄
sshfs root@ip_address_A:/mydata/logs/ /mydata/logs/A/
其他兩臺(tái)服務(wù)器的掛載方法一樣沟使。掛載成功后,可以使用 mount命令查看掛載情況:
mount -l
可以看到掛載的情況:
root@ip_address_A:/mydata/logs/on /mydata/logs/A type fuse.sshfs (rw,nosuid,nodev)
root@ip_address_B:/mydata/logs/on /mydata/logs/B type fuse.sshfs (rw,nosuid,nodev)
root@ip_address_C:/mydata/logs/on /mydata/logs/C type fuse.sshfs (rw,nosuid,nodev)
也可以使用df -h
命令查看磁盤的掛載情況渊跋。另外腊嗡,想要開(kāi)機(jī)自動(dòng)掛載目錄,可以編輯/etc/fstab
文件拾酝,加入以下幾行:
sshfs#root@ip_address_A:/mydata/logs/ /mydata/logs/A fuse defaults,auto,allow_other 0 0
sshfs#root@ip_address_B:/mydata/logs/ /mydata/logs/B fuse defaults,auto,allow_other 0 0
sshfs#root@ip_address_C:/mydata/logs/ /mydata/logs/C fuse defaults,auto,allow_other 0 0
其中燕少,allow_other
參數(shù)代表該設(shè)置對(duì)其他用戶也生效。也必須先把ssh自動(dòng)登錄配置好了蒿囤,讓root用戶能夠使用root身份登錄遠(yuǎn)程主機(jī)客们。配置方法參見(jiàn)我之前的文章。
掛載成功后材诽,就可以在服務(wù)器D直接查看所有服務(wù)器的日志了底挫,在D服務(wù)器的/mydata/logs/
目錄輸入以下命令。(假設(shè)A脸侥、B建邓、C三臺(tái)服務(wù)器的/mydata/logs/
目錄下都有l(wèi)og.txt這個(gè)文件)
tail -f */log.txt
日志的輸出中,會(huì)標(biāo)出日志是在哪臺(tái)服務(wù)器的睁枕,例如:
==> A/log.txt <==
get log message from A
假如只想查看日志中包含關(guān)鍵字 a b c
的日志官边,可以這樣查看
tail -f */log.txt | grep 'a b c'
日志的輸出會(huì)有一定的延時(shí)。
需要注意的是外遇,取消掛載時(shí)注簿,不要直接刪除掛載目錄,請(qǐng)使用以下命令取消掛載:
fusermount -u /mydata/logs/A
或者直接使用umount
命令取消掛載跳仿。