監控 moniter
阿新 • • 發佈:2018-12-14
監控日誌,之前介紹過一個第三方工具,pgbadger。非常的好用。
這次介紹其他的方法。1. 通過ELK監控日誌。2. 藉助filebeats,kafka,自己編寫的監控指令碼。
通過ELK監控日誌
說是監控日誌,其實ELK主要的功能是對檔案進行收集和統計。比如某個資料庫的錯,在一段時間出現的次數。
1. 首先搭建kafka,logstash,kibana,ElasticSearch服務。
此處省略。
2. 在每個資料庫伺服器中,配置filebeats讀取pg_log,併發送至kafka。
3. logstash作為kafka的消費者,讀取PGLOG日誌,並將日誌格式化。將格式化好的資料插入到elasticsearch。
4. 將kibana配置好,展示es中的內容。
這時,我們可以通過kibana,展示所有伺服器的pg log。延遲基本可以控制在1分鐘(這要看硬體配置和壓力大小)。我們30臺伺服器,平均每分鐘資料庫產生一萬行日誌。延遲基本可以保持在3--5秒內。
對日誌的監控。
因為ELK是對日誌的收集和統計,我自己藉助了kafka中的日誌訊息用python寫了一個對日誌的監控,當日單條錯誤大於20次時(只是針對於目前環境,針對於應用長時間報錯),傳送郵件告警。
1. 從kafka中讀取日誌。
2. 將日誌做匹配,只過濾出錯誤日誌。
3. 將錯誤日誌記錄到資料庫。
4. 當有錯誤日誌的時候,計算當日的錯誤數量,並記錄到統計表中。
5. 當日單個錯誤數量超過20個時,傳送告警。
6. 第二天將前日的錯誤日誌記錄通過cron job挪到 歷史表中。並清空前日記錄。
有興趣的朋友,可以通過github檢視程式碼。