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
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