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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 793b60b98e80ea983169dec24aaf13725d3dfa93e0f73c05c49a325a9a8103ab
4
- data.tar.gz: 976bc5154d1b1a93047f75aaa2bcd933844bb604e07e53619d9d6dc97b8cf471
3
+ metadata.gz: 2bc041b693f90f1f23d310693316e2b701b0e50f2d1bd25a14c19262276a8fd4
4
+ data.tar.gz: ceedc1c200a01e263376648f13b76e61e206abbb6e1bd64b68f857daa0467731
5
5
  SHA512:
6
- metadata.gz: daeb3dbc21f3bce7b804eeb060475285bdfcb103860d84c2845c12e18da7ff80b423e6859013dca7c25b2e49fae3329275b00b109c54d02476e29a06431bdc51
7
- data.tar.gz: '08c092e9e4552c8f2177bfab4496157ba9f6088adaba318f7766f4fbeb23e7baa5ce616378efe25591e8fbefc3b5f3843b38848b7654a7838229e6c3045140aa'
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/AbcSize, Metrics/ClassLength, Metrics/MethodLength
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
- parser = ProcFS::Parser::NetTcpParser.new
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
- socket.to_h
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.0
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.1'
260
+ version: '0.2'
261
261
  - - ">="
262
262
  - !ruby/object:Gem::Version
263
- version: 0.1.1
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.1'
270
+ version: '0.2'
271
271
  - - ">="
272
272
  - !ruby/object:Gem::Version
273
- version: 0.1.1
273
+ version: 0.2.2
274
274
  email:
275
275
  - thomas.tych@gmail.com
276
276
  executables: []