|
1 | 1 | const |
2 | 2 | logger = require("../logger"), |
| 3 | + extend = require('extend'), |
3 | 4 | Logger = require("../logger"), |
4 | 5 | mingo = require('../mingo'), |
5 | 6 | ClusterAware = require("./clusteraware"), |
6 | 7 | GlobalDB = require('./globaldb'), |
7 | 8 | FileQueue = require("fileq"), |
8 | 9 | Reemiter = require("../reemiter"), |
| 10 | + MachineCollector = require('../machine'), |
9 | 11 | Config = require("../config"), |
10 | 12 | InputWrapper = require("../input/wrapper"), |
11 | 13 | Transporters = Config.Transporters, |
@@ -77,6 +79,8 @@ class NSyslog extends ClusterAware { |
77 | 79 | this.flowmap = {}; |
78 | 80 | this.pubsub = null; |
79 | 81 |
|
| 82 | + this.collector = MachineCollector.default; |
| 83 | + |
80 | 84 | Reemiter.configure(this); |
81 | 85 | } |
82 | 86 |
|
@@ -315,6 +319,15 @@ class NSyslog extends ClusterAware { |
315 | 319 | }); |
316 | 320 | } |
317 | 321 |
|
| 322 | + async startCollector() { |
| 323 | + let conf = extend(true,{config:{collector:MachineCollector.Defaults}},this.config); |
| 324 | + if(conf.config.collector.enabled!==false) { |
| 325 | + logger.info('Starting machine collector...'); |
| 326 | + this.collector.configure(conf.config.collector); |
| 327 | + this.collector.start(); |
| 328 | + } |
| 329 | + } |
| 330 | + |
318 | 331 | /** |
319 | 332 | * Pushes data manually to the nsyslog instance, writing them to the input stream, |
320 | 333 | * in order to be sent to the flows |
@@ -352,6 +365,7 @@ class NSyslog extends ClusterAware { |
352 | 365 | logger.info(`\tProcessors`,Object.keys(modules.processors)); |
353 | 366 | logger.info(`\tTransporters`,Object.keys(modules.transporters)); |
354 | 367 |
|
| 368 | + await this.startCollector(); |
355 | 369 | await this.startPubSub(); |
356 | 370 | this.startChildren(); |
357 | 371 | this.startProcessorStream(); |
@@ -387,6 +401,8 @@ class NSyslog extends ClusterAware { |
387 | 401 |
|
388 | 402 | logger.info('Closing child processes'); |
389 | 403 | this.children.forEach(f=>f.fstream.closefork()); |
| 404 | + logger.info('Stopping machine collector...'); |
| 405 | + this.collector.stop(); |
390 | 406 | logger.info('Stopping inputs...'); |
391 | 407 | await Promise.all(Object.keys(inputs).map(key=>inputs[key]).filter(m=>m.own).map(m=>prfn(m,'stop'))); |
392 | 408 | logger.info('Stopping processors...'); |
|
0 commit comments