天天看點

關于” 記一次logback傳輸日志到logstash根據自定義設定動态建立ElasticSearch索引” 這篇部落格相關的優化采坑記錄

之前寫過一篇部落格是關于記錄日志的簡單方式的   主要就是  應用->redis->logstash->elasticsearch 整個流程的配置方法和過程的

https://www.cnblogs.com/zhyg/p/6994314.html

記一次logback傳輸日志到logstash根據自定義設定動态建立ElasticSearch索引

雖然我們部分線上應用使用 redis單節點 logstash 也是使用單節點基本穩定流暢并且幾乎不丢日志(單節點問題就不說了肯定有單點故障之後在分析)

上面的兩個單節點 一天承受1-3億條日志是沒有問題的前提是并發量不要太大

可是 可是  tmd我今天就遇到了

主要分享一下解決方案

本方案同樣是兩個單節點

先說下今天發生的北京情況

我們的業務服務有些擠壓這個時候我們把處理節點線程加多 來處理更大的量可怕的是記錄日志的并發量也随之加大導緻單節點redis承受不了

我最先想到的方案是重新開機删除aof日志 讓redis不在加載日志話存日志節省記憶體空間,但是試了幾次之後不行 并發量導緻寫日志實在太大一會又受不了

然後在想就是 限制記憶體 但是同樣不能滿足 因為redis 向下傳輸的時候如果下遊不能接受 會緩存到aof日志裡面同樣會吃滿記憶體加載aof日志的

随後就限制記憶體取消redis寫aof日志然後重新開機redis ,這樣果然可以 沒問題雖然有可能丢失一些日志但是日志我是允許一部分丢失的

優化後的redis占用記憶體明顯下降

關于” 記一次logback傳輸日志到logstash根據自定義設定動态建立ElasticSearch索引” 這篇部落格相關的優化采坑記錄

之前記憶體可是沾滿伺服器的記憶體的 (redis我是用docker部署的)

但是随之而來的是另外一個問題

雖然吧redis壓力降下來了但是 logstash壓力上來了

logstash直接給我報記憶體溢出

關于” 記一次logback傳輸日志到logstash根據自定義設定動态建立ElasticSearch索引” 這篇部落格相關的優化采坑記錄

我去 我一看 logstash才給了1G記憶體  

沒辦法 調整一下logstash記憶體

關于” 記一次logback傳輸日志到logstash根據自定義設定動态建立ElasticSearch索引” 這篇部落格相關的優化采坑記錄

 調整 jvm.options 檔案記憶體為2g

現在運作平穩 非常快

但是出問題就會丢些相關日志

希望大家出現類似現象有相關的處理思路