logstash 統計告警

2022-09-02 07:03:06 字數 2394 閱讀 8413

基本配置

執行命令如下:

假設在與logstash 平級目錄新建乙個 配置檔案,sample.conf ,這個配置檔案就是定義 input filter output 這3塊,其主要表示 input的**是什麼(檔案或命令之類的),filter 代表對於輸入的內容按照規則怎麼來過濾,output 就是按照過濾的規則進行輸出 。

最簡單的寫法如下:

# bin/logstash -e '

input}output}

'

如果是在sample.conf 中寫入則如下:

input 

}filter

output

}

# bin/logstash -f sample.conf
特殊配置在實際的業務中可能往往要對日誌做過濾,然後根據某些關鍵字段進行統計,通過統計結果來決定需要做什麼。logstash 本身對於syslog,redis等日誌在過濾的時候一般不需要自己寫正規表示式去過濾,這些都是通用的,在filter中可以直接通過%來獲取日誌內容,已經自動支援的過濾的日誌包含下面這些:

這個列表不全,對於已經支援的這些可以直接到github 上進行搜尋(上面都有這些日誌過濾的正規表示式,這些是屬於通用配置。 

往往在業務日誌中,所列印的業務關鍵錯誤碼以及格式並非與通用格式相匹配,那麼此時就需要自己針對自己的業務日誌格式,寫出正規表示式來過濾自己想要的資訊。

這裡就以日誌中的errno 來為例,所實現的目的就是 當這個錯誤碼在30s內出現3次就把這個錯誤輸出出來或告警。

這裡就以下面的日誌格式為例:log.txt

begin 10001 end

begin 10001 end

begin 10001 end

在sample.conf 中,grok 是寫在filter 中的,這裡既可以直接寫正規表示式,也可以引用外部檔案的正則表達。

方式1:

grok 

}

方式2就是預先在 patterns/ 目錄下建立乙個檔案,這個檔案裡面含有正規表示式,例如建立檔案的名稱為 test ,內容如下:

errorcode \s+(?\d+?)\s+

grok "]

}:

很顯然這裡我們習慣採用方式2,因為正則匹配相關的可以單獨在乙個檔案,在sample.conf 就直接引用正則匹配中字段值,例如上面就直接用"errorcode", message 中%後面花括號中的寫法規則如下:

%
以上面完子為例,完整的 sample.conf 內容如下:

input 

}filter "]

# 刪除原來的message欄位

remove_field => [ "

message"]

# 增加warn,作為標記

add_tag => "

warn"}

# 計數

metrics

"# 增加

"metric

",作為標記

add_tag => "

metric

"# 3秒內的message資料才統計,避免延遲

# ignore_older_than => 3

# 每隔300秒統計一次

flush_interval => "30"

# 每301秒清空計數器

clear_interval => "31"

} # 如果event中標記為「metric」的

if"metric"in

[tags]

}}output

}

上面配置結束後,由於開啟 debug 模式,所以當每次往 log.txt 寫入 "begin 10001 end" 在控制台下都會有輸出,輸入內容下:

當在30s內輸入的次數大於3次的時候,輸出的內容如下:

},

"br#[

[0] "

metric"]

}

通過上面的結構可以看出我們在輸出的時候還可以寫表示式,例如只有當30s內大於3次才輸出資訊的話可以在 output 中加乙個判斷,邏輯如下:

output \""}}}

到這裡已經結束,關於logstash中的 統計相關的規則可以參考:

輸出的形式也是多種的 可以對接es,觸發http介面,這裡就以輸出為例。

Zabbix監控之每日告警統計報告

vi zabbix report.sh bin sh sword make 160518 array1 普通資訊 array2 警告資訊 array3 一般問題 array4 嚴重問題 array5 災難 set x now date s fix expr now 86400 now1 date d...

Logstash學習1 logstash的簡單例子

如何安裝elk redis外掛程式 logstash f test.conf config.test and exit 會列印出錯誤並且會自動退出 7.測試顯示ok的話。執行 logstash f first pipeline.conf config.reload.automatic 這個配置可以使...

zabbix之告警雜談 釘釘告警

一 註冊釘釘企業號,並找到傳送資訊最重要的三個引數corpid corpsecret agentid 2.檢視corpid corpsecret 在釘釘電腦版上,左下角 管理 登入管理平台 輸入管理密碼 在 企業應用 工作台設定 中可以檢視corpid和corpsecret 3.新增微應用,成功後可...