LogstashでIPアドレスから地域情報を出力する

Logstashを利用して、IPアドレスがどこの地域のものなのか調べます。

Logstashはこちらのサイトから入手できます。
https://www.elastic.co/jp/downloads/logstash

適当なフォルダへ展開してください。
今回はこちらに配置しました。
G:\APP\logstash-7.4.0

準備するもの
・入力ファイル(CSV、Shift_JIS)
・confファイル
・batファイル

詳細

入力ファイル
サンプルのCSVファイルです。
test_sjis.csv

IP調査A,yahoo,182.22.28.252
IP調査B,www.yahoo.com,106.10.250.10
IP調査C,www.google.com.sg,172.217.25.195
IP調査D,www.microsoft.com,23.218.44.244
IP調査E,amazon.com,176.32.103.205
IP調査F,www.amazon.co.jp,13.249.144.33
confファイル
geoiptest.conf
input {
    stdin {
        codec => plain { charset => "SJIS" }
    }
}

filter {
    if [message] =~ /^\s*$/ {
        drop { }
    }

    csv {
        columns => [
            "inp1","inp2","ip"
        ]
        separator => ","
        skip_empty_columns => true
    }

    geoip {
        source => ["ip"]
    }

    if ![geoip][country_name] {
        mutate {
            add_field => { "[geoip][country_name]" => "" }
        }
    }

    if ![geoip][region_name] {
        mutate {
            add_field => { "[geoip][region_name]" => "" }
        }
    }
}

output {
#    stdout {codec => rubydebug}

    file {
        codec => line { format => "%{inp1},%{inp2},%{ip},%{[geoip][country_name]},%{[geoip][region_name]}
"}
        path => "out_utf8.csv"
    }
}

batファイル
geoiptest.bat

cd /d  "%~dp0"

call G:\APP\logstash-7.4.0\bin\logstash.bat -f geoiptest.conf --path.data data < test_sjis.csv

EXIT

実行

geoiptest.batを実行します。

out_utf8.csvが作成される。

IP調査B,www.yahoo.com,106.10.250.10,Singapore,
IP調査C,www.google.com.sg,172.217.25.195,United States,
IP調査D,www.microsoft.com,23.218.44.244,United States,
IP調査A,yahoo,182.22.28.252,Japan,Tokyo
IP調査E,amazon.com,176.32.103.205,United States,Virginia
IP調査F,www.amazon.co.jp,13.249.144.33,United States,Washington


管理人 has written 36 articles