This one is long overdue, but finally here: Butler SOS v2.0
The new version is an almost complete re-write of v1.0. Changes are plentiful and include
- All warnings and errors stored by Sense in its log database are now pulled into Butler SOS, from where it can be graphed and acted upon.
This is a big deal, as it was previously not possible to get notifications or alerts when errors or warnings started to pile up in the logs. - Operational health metrics are still pulled from Qlik Sense, but this is now done directly from the QIX engine rather than via a hard-to-secure virtual proxy.
- Using certificates for authentication with Sense removes potential security issues with v1.0.
- Config file is now YAML instead of JSON. More human readable and with inline comments.
- Config file now allows for more fine-grained control of Butler SOS.
- Several bugs fixed, especially around sending metrics to MQTT.
The readme file on GitHub has all the details, here are some screen shots to get you started though:
The new version is available on GitHub.
PS. This is blog post # 100. Yaaay!!!
Hello ,
First of all thanx for this amazing job .I rellay admire it . I’m trying to make it work but I’m pretty stuck at this point ;
C:\Users\user\Documents\butler-sos-2.0>node butler-sos.js
2018-02-14T12:48:36.279Z – info: Starting Butler SOS
2018-02-14T12:48:36.280Z – info: Log level is: verbose
2018-02-14T12:48:36.322Z – info: Connected to Influx database.
2018-02-14T12:48:41.282Z – verbose: Event started: Statistics collection
2018-02-14T12:48:41.283Z – verbose: Getting stats for server: desktop-m9kf5do
2018-02-14T12:48:41.293Z – verbose: Getting stats for server: desktop-m9kf5do
2018-02-14T12:48:41.375Z – verbose: Received ok response from desktop-m9kf5do
C:\Users\user\Documents\butler-sos-2.0\butler-sos.js:199
body.mem.committed.toString()
^
TypeError: Cannot read property ‘committed’ of undefined
at postHealthToMQTT (C:\Users\user\Documents\butler-sos-2.0\butler-sos.js:199:14)
at Request._callback (C:\Users\user\Documents\butler-sos-2.0\butler-sos.js:309:11)
at Request.self.callback (C:\Users\user\Documents\butler-sos-2.0\node_modules\request\request.js:186:22)
at Request.emit (events.js:159:13)
at Request. (C:\Users\user\Documents\butler-sos-2.0\node_modules\request\request.js:1163:10)
at Request.emit (events.js:159:13)
at IncomingMessage. (C:\Users\user\Documents\butler-sos-2.0\node_modules\request\request.js:1085:12)
at Object.onceWrapper (events.js:254:19)
at IncomingMessage.emit (events.js:164:20)
at endReadableNT (_stream_readable.js:1062:12)
Thanx for you help,
BR,
How did you get this to work? I have the same error.
Thanks
I made it work . Thanx again you can delete comments.
Great that you got it working!
Out of curiosity – are you using Qlik Sense Desktop?
I have not tried Butler SOS on that version of Sense, I didn’t think it would work… but maybe it does?
Hi, I have the same error Ondre mentioned, do you know how to fix it? It must have something to do with MQTT but it is the first time I am working with Mosquitto. If I get this to work it will be very useful. Thank you.
body.mem.committed.toString()
^
TypeError: Cannot read property ‘committed’ of undefined
at postHealthToMQTT (…/butler-sos/butler-sos.js:186:14)
Mike,
are you using Sense Desktop?
Butler SOS is only intended to be used with (and tested with) Sense Enterprise, i.e. the server based version. Some features in Butler SOS may work with Sense Desktop, but no guarantees.
If you ARE using Sense Enterprise, can you provide some more context on your setup? Helps understanding what’s happening.
I am receiving this error message when trying to run Butler. Please help.
C:\Program Files\Tools\butler-sos>node butler-sos.js
WARNING: No configurations found in configuration directory:C:\Program Files\Tools\butler-sos\config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
C:\Program Files\Tools\butler-sos\node_modules\config\lib\config.js:203
throw new Error(‘Configuration property “‘ + property + ‘” is not defined’);
^
Error: Configuration property “Butler-SOS.logLevel” is not defined
at Config.get (C:\Program Files\Tools\butler-sos\node_modules\config\lib\config.js:203:11)
at Object. (C:\Program Files\Tools\butler-sos\globals.js:18:19)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Module.require (internal/modules/cjs/loader.js:1026:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object. (C:\Program Files\Tools\butler-sos\butler-sos.js:6:15)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
Hi Michael,
It’s impossible to completely determine what’s causing the error you get without having access to more info about the server you are running Butler SOS in, what the config files look like etc etc.
But if I am to guess, that error message usually shows up when you have not set the NODE_ENV environment variable properly.
More info at https://butler-sos.ptarmiganlabs.com/docs/getting_started/install_config/windows/#environment-variables