Butler 9.0 is out - available from the release page on GitHub.
Documentation is available at butler.ptarmiganlabs.com.
This version brings both new features and simplified setup of Butler itself.
As indicated by the shift from version 8.x to 9.0, it is a major upgrade both in terms of new features and in the sense that the structure of the config file has changed slightly. More on that below.
Monitoring Windows services
Monitoring Windows services is useful because it provides real-time visibility into the availability status of the services (up or down).
If we can also get notifications when a service stops (or starts) running we can act immediately and hopefully bring the service back to normal operation quickly.
This holds true for both the Windows services that make up client-managed Qlik Sense Enterprise as well as other mission critical services.
Starting with version 9.0, Butler can monitor Windows services on the same or other servers. A couple of conditions apply:
- Butler itself has to be running on Windows for the services monitoring to work.
- If services on remote servers are to be monitored, there has to be network connectivity to that server from the server where Butler is running (of course...)
The following alert destinations are supported to begin with:
- InfluxDB. Combined with Grafana this gives us very nice status dashboards, see below 👇.
- New Relic. Service status can be sent as both events and log entries to New Relic. Example 👇 and here.
- Email. See below.
- Microsoft Teams. Example here.
- Slack. Example here.
- MQTT. Example here.
- Outbound webhooks (=http calls). Example here.
Information about what information is sent to each destination is available at butler.ptarmiganlabs.com.
Show me the alerts
Service related alerts sent as emails can look like this:
After storing the alerts in InfluxDB they can be visualised in Grafana dashboards:
...or in a New Relic dashboard (not quite as nice visuals as in Grafana though):
Setting up services monitoring is done in Butler's config file, just as all other features. In this example we are monitoring all Qlik Sense services and sending alerts to all destinations:
Butler: ... ... # Monitor Windows services. # This feature only works when Butler is running on Windows Server or desktop. # On other OSs service monitoring will be automatically disabled. serviceMonitor: enable: false # Main on/off switch for service monitoring frequency: every 30 seconds # https://bunkat.github.io/later/parsers.html monitor: - host: <hostname or IP> # Host name of Windows computer where services are running services: # List of services to monitor - name: postgresql-x64-12 # Posgress/repository db friendlyName: Repository DB - name: QlikSenseEngineService friendlyName: Engine - name: QlikSensePrintingService friendlyName: Printing - name: QlikSenseProxyService friendlyName: Proxy - name: QlikSenseRepositoryService friendlyName: Repository - name: QlikSenseSchedulerService friendlyName: Scheduler - name: QlikSenseServiceDispatcher friendlyName: Service Dispatcher alertDestination: # Control to thich destinations service related alerts are sent influxDb: # Send service alerts to InfluxDB enable: true newRelic: # Send service alerts to New Relic enable: true email: # Send service alerts as emails enable: true mqtt: # Send service alerts as MQTT messages enable: true teams: # Send service alerts as MS Teams messages enable: true slack: # Send service alerts as Slack messages enable: true webhook: # Send service alerts as outbound webhooks/http calls enable: true ... ...
Configuration of the various alert destinations is done in their respective parts of the config file.
Configuration sanity check
The second major change is related to Butler's config file, which is in YAML format.
Butler version 9.0 and later will do extensive checks to ensure that the config file has the correct structure and that the expected config entries are there.
If some entries are not present Butler will show what's missing and abort.
Add the missing config entries and try again.
This means that all config entries are now mandatory.
Easiest way to get started is to base your Butler configuration on the provided template config file - this will ensure you use a correctly structured config file.