logstash-input-blueliv 0.2.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|