2022년 9월 4일 일요일

ingest pipeline - 3rd

로그스태시 fingerprint 필터를 사용할 때 MURMUR3 해시 함수를 선택하면 숫자 해시값을 구할 수 있다.
input {
 file {
  path => "D:/test.log"
  start_position => "beginning"
  sincedb_path => "nul"
 }
}

filter {
 fingerprint {
method => "MURMUR3"
}
}

output {
 stdout {}
}
[2022-09-04T13:50:20,120][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
{
           "log" => {
        "file" => {
            "path" => "D:/test.log"
        }
    },
      "@version" => "1",
          "host" => {
        "name" => "MHKANG"
    },
    "@timestamp" => 2022-09-04T04:50:20.145096200Z,
       "message" => "abc\r",
         "event" => {
            "hash" => 962264649,
        "original" => "abc\r"
    }
}

인제스트 노드의 fingerprint 프로세서도 이름이 비슷한 MurmurHash3 해시 함수를 지원한다. 당연히 결과가 같을 거라 생각함. 
POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "fingerprint": {
          "fields": ["message"],
          "method": "MurmurHash3"
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "message": "abc"
      }
    }
  ]
}
{
  "docs": [
    {
      "doc": {
        "_index": "_index",
        "_id": "_id",
        "_version": "-3",
        "_source": {
          "message": "abc",
          "fingerprint": "fLPgJ47SvqixVKJpLWJP8Q=="
        },
        "_ingest": {
          "timestamp": "2022-09-04T04:51:43.3429747Z"
        }
      }
    }
  ]
}

아 속았네.

22.12.09
POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "script": {
          "lang": "painless",
          "source": """
            def str = ctx['message'];
            ctx['hash_num'] = str.hashCode();
          """
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "message": "abc"
      }
    }
  ]
}
{
  "docs": [
    {
      "doc": {
        "_index": "_index",
        "_id": "_id",
        "_version": "-3",
        "_source": {
          "message": "abc",
          "hash_num": 96354
        },
        "_ingest": {
          "timestamp": "2022-12-09T08:38:37.0623524Z"
        }
      }
    }
  ]
}

이게 맞나?

관련 글

댓글 없음:

댓글 쓰기

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