Performance Setting in Windows Memory High Problem

此行config有重大影響,這個關了還有問題再往下看: filebeat.publish_async: false (註解掉或不要開)

之前有遇過filebeat memory 越來越高的問題

如圖片 開啟大約12HR後會到1.7GB 他會越來越高 到會造成系統問題

觀看了文件後

https://www.elastic.co/guide/en/beats/filebeat/5.3/configuration-global-options.html

有幾個設定預設是這樣

scan_frequency 預設是十秒

filebeat.spool_size: 2048

假設問題是 你的LOG量 十秒內 超過2048 他就會Cache 在你的記憶體內,接下來都無法釋放

所以如果 Log 量 十秒內3000筆 他就會讓記憶體卡住出不去

解決方法

filebeat.spool_size: 4096

單獨設定這個就有效果 他有提示說設定這個會造成記憶體升高但是實際上沒有差異 總比你讓記憶體到幾GB好

還有

設定load balance 假設你logstash server 有兩台

結果 實際上開啟12HR 後還是沒有變多多少

實際比較後 發現LOG量並沒有跟設定的差太多,但是記憶體的問題已經被解決

Performance Setting in Mutiline

發現 Mutiline不能混用 只能挑選下面一種修改 不然會有檔案跟內容錯誤的問題

Input log with Mutiline

  • Mutipleline in logstash input

優點:統一input 可以開mutithread
缺點:如果量很大可能會影響logstash cpu 用量 ,input 從filebeat 來還是需要一行一行合併 可能會造成效能問題

  input {
     beats {
        port => 5044
        codec => multiline {
        pattern => "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}[\.,][0-9]{3,7} "
        negate => true
        what => "previous"
        }
        congestion_threshold  => 40
       }
    }
  • Mutipleline in logstash filter

優點:分開設定在filter 內
缺點:如果量很大可能會影響logstash cpu 用量,不能開mutithread ,變成一定要一行一行進去才能收集 是最不好的方法    

    filter {
        if  [@metadata][beat] =~ "188bet"   {
              multiline {
               pattern => "^%{TIMESTAMP_ISO8601}"
               negate => true
               what => "previous"
            }
      }
    }
  • Mutipleline in filebeat

優點: 各自由filebeat 送log 到 logstash , 減少logstash cpu
缺點:可能會影響原本server cpu,mem

下列設定是by各個要撈的檔案 

    - input_type: log
      paths:
        - D:\AgileBet\Logs\MobileApp\*-ERROR.log
      document_type: apperror      
      multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} '
      multiline.negate: true
      multiline.match: after

Performance Compare note.

Server : 18 (other team have total 20 or more)

using Mutipleline in logstash input

30 scends : 2000~4000 ,lost 90%
we have 3 team to deploy the 4 logstash server with 2 es server.

Server filebeat have 300 mem, seems stock in server side

using Mutipleline in filebeat

30 scends : 30000

Server filebeat have 20 mem, s

results matching ""

    No results matching ""