fluent-plugin-syscheck 0.3.0 → 0.3.2
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/.rubocop.yml +14 -0
- data/lib/fluent/plugin/in_syscheck_mounts.rb +1 -1
- data/lib/fluent/plugin/in_syscheck_sockets.rb +33 -3
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2bc041b693f90f1f23d310693316e2b701b0e50f2d1bd25a14c19262276a8fd4
|
|
4
|
+
data.tar.gz: ceedc1c200a01e263376648f13b76e61e206abbb6e1bd64b68f857daa0467731
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d4dfaca6197db517be8144fb82e2d2a3acbf35b09ffacda6b407d33eff852f005d81fc535e0e3f2b19176c2681bdc68549fa33cb795c7cf5e2a27d022316c443
|
|
7
|
+
data.tar.gz: 75bf00cfaf0083a6ae528067f85e1dc7e16109a25aea28c75c609d841cbf98259d7b06b03e270aa8f44f77d46750d292191f8a3451e7a2bb7b9b7a0af78d47c7
|
data/.rubocop.yml
CHANGED
|
@@ -10,6 +10,14 @@ AllCops:
|
|
|
10
10
|
Gemspec/DevelopmentDependencies:
|
|
11
11
|
EnforcedStyle: gemspec
|
|
12
12
|
|
|
13
|
+
Layout/LineLength:
|
|
14
|
+
Max: 120
|
|
15
|
+
|
|
16
|
+
Metrics/AbcSize:
|
|
17
|
+
Max: 25
|
|
18
|
+
Exclude:
|
|
19
|
+
- 'test/**/test*.rb'
|
|
20
|
+
|
|
13
21
|
Metrics/BlockLength:
|
|
14
22
|
Exclude:
|
|
15
23
|
- fluent-plugin-syscheck.gemspec
|
|
@@ -19,6 +27,12 @@ Metrics/ClassLength:
|
|
|
19
27
|
Exclude:
|
|
20
28
|
- test/**/*.rb
|
|
21
29
|
|
|
30
|
+
Metrics/MethodLength:
|
|
31
|
+
Max: 20
|
|
32
|
+
|
|
33
|
+
Metrics/ParameterLists:
|
|
34
|
+
Max: 12
|
|
35
|
+
|
|
22
36
|
Style/Documentation:
|
|
23
37
|
Enabled: false
|
|
24
38
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
require 'fluent/plugin/input'
|
|
19
19
|
|
|
20
|
-
# rubocop:disable-next Metrics/
|
|
20
|
+
# rubocop:disable-next Metrics/ClassLength, Metrics/MethodLength
|
|
21
21
|
module Fluent
|
|
22
22
|
module Plugin
|
|
23
23
|
class SyscheckMountsInput < Fluent::Plugin::Input
|
|
@@ -58,32 +58,62 @@ module Fluent
|
|
|
58
58
|
|
|
59
59
|
def run_check
|
|
60
60
|
run_check_tcp4
|
|
61
|
+
run_check_tcp6
|
|
62
|
+
rescue StandardError => e
|
|
63
|
+
log.error "#{NAME}: error during check: #{e}"
|
|
61
64
|
end
|
|
62
65
|
|
|
63
66
|
def run_check_tcp4
|
|
64
67
|
tcp4_content = read_file_content('/proc/net/tcp')
|
|
65
|
-
|
|
68
|
+
return if tcp4_content.nil?
|
|
69
|
+
|
|
70
|
+
parser = ProcFS::Parser::NetTcpParser.ipv4
|
|
66
71
|
tcp4_info = parser.parse(tcp4_content)
|
|
67
72
|
|
|
68
73
|
emit_list_sockets(tcp4_info) if list_sockets
|
|
69
74
|
end
|
|
70
75
|
|
|
76
|
+
def run_check_tcp6
|
|
77
|
+
tcp6_content = read_file_content('/proc/net/tcp6')
|
|
78
|
+
return if tcp6_content.nil?
|
|
79
|
+
|
|
80
|
+
parser = ProcFS::Parser::NetTcpParser.ipv6
|
|
81
|
+
tcp6_info = parser.parse(tcp6_content)
|
|
82
|
+
|
|
83
|
+
emit_list_sockets(tcp6_info) if list_sockets
|
|
84
|
+
end
|
|
85
|
+
|
|
71
86
|
def emit_list_sockets(sockets)
|
|
72
87
|
log.debug "#{NAME}: emit list_sockets"
|
|
73
88
|
|
|
74
89
|
event_time = Fluent::EventTime.from_time(sockets.timestamp)
|
|
75
90
|
sockets.each do |socket|
|
|
91
|
+
socket_event = sanitize_record(socket.to_h)
|
|
76
92
|
router.emit(
|
|
77
93
|
tag,
|
|
78
94
|
event_time,
|
|
79
|
-
|
|
80
|
-
.merge('timestamp' => sockets.timestamp.iso8601(3))
|
|
95
|
+
socket_event
|
|
81
96
|
)
|
|
82
97
|
end
|
|
83
98
|
end
|
|
84
99
|
|
|
85
100
|
private
|
|
86
101
|
|
|
102
|
+
def sanitize_record(record)
|
|
103
|
+
case record
|
|
104
|
+
when Hash
|
|
105
|
+
record.each_with_object({}) do |(k, v), new_hash|
|
|
106
|
+
new_hash[k.to_s] = sanitize_record(v)
|
|
107
|
+
end
|
|
108
|
+
when Array
|
|
109
|
+
record.map { |v| sanitize_record(v) }
|
|
110
|
+
when String, Integer, Float, TrueClass, FalseClass, NilClass
|
|
111
|
+
record
|
|
112
|
+
else
|
|
113
|
+
record.to_s
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
87
117
|
def read_file_content(path)
|
|
88
118
|
File.read(path)
|
|
89
119
|
rescue Errno::ENOENT => e
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fluent-plugin-syscheck
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Tych
|
|
@@ -257,20 +257,20 @@ dependencies:
|
|
|
257
257
|
requirements:
|
|
258
258
|
- - "~>"
|
|
259
259
|
- !ruby/object:Gem::Version
|
|
260
|
-
version: '0.
|
|
260
|
+
version: '0.2'
|
|
261
261
|
- - ">="
|
|
262
262
|
- !ruby/object:Gem::Version
|
|
263
|
-
version: 0.
|
|
263
|
+
version: 0.2.2
|
|
264
264
|
type: :runtime
|
|
265
265
|
prerelease: false
|
|
266
266
|
version_requirements: !ruby/object:Gem::Requirement
|
|
267
267
|
requirements:
|
|
268
268
|
- - "~>"
|
|
269
269
|
- !ruby/object:Gem::Version
|
|
270
|
-
version: '0.
|
|
270
|
+
version: '0.2'
|
|
271
271
|
- - ">="
|
|
272
272
|
- !ruby/object:Gem::Version
|
|
273
|
-
version: 0.
|
|
273
|
+
version: 0.2.2
|
|
274
274
|
email:
|
|
275
275
|
- thomas.tych@gmail.com
|
|
276
276
|
executables: []
|