2022년 12월 25일 일요일

Logstash 필터 csv

강의 때 텍스트, DB, EVT 등의 예제 분석 과정이 끝나면 다른 형식의 예제는 안 궁금한지 꼭 물어본다. 이때 가장 많이 궁금해하는 형식이 쉼표로 필드를 구분하는 CSV.

일단 CSV는 키바나의 파일 업로드 기능을 이용해서 간단하게 연동할 수 있다. 그런데 용량이 100MB를 넘어가면 해당 기능을 사용할 수 없음.
val1,1000,val2
val3,10000,val4

이때 가장 간단한 해결 방법은 로그스태시의 dissect 필터.

2022년 12월 15일 목요일

엘라스틱의 해시 변환 - 2nd

다음은 beat processor 중 fingerprint 사용 결과.
processors:
  - drop_fields:
      fields: ["log", "input", "ecs", "host", "agent"]
  - fingerprint:
      fields: "message"
      target_field: "hash"
      method: "md5"      
{
  "@timestamp": "2022-12-15T01:47:12.316Z",
  "@metadata": {
    "beat": "filebeat",
    "type": "_doc",
    "version": "8.5.0"

2022년 12월 7일 수요일

null과 empty - 2nd

다음은 url, param, error 필드 구조를 갖는 uri 데이터. 빈 값을 가진 param 필드가 눈에 띈다.
[2022-12-07T18:11:29,660][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
{
    "url" => "/index.html"
}
{
    "param" => "",
    "error" => "|107|80040e07|nvarchar",
      "url" => "/view.asp"
}
{
    "param" => "id=bbs",
    "error" => "-|ASP_0147|500_Server_Error",
      "url" => "/bbs.php"
}

크리에이티브 커먼즈 라이선스