logstash-input-blueliv 0.2.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/logstash/inputs/blueliv.rb +15 -24
- data/logstash-input-blueliv.gemspec +1 -1
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b09d14b8d68852d80f77673edc11b61f7a258069
|
4
|
+
data.tar.gz: b02e35ce0e731ed93d6f5f0c1cfd0ab331d02b0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c121a96e0d0ad99afe5680e78f0546b3ccf0b810bf41c2157c225e3f27b439be377dbc95dd0e55749e9e416d7fde2476f1e5543518077e8a7fb912d5afc0a17f
|
7
|
+
data.tar.gz: c5930953179f85ea3c8e1056239094536779f25f7e6f98f34e9b64f146636e152bf6bbac96ada0425f574534b9338f8b1cd33fd591a293221b058b2e6e36ac53
|
@@ -11,17 +11,16 @@ require "securerandom"
|
|
11
11
|
USER_AGENT = "Logstash v0.1.2"
|
12
12
|
API_CLIENT = "6ee37a93-d064-464b-b4c1-c37e9656273f"
|
13
13
|
|
14
|
-
ONE_DAY_IN_SECONDS = 86400
|
15
|
-
|
16
14
|
RESOURCES = {
|
17
15
|
:crimeservers => {
|
18
16
|
:items => "crimeServers",
|
19
17
|
:endpoint => "/v1/crimeserver",
|
20
18
|
:feeds => {
|
21
|
-
:
|
22
|
-
900 => "/last"
|
23
|
-
|
24
|
-
|
19
|
+
:last => {
|
20
|
+
900 => "/last"
|
21
|
+
},
|
22
|
+
:recent => {
|
23
|
+
3600 => "/recent"
|
25
24
|
},
|
26
25
|
:test => {
|
27
26
|
900 => "/test"
|
@@ -53,10 +52,9 @@ RESOURCES = {
|
|
53
52
|
|
54
53
|
DEFAULT_CONFIG = {
|
55
54
|
"crimeservers" => {
|
56
|
-
"active" =>
|
55
|
+
"active" => true,
|
57
56
|
"feed_type" => "test",
|
58
|
-
"interval" => 900
|
59
|
-
"initialize" => true
|
57
|
+
"interval" => 900
|
60
58
|
},
|
61
59
|
"botips" => {
|
62
60
|
"active" => false,
|
@@ -96,19 +94,8 @@ class LogStash::Inputs::Blueliv < LogStash::Inputs::Base
|
|
96
94
|
threads = []
|
97
95
|
@feeds.each do |name, conf|
|
98
96
|
if feeds[name]["active"]
|
99
|
-
|
100
|
-
|
101
|
-
threads << Thread.new do
|
102
|
-
url, interval = get_url(name, @feeds[name]["feed_type"], ONE_DAY_IN_SECONDS)
|
103
|
-
get_feed(queue, name, url) { write_last_update_db(DateTime.now) }
|
104
|
-
url, interval = get_url(name, @feeds[name]["feed_type"], @feeds[name]["interval"])
|
105
|
-
get_feed_each(queue, name, url, interval) { write_last_update_db(DateTime.now) }
|
106
|
-
end
|
107
|
-
end
|
108
|
-
else
|
109
|
-
url, interval = get_url(name, @feeds[name]["feed_type"], @feeds[name]["interval"])
|
110
|
-
threads << Thread.new(get_feed_each(queue, name, url, interval))
|
111
|
-
end
|
97
|
+
url, interval = get_url(name, @feeds[name]["feed_type"], @feeds[name]["interval"])
|
98
|
+
threads << Thread.new(get_feed_each(queue, name, url, interval))
|
112
99
|
end
|
113
100
|
end
|
114
101
|
|
@@ -172,6 +159,7 @@ class LogStash::Inputs::Blueliv < LogStash::Inputs::Base
|
|
172
159
|
end
|
173
160
|
|
174
161
|
def get_feed(queue, name, url, &block)
|
162
|
+
@logger.info("Start getting #{url} feed")
|
175
163
|
loop do
|
176
164
|
begin
|
177
165
|
response = client.get("#{url}?key=#{API_CLIENT}", :Authorization => @auth, :timeout => @timeout,
|
@@ -182,17 +170,20 @@ class LogStash::Inputs::Blueliv < LogStash::Inputs::Base
|
|
182
170
|
it["location"] = [it["longitude"].to_f, it["latitude"].to_f]
|
183
171
|
collection = RESOURCES[name.to_sym][:items].downcase
|
184
172
|
it["@collection"] = collection
|
185
|
-
it["
|
173
|
+
it["document_id"] = if it.has_key?("_id") then it["_id"] else SecureRandom.base64(32) end
|
174
|
+
it.delete("_id") if it.has_key?("_id")
|
175
|
+
@logger.info("#{it}")
|
186
176
|
evt = LogStash::Event.new(it)
|
187
177
|
decorate(evt)
|
188
178
|
queue << evt
|
189
179
|
end
|
180
|
+
@logger.info("End getting data from #{url}")
|
190
181
|
block.call if block
|
191
182
|
break
|
192
183
|
rescue RestClient::Exception => e
|
193
184
|
case e.http_code
|
194
185
|
when 401, 403
|
195
|
-
@logger.info("You do not have access to this resource! Please contact #{@contact}")
|
186
|
+
@logger.info("You do not have access to this resource #{url}! Please contact #{@contact}")
|
196
187
|
break
|
197
188
|
when 404
|
198
189
|
@logger.info("Resource #{url} not found")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "logstash-input-blueliv"
|
3
|
-
s.version = "0.
|
3
|
+
s.version = "1.0.0"
|
4
4
|
s.licenses = ["Apache License (2.0)"]
|
5
5
|
s.summary = "This plugin allows users to access Blueliv Crime Servers and Bot IPs feeds."
|
6
6
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install logstash-input-blueliv. This gem is not a stand-alone program"
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-blueliv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blueliv
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: logstash-core
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.4.0
|
14
20
|
requirement: !ruby/object:Gem::Requirement
|
15
21
|
requirements:
|
16
22
|
- - '>='
|
17
23
|
- !ruby/object:Gem::Version
|
18
24
|
version: 1.4.0
|
19
|
-
name: logstash-core
|
20
25
|
prerelease: false
|
21
26
|
type: :runtime
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: logstash-codec-plain
|
22
29
|
version_requirements: !ruby/object:Gem::Requirement
|
23
30
|
requirements:
|
24
31
|
- - '>='
|
25
32
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version: '0'
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
29
35
|
requirements:
|
30
36
|
- - '>='
|
31
37
|
- !ruby/object:Gem::Version
|
32
38
|
version: '0'
|
33
|
-
name: logstash-codec-plain
|
34
39
|
prerelease: false
|
35
40
|
type: :runtime
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rest-client
|
36
43
|
version_requirements: !ruby/object:Gem::Requirement
|
37
44
|
requirements:
|
38
|
-
- -
|
45
|
+
- - ~>
|
39
46
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version: 1.8.0
|
42
48
|
requirement: !ruby/object:Gem::Requirement
|
43
49
|
requirements:
|
44
50
|
- - ~>
|
45
51
|
- !ruby/object:Gem::Version
|
46
52
|
version: 1.8.0
|
47
|
-
name: rest-client
|
48
53
|
prerelease: false
|
49
54
|
type: :runtime
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: logstash-devutils
|
50
57
|
version_requirements: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
61
|
+
version: '0'
|
56
62
|
requirement: !ruby/object:Gem::Requirement
|
57
63
|
requirements:
|
58
64
|
- - '>='
|
59
65
|
- !ruby/object:Gem::Version
|
60
66
|
version: '0'
|
61
|
-
name: logstash-devutils
|
62
67
|
prerelease: false
|
63
68
|
type: :development
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
69
|
description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install logstash-input-blueliv. This gem is not a stand-alone program
|
70
70
|
email: community@blueliv.com
|
71
71
|
executables: []
|