Sobes.tech
Middle

როგორია თქვენი გამოცდილება ELK-ისთვის grok ფაილების დაწერაში?

sobes.tech AI

პასუხი AI-სგან

ELK stackтин ичинде логдордун ар кандай форматтарын талдоо үчүн Grok үлгүлөрүн жазуу боюнча тажрыйбам бар. Мен төмөнкүлөр менен иштедим:

  1. Стандарттык үлгүлөр: Apache, Syslog жана башка жалпы лог форматтары үчүн алдын ала аныкталган үлгүлөрдү колдонуп келем.
    %{COMBINEDAPACHELOG}  
    
  2. Косулган үлгүлөр: Стандарттык жана өзгөчөлөнгөн үлгүлөрдү бириктирдим.
    %{SYSLOGBASE} %{DATA:message}  
    
  3. Өзгөчөлөнгөн үлгүлөр: Стандарттык үлгүлөр менен камтылбаган лог форматтары үчүн өзүмдүн өзгөчө регулятордук билдирүүлөрүмдү иштеп чыктым. Алардын сынактарын Grok Debugger аркылуу өткөрдүм.
    (?<field_name>\[?\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:,\d{3})?])  
    
  4. Шарттуу талдоо: Grok'та шарттуу операторлорду колдонуп, ар кандай форматтагы логдорду бир кирүүдө иштеттим.
    if [type] == "apache" {  
      grok {  
        match => { "message" => "%{COMBINEDAPACHELOG}" }  
      }  
    } else if [type] == "syslog" {  
      grok {  
        match => { "message" => "%{SYSLOGBASE} %{GREEDYDATA:logmessage}" }  
      }  
    }  
    
  5. Ката кетирүүнү иштетүү: tag_on_failure колдонуп, талдоо мүмкүн эмес болгон окуяларды белгиледим, бул жөндөөлөр жана көйгөйлүү логдорду аныктоо үчүн жардам берди.
    grok {  
      match => { "message" => "%{MYCUSTOMLOGFORMAT}" }  
      tag_on_failure => ["_grokparsefailure_mycustom"]  
    }