fluent-plugin-geoip 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/dockerfiles/Dockerfile-ruby2.1 +1 -1
- data/dockerfiles/Dockerfile-ruby2.2 +1 -1
- data/dockerfiles/Dockerfile-ruby2.3 +1 -1
- data/dockerfiles/Dockerfile-ruby2.4 +1 -1
- data/fluent-plugin-geoip.gemspec +1 -1
- data/lib/fluent/plugin/filter_geoip.rb +2 -1
- data/test/plugin/test_filter_geoip.rb +58 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd066ccaec269f0423567cb6b67fb2f740bd75bf
|
4
|
+
data.tar.gz: 59ceed4885348c00333ae21b859311474ed1a01e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e1c15b06c1916d28656c6607e0d31c716622a0c1436a45d15eeab7d4cea049b9a728a87af7603693305399fa98180a63b43f954298feff9a7cbfa439bccf93d
|
7
|
+
data.tar.gz: 1699358cd3e9841ba975d07853a05a5af2ead21c42469fa892f1cce9917f08baabc711905011d6547d8bd10da00616e53b437ff4adb64dd0baddb99f0276c57b
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ before use, install dependent library as:
|
|
16
16
|
|
17
17
|
```bash
|
18
18
|
# for RHEL/CentOS
|
19
|
-
$ sudo yum
|
19
|
+
$ sudo yum groupinstall "Development Tools"
|
20
20
|
$ sudo yum install geoip-devel --enablerepo=epel
|
21
21
|
$ sudo yum install libmaxminddb-devel --enablerepo=epel
|
22
22
|
|
@@ -2,7 +2,7 @@ FROM ruby:2.1-alpine
|
|
2
2
|
|
3
3
|
ENV BUNDLE_GEMFILE=$BUNDLE_GEMFILE
|
4
4
|
|
5
|
-
RUN apk --no-cache --update add build-base ruby-dev libc6-compat
|
5
|
+
RUN apk --no-cache --update add build-base automake autoconf libtool ruby-dev libc6-compat geoip-dev git
|
6
6
|
|
7
7
|
WORKDIR /app
|
8
8
|
COPY . .
|
@@ -2,7 +2,7 @@ FROM ruby:2.2-alpine
|
|
2
2
|
|
3
3
|
ENV BUNDLE_GEMFILE=$BUNDLE_GEMFILE
|
4
4
|
|
5
|
-
RUN apk --no-cache --update add build-base ruby-dev libc6-compat
|
5
|
+
RUN apk --no-cache --update add build-base automake autoconf libtool ruby-dev libc6-compat geoip-dev git
|
6
6
|
|
7
7
|
WORKDIR /app
|
8
8
|
COPY . .
|
@@ -2,7 +2,7 @@ FROM ruby:2.3-alpine
|
|
2
2
|
|
3
3
|
ENV BUNDLE_GEMFILE=$BUNDLE_GEMFILE
|
4
4
|
|
5
|
-
RUN apk --no-cache --update add build-base ruby-dev libc6-compat
|
5
|
+
RUN apk --no-cache --update add build-base automake autoconf libtool ruby-dev libc6-compat geoip-dev git
|
6
6
|
|
7
7
|
WORKDIR /app
|
8
8
|
COPY . .
|
@@ -2,7 +2,7 @@ FROM ruby:2.4-alpine
|
|
2
2
|
|
3
3
|
ENV BUNDLE_GEMFILE=$BUNDLE_GEMFILE
|
4
4
|
|
5
|
-
RUN apk --no-cache --update add build-base ruby-dev libc6-compat
|
5
|
+
RUN apk --no-cache --update add build-base automake autoconf libtool ruby-dev libc6-compat geoip-dev git
|
6
6
|
|
7
7
|
WORKDIR /app
|
8
8
|
COPY . .
|
data/fluent-plugin-geoip.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-geoip"
|
7
|
-
spec.version = "0.8.
|
7
|
+
spec.version = "0.8.2"
|
8
8
|
spec.authors = ["Kentaro Yoshida"]
|
9
9
|
spec.email = ["y.ken.studio@gmail.com"]
|
10
10
|
spec.summary = %q{Fluentd Filter plugin to add information about geographical location of IP addresses with Maxmind GeoIP databases.}
|
@@ -9,11 +9,11 @@ module Fluent
|
|
9
9
|
config_param :geoip_lookup_key, :string, :default => 'host'
|
10
10
|
config_param :skip_adding_null_record, :bool, :default => false
|
11
11
|
|
12
|
+
include Fluent::SetTagKeyMixin
|
12
13
|
config_set_default :include_tag_key, false
|
13
14
|
|
14
15
|
config_param :hostname_command, :string, :default => 'hostname'
|
15
16
|
|
16
|
-
config_param :flush_interval, :time, :default => 0
|
17
17
|
config_param :log_level, :string, :default => 'warn'
|
18
18
|
|
19
19
|
config_param :backend_library, :enum, :list => Fluent::GeoIP::BACKEND_LIBRARIES, :default => :geoip
|
@@ -27,6 +27,7 @@ module Fluent
|
|
27
27
|
new_es = MultiEventStream.new
|
28
28
|
es.each do |time, record|
|
29
29
|
begin
|
30
|
+
filter_record(tag, time, record)
|
30
31
|
filtered_record = @geoip.add_geoip_field(record)
|
31
32
|
new_es.add(time, filtered_record) if filtered_record
|
32
33
|
rescue => e
|
@@ -130,6 +130,27 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
130
130
|
end
|
131
131
|
|
132
132
|
sub_test_case "geoip2_c" do
|
133
|
+
def test_filter_with_include_tag_key
|
134
|
+
config = %[
|
135
|
+
backend_library geoip2_c
|
136
|
+
geoip_lookup_key ip.origin, ip.dest
|
137
|
+
<record>
|
138
|
+
origin_country ${country.iso_code['ip.origin']}
|
139
|
+
dest_country ${country.iso_code['ip.dest']}
|
140
|
+
</record>
|
141
|
+
include_tag_key true
|
142
|
+
]
|
143
|
+
messages = [
|
144
|
+
{'ip.origin' => '66.102.3.80', 'ip.dest' => '8.8.8.8'}
|
145
|
+
]
|
146
|
+
expected = [
|
147
|
+
{'ip.origin' => '66.102.3.80', 'ip.dest' => '8.8.8.8',
|
148
|
+
'origin_country' => 'US', 'dest_country' => 'US', 'tag' => 'test' }
|
149
|
+
]
|
150
|
+
filtered = filter(config, messages)
|
151
|
+
assert_equal(expected, filtered)
|
152
|
+
end
|
153
|
+
|
133
154
|
def test_filter_with_dot_key
|
134
155
|
config = %[
|
135
156
|
backend_library geoip2_c
|
@@ -717,6 +738,25 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
717
738
|
end
|
718
739
|
assert_equal(expected, filtered)
|
719
740
|
end
|
741
|
+
|
742
|
+
def test_filter_with_include_tag_key
|
743
|
+
config = %[
|
744
|
+
backend_library geoip2_compat
|
745
|
+
geoip_lookup_key host
|
746
|
+
enable_key_city geoip_city
|
747
|
+
include_tag_key true
|
748
|
+
]
|
749
|
+
messages = [
|
750
|
+
{'host' => '66.102.3.80', 'message' => 'valid ip'},
|
751
|
+
{'message' => 'missing field'},
|
752
|
+
]
|
753
|
+
expected = [
|
754
|
+
{'host' => '66.102.3.80', 'message' => 'valid ip', 'geoip_city' => 'Mountain View', 'tag' => 'test'},
|
755
|
+
{'message' => 'missing field', 'geoip_city' => nil, 'tag' => 'test'},
|
756
|
+
]
|
757
|
+
filtered = filter(config, messages)
|
758
|
+
assert_equal(expected, filtered)
|
759
|
+
end
|
720
760
|
end
|
721
761
|
|
722
762
|
sub_test_case "geoip legacy" do
|
@@ -1096,6 +1136,24 @@ class GeoipFilterTest < Test::Unit::TestCase
|
|
1096
1136
|
end
|
1097
1137
|
assert_equal(expected, filtered)
|
1098
1138
|
end
|
1139
|
+
|
1140
|
+
def test_filter_with_include_tag_key
|
1141
|
+
config = %[
|
1142
|
+
geoip_lookup_key host
|
1143
|
+
enable_key_city geoip_city
|
1144
|
+
include_tag_key true
|
1145
|
+
]
|
1146
|
+
messages = [
|
1147
|
+
{'host' => '66.102.3.80', 'message' => 'valid ip'},
|
1148
|
+
{'message' => 'missing field'},
|
1149
|
+
]
|
1150
|
+
expected = [
|
1151
|
+
{'host' => '66.102.3.80', 'message' => 'valid ip', 'geoip_city' => 'Mountain View', 'tag' => 'test'},
|
1152
|
+
{'message' => 'missing field', 'geoip_city' => nil, 'tag' => 'test'},
|
1153
|
+
]
|
1154
|
+
filtered = filter(config, messages)
|
1155
|
+
assert_equal(expected, filtered)
|
1156
|
+
end
|
1099
1157
|
end
|
1100
1158
|
end
|
1101
1159
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-geoip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kentaro Yoshida
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|