fluent-diagtool 1.0.1 → 1.0.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/lib/fluent/diagtool/collectutils.rb +20 -10
- data/lib/fluent/diagtool/diagutils.rb +33 -22
- data/lib/fluent/diagtool/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44527fe77df5bcf3b4888b5a697f796460a69e3873561c88b278e318f5c83cd8
|
4
|
+
data.tar.gz: 6052777c8a6930f4dde4bc1fa40bd3a62eba4541253488d419f21f02ab11568a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d03c3277e64b402db14aaa6f530c02ceb640ff57b53e170fc2633e63d23a53b4b8f604a292b4a958e74035ccb6dac4f02b782ee58e1ea579e916cf3ba050012
|
7
|
+
data.tar.gz: b2d8da326cab4181b391758e9e7fa7cfb8682580726b0921afcc08a6fc8788db818bd325c8a24dcc8ee83975d69d058f306bc8d852b8417a2a4d9f3341e38fd0
|
@@ -36,7 +36,9 @@ module Diagtool
|
|
36
36
|
'FLUENT_CONF' => '',
|
37
37
|
'TD_AGENT_LOG_FILE' => ''
|
38
38
|
}
|
39
|
-
|
39
|
+
@package_name = conf[:package_name]
|
40
|
+
@service_name = conf[:service_name]
|
41
|
+
|
40
42
|
case @type
|
41
43
|
when 'fluentd'
|
42
44
|
_find_fluentd_info()
|
@@ -52,7 +54,7 @@ module Diagtool
|
|
52
54
|
@tdconf = @tdenv['FLUENT_CONF'].split('/')[-1]
|
53
55
|
@tdconf_path = @tdenv['FLUENT_CONF'].gsub(@tdconf,'')
|
54
56
|
else
|
55
|
-
raise "The path of
|
57
|
+
raise "The path of #{@package_name} configuration file need to be specified." if conf[:precheck] == false
|
56
58
|
end
|
57
59
|
end
|
58
60
|
if not conf[:tdlog].empty?
|
@@ -62,10 +64,13 @@ module Diagtool
|
|
62
64
|
if not @tdenv['TD_AGENT_LOG_FILE'].empty?
|
63
65
|
@tdlog = @tdenv['TD_AGENT_LOG_FILE'].split('/')[-1]
|
64
66
|
@tdlog_path = @tdenv['TD_AGENT_LOG_FILE'].gsub(@tdlog,'')
|
67
|
+
elsif not @tdenv['FLUENT_PACKAGE_LOG_FILE'].empty?
|
68
|
+
@tdlog = @tdenv['FLUENT_PACKAGE_LOG_FILE'].split('/')[-1]
|
69
|
+
@tdlog_path = @tdenv['FLUENT_PACKAGE_LOG_FILE'].gsub(@tdlog,'')
|
65
70
|
else
|
66
71
|
case @type
|
67
72
|
when 'fluentd'
|
68
|
-
raise "The path of
|
73
|
+
raise "The path of #{@package_name} log file need to be specified." if conf[:precheck] == false
|
69
74
|
when 'fluentbit'
|
70
75
|
@logger.warn("FluentBit logs are redirected to the standard output interface ")
|
71
76
|
end
|
@@ -81,10 +86,10 @@ module Diagtool
|
|
81
86
|
@logger.info("Loading the environment parameters...")
|
82
87
|
@logger.info(" operating system = #{@osenv['Operating System']}")
|
83
88
|
@logger.info(" kernel version = #{@osenv['Kernel']}")
|
84
|
-
@logger.info("
|
85
|
-
@logger.info("
|
86
|
-
@logger.info("
|
87
|
-
@logger.info("
|
89
|
+
@logger.info(" #{@package_name} conf path = #{@tdconf_path}")
|
90
|
+
@logger.info(" #{@package_name} conf file = #{@tdconf}")
|
91
|
+
@logger.info(" #{@package_name} log path = #{@tdlog_path}")
|
92
|
+
@logger.info(" #{@package_name} log = #{@tdlog}")
|
88
93
|
end
|
89
94
|
|
90
95
|
def _find_os_info()
|
@@ -104,7 +109,7 @@ module Diagtool
|
|
104
109
|
|
105
110
|
def _find_fluentd_info()
|
106
111
|
### check if the td-agent is run as daemon
|
107
|
-
stdout, stderr, status = Open3.capture3(
|
112
|
+
stdout, stderr, status = Open3.capture3("systemctl cat #{@service_name}")
|
108
113
|
if status.success?
|
109
114
|
if @precheck == false # SKip if precheck is true
|
110
115
|
File.open(@outdir+'/td-agent_env.output', 'w') do |f|
|
@@ -365,7 +370,7 @@ module Diagtool
|
|
365
370
|
FileUtils.cp(@oslog_path+@syslog, target_dir)
|
366
371
|
return target_dir+@syslog
|
367
372
|
else
|
368
|
-
@logger.warn("Can not find OS log file in #{oslog} or #{syslog}")
|
373
|
+
@logger.warn("Can not find OS log file in #{@oslog} or #{@syslog}")
|
369
374
|
end
|
370
375
|
end
|
371
376
|
|
@@ -400,7 +405,12 @@ module Diagtool
|
|
400
405
|
|
401
406
|
def collect_tdgems()
|
402
407
|
output = @outdir+'/tdgem_list.output'
|
403
|
-
|
408
|
+
command = if @package_name == "fluent-package"
|
409
|
+
"fluent-gem"
|
410
|
+
else
|
411
|
+
"td-agent-gem"
|
412
|
+
end
|
413
|
+
stdout, stderr, status = Open3.capture3("#{command} list | grep fluent")
|
404
414
|
File.open(output, 'w') do |f|
|
405
415
|
f.puts(stdout)
|
406
416
|
end
|
@@ -33,6 +33,13 @@ module Diagtool
|
|
33
33
|
"netstat -plan",
|
34
34
|
"netstat -s",
|
35
35
|
]
|
36
|
+
if fluent_package?
|
37
|
+
@conf[:package_name] = "fluent-package"
|
38
|
+
@conf[:service_name] = "fluentd"
|
39
|
+
else
|
40
|
+
@conf[:package_name] = "td-agent"
|
41
|
+
@conf[:service_name] = "td-agent"
|
42
|
+
end
|
36
43
|
end
|
37
44
|
|
38
45
|
def run_precheck()
|
@@ -46,16 +53,16 @@ module Diagtool
|
|
46
53
|
prechecklog.info("[Precheck] Check OS parameters...")
|
47
54
|
prechecklog.info("[Precheck] operating system = #{c_env[:os]}")
|
48
55
|
prechecklog.info("[Precheck] kernel version = #{c_env[:kernel]}")
|
49
|
-
prechecklog.info("[Precheck] Check
|
50
|
-
prechecklog.info("[Precheck]
|
51
|
-
prechecklog.info("[Precheck]
|
52
|
-
prechecklog.info("[Precheck]
|
53
|
-
prechecklog.info("[Precheck]
|
56
|
+
prechecklog.info("[Precheck] Check #{@conf[:package_name]} parameters...")
|
57
|
+
prechecklog.info("[Precheck] #{@conf[:package_name]} conf path = #{c_env[:tdconf_path]}")
|
58
|
+
prechecklog.info("[Precheck] #{@conf[:package_name]} conf file = #{c_env[:tdconf]}")
|
59
|
+
prechecklog.info("[Precheck] #{@conf[:package_name]} log path = #{c_env[:tdlog_path]}")
|
60
|
+
prechecklog.info("[Precheck] #{@conf[:package_name]} log = #{c_env[:tdlog]}")
|
54
61
|
if c_env[:tdconf_path] == nil || c_env[:tdconf] == nil
|
55
|
-
prechecklog.warn("[Precheck] can not find
|
62
|
+
prechecklog.warn("[Precheck] can not find #{@conf[:package_name]} conf path: please run diagtool command with -c /path/to/<#{@conf[:package_name]} conf file>")
|
56
63
|
end
|
57
64
|
if c_env[:tdlog_path] == nil || c_env[:tdlog] == nil
|
58
|
-
prechecklog.warn("[Precheck] can not find
|
65
|
+
prechecklog.warn("[Precheck] can not find #{@conf[:package_name]} log path: please run diagtool command with -l /path/to/<#{@conf[:package_name]} log file>")
|
59
66
|
end
|
60
67
|
if c_env[:tdconf_path] != nil && c_env[:tdconf] != nil && c_env[:tdlog_path] != nil && c_env[:tdlog] != nil
|
61
68
|
prechecklog.info("[Precheck] Precheck completed. You can run diagtool command without -c and -l options")
|
@@ -90,35 +97,35 @@ module Diagtool
|
|
90
97
|
diaglogger_info("[Collect] Loading the environment parameters...")
|
91
98
|
diaglogger_info("[Collect] operating system = #{c_env[:os]}")
|
92
99
|
diaglogger_info("[Collect] kernel version = #{c_env[:kernel]}")
|
93
|
-
diaglogger_info("[Collect]
|
94
|
-
diaglogger_info("[Collect]
|
95
|
-
diaglogger_info("[Collect]
|
96
|
-
diaglogger_info("[Collect]
|
100
|
+
diaglogger_info("[Collect] #{@conf[:package_name]} conf path = #{c_env[:tdconf_path]}")
|
101
|
+
diaglogger_info("[Collect] #{@conf[:package_name]} conf file = #{c_env[:tdconf]}")
|
102
|
+
diaglogger_info("[Collect] #{@conf[:package_name]} log path = #{c_env[:tdlog_path]}")
|
103
|
+
diaglogger_info("[Collect] #{@conf[:package_name]} log = #{c_env[:tdlog]}")
|
97
104
|
m = MaskUtils.new(@conf, loglevel)
|
98
105
|
v = ValidUtils.new(loglevel)
|
99
106
|
|
100
|
-
diaglogger_info("[Collect] Collecting log files of
|
107
|
+
diaglogger_info("[Collect] Collecting log files of #{@conf[:package_name]}...")
|
101
108
|
case @type
|
102
109
|
when 'fluentd'
|
103
110
|
tdlog = c.collect_tdlog()
|
104
|
-
diaglogger_info("[Collect] log files of
|
111
|
+
diaglogger_info("[Collect] log files of #{@conf[:package_name]} are stored in #{tdlog}")
|
105
112
|
when 'fleuntbit'
|
106
113
|
if tdlog.empty?
|
107
114
|
diaglogger_info("FluentBit logs are redirected to the standard output interface ")
|
108
115
|
tdlog = ''
|
109
116
|
else
|
110
117
|
tdlog = c.collect_tdlog()
|
111
|
-
diaglogger_info("[Collect] log files of
|
118
|
+
diaglogger_info("[Collect] log files of #{@conf[:package_name]} are stored in #{tdlog}")
|
112
119
|
end
|
113
120
|
end
|
114
121
|
|
115
|
-
diaglogger_info("[Collect] Collecting config file of
|
122
|
+
diaglogger_info("[Collect] Collecting config file of #{@conf[:package_name]}...")
|
116
123
|
tdconf = c.collect_tdconf()
|
117
124
|
diaglogger_info("[Collect] config file is stored in #{tdconf}")
|
118
125
|
|
119
|
-
diaglogger_info("[Collect] Collecting
|
126
|
+
diaglogger_info("[Collect] Collecting #{@conf[:package_name]} gem information...")
|
120
127
|
tdgem = c.collect_tdgems()
|
121
|
-
diaglogger_info("[Collect]
|
128
|
+
diaglogger_info("[Collect] #{@conf[:package_name]} gem information is stored in #{tdgem}")
|
122
129
|
|
123
130
|
diaglogger_info("[Collect] Collecting config file of OS log...")
|
124
131
|
oslog = c.collect_oslog()
|
@@ -157,11 +164,11 @@ module Diagtool
|
|
157
164
|
###
|
158
165
|
# Correct information to be validated
|
159
166
|
###
|
160
|
-
diaglogger_info("[Collect] Collecting
|
167
|
+
diaglogger_info("[Collect] Collecting sysctl information...")
|
161
168
|
sysctl = c.collect_cmd_output("sysctl -a")
|
162
169
|
diaglogger_info("[Collect] sysctl information is stored in #{sysctl}")
|
163
170
|
|
164
|
-
diaglogger_info("[Valid] Validating
|
171
|
+
diaglogger_info("[Valid] Validating sysctl information...")
|
165
172
|
ret, sysctl = v.valid_sysctl(sysctl)
|
166
173
|
list = sysctl.keys
|
167
174
|
list.each do |k|
|
@@ -186,7 +193,7 @@ module Diagtool
|
|
186
193
|
|
187
194
|
if @conf[:mask] == 'yes'
|
188
195
|
tdconf.each { | file |
|
189
|
-
diaglogger_info("[Mask] Masking
|
196
|
+
diaglogger_info("[Mask] Masking #{@conf[:package_name]} config file : #{file}...")
|
190
197
|
m.mask_tdlog(file, clean = true)
|
191
198
|
}
|
192
199
|
end
|
@@ -194,7 +201,7 @@ module Diagtool
|
|
194
201
|
if @conf[:mask] == 'yes'
|
195
202
|
if tdlog != nil
|
196
203
|
tdlog.each { | file |
|
197
|
-
diaglogger_info("[Mask] Masking
|
204
|
+
diaglogger_info("[Mask] Masking #{@conf[:package_name]} log file : #{file}...")
|
198
205
|
filename = file.split("/")[-1]
|
199
206
|
if filename.include?(".gz")
|
200
207
|
m.mask_tdlog_gz(file, clean = true)
|
@@ -229,7 +236,7 @@ module Diagtool
|
|
229
236
|
if Dir.exist?(params[:output])
|
230
237
|
options[:basedir] = params[:output]
|
231
238
|
else
|
232
|
-
raise "output directory '#{
|
239
|
+
raise "output directory '#{params[:output]}' does not exist"
|
233
240
|
end
|
234
241
|
else
|
235
242
|
raise "output directory '-o' must be specified"
|
@@ -313,5 +320,9 @@ module Diagtool
|
|
313
320
|
@logger.error(str)
|
314
321
|
@logger_file.error(str)
|
315
322
|
end
|
323
|
+
|
324
|
+
def fluent_package?
|
325
|
+
File.exist?("/etc/fluent/fluentd.conf") || File.exist?("/opt/fluent/bin/fluentd")
|
326
|
+
end
|
316
327
|
end
|
317
328
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-diagtool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kubotat
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fileutils
|
@@ -85,8 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '0'
|
87
87
|
requirements: []
|
88
|
-
|
89
|
-
rubygems_version: 2.7.6.2
|
88
|
+
rubygems_version: 3.4.10
|
90
89
|
signing_key:
|
91
90
|
specification_version: 4
|
92
91
|
summary: Diagnostic Tool for Fluentd
|