Kibana의 액세스 로그를 IP ​​범위에서 볼 수 있기 때문에 Elasticsearch에 IP Type 필드를 추가해 보면 좋은 느낌

액세스 로그를 Kibana에서 볼 때 특정 범위의 IP로 필터링 할 수 있다면 여러가지 편리하다는 동료의 의견을 받아 시험해 보았으므로 공유!

Elasticsearch의 필드 스키마 변경 (template)



먼저 Elasticsearch 측 템플릿에서 클라이언트 IP를 정의하는 필드에 IP 유형 추가

아래의 예로 가면 c-ip.iptype으로 IP Type의 범위 쿼리 등을 발행할 수 있다.
        "c-ip" : { "type":"multi_field",
          "fields":{
            "c-ip":{ "type":"string","index":"not_analyzed"},
            "iptype":{ "type":"ip"}
          }
        }

template를 갱신(반영은, 다음번 인덱스 작성시 ※액세스 로그이므로 일 단위로)

절차는 다음을 읽습니다.
$ curl -XPUT localhost:9200/_template/[テンプレート名] -d "`cat [json設置場所]`"
#反映を確認
$ curl -XGET "localhost:9200/_template/[テンプレート名]?pretty" 

인덱스를 일 단위로 갱신하고 있지 않거나, 즉각 반영하고 싶은 경우는 아래 참조에 직접 mapping 갱신의 API를 돌리면 할 수 있습니다.

h tp // 코비토씨. 하테나 bぉg. 코m/엔트리/2014/12/23/103746

실제로 범위 쿼리로 Kibana에서 시각화 해보십시오.



IP Type의 범위 쿼리는 Kibana라고 아래 형식으로 사용할 수 있었다 (date와 동일)
c-ip.iptype:[開始IP TO 終了IP]

적당한 시험 환경에서, 레인지 쿼리와 실제의 클라이언트 IP 마다의 액세스량의 term의 집계치가 맞는지를 확인했다↓



특정 ISP로부터 부정 액세스 왔을 때 어느 페이지 보고 있든지, 어느 정도 IP로 좁힐 수 있는 곳으로부터 무언가 되고 있는 것을 검지하고 싶을 때에, 클라이언트 IP에 레인지 쿼리 사용할 수 있으면 편리해!

좋은 웹페이지 즐겨찾기