linux使用shell指令碼對多機器日誌監控

2021-09-26 16:03:03 字數 1602 閱讀 8006

遇到的難題

日誌分散在三颱伺服器,每次報錯檢視日誌都需要一台一台找,非常麻煩,所以第一反應就是有沒有比較好的日誌系統可以一次性檢視所有的日誌,後來發現都需要搭建,或者安裝,或者配置相關服務,所以想了一些簡單的監控多機日誌的方案。

定義設三颱機器為 c1, c2, c3(c1同時為跳板機)

嘗試方案一

### 配置簡單的alias指令碼,讓本機可以快速tail到檔案。

### 原理:監控跳板機的log+通過跳板機監控

### 配置alias的方法,vim ~/.bashrc下加入如下**,記得修改目錄和ip

log1='ssh root@*** "tail -f ~/log/sys.log* |ccze -a"'

log2='ssh root@*** "ssh [email protected] \"tail -f ~/log/sys.log* |ccze -a\""'

log3='ssh root@*** "ssh [email protected] \"tail -f ~/log/sys.log* |ccze -a\""'

嘗試方案二

考慮到這樣做,每次都需要分屏+輸入多個alias別名才能啟動,啟動太慢,有沒有快速啟動的方案?

想到是否可以利用ansible做多機器日誌監控,我們是否可以用ansible對日誌檔案不斷地拿末尾20行並且顯示,這是肯定可以的,但是如果程式沒有列印日誌,那豈不是ansible一直再取日誌,重新整理日誌。後來想了下,嘗試利用linux時間跟日誌時間做對比,取當前日誌時間的那些行出來,這樣就可以了。

我這裡用welog 1監控exception日誌,welog 2監控sys日誌。

# ansible 配置檔案 -> /etc/ansible/hosts

linux各種shell特色指令碼使用

目錄 1 gdb斷點資訊收集自動化 2 objdump檢視過大可執行檔案上的指定函式彙編 3 定製 linux 協議棧引數 修改 etc sysctl.conf 鑑於在故障現場使用gdb跟蹤,設定斷點,列印斷點處資訊存在一定的時間差,且有造成單板重啟或影響業務等問題,採用指令碼實現自動化操作。指令碼...

使用shell指令碼監控Linux主機

root localhost cat sysmon.sh bin bash dug df h g rep df h grep df h grep awk awk f at position 2 1 cug expr 100 mpstat tail 1 awk awk f.at position 2 ...

使用 shell 指令碼監控 Linux 主機

編寫以下指令碼命令 root localhost sh vim sysmon.sh bin bash 提取效能監控指標 磁碟占用 cpu使用 記憶體使用 dug df h grep awk awk f cug expr 100 mpstat tail 1 awk awk f.mug expr fre...