Tuwat is a replacement for the venerable Nagdash which had been adapted time and time again to provide accessors for an evolving infrastructure.
The driving mindset for Tuwat (in German "tu was", meaning "do something")
is to show actionable items. This is a slight departure of Nagdash,
which shows only Nagios Hosts
/Services
.
Connectors for
- Prometheus Alertmanager
- GitLab MRs
- GitHub PRs
- Graylog Events
- Icinga 2
- Nagios API
- Patchman
- Past due Redmine tickets
- Static example showing alert types
See the Example Config for configuration.
Available styles:
dark
(default)light
- mimics the venerable nagdash
The main configuration can contain Rules
, but if multiple rule-sets/dashboards
are needed, dashboards can be added to a folder.
The -dashboards
flag can be used to specify the folder, by default it looks
at /etc/tuwat.d
.
The files have to end with .toml
, the basename will be used as dashboard name.
For further examples and more information on dashboards, see the dashboard documentation.
The rule-system works via an exclude list, matching rules simply exclude items.
For example:
[[rule]]
description = "blocked because not needed"
what = "fooo service"
For more information, see the rule documentation.
go build -o tuwat ./cmd/tuwat
export TUWAT_TEMPLATEDIR= TUWAT_STATICDIR=
./tuwat -conf config.example.toml
Setting TUWAT_TEMPLATEDIR
and TUWAT_STATICDIR
to empty will
automatically use the development directories (pkg/web/templates
and pkg/web/static
respectively).
Not declaring the template/static directory means that the
versions bundled into the binary are used.
- See
pkg/connectors/example
for a very basic example on how a connector is implemented.
Updating the main.js
used by the HTML code:
- Update JavaScript dependencies in
package.json
/package-lock.json
- Edit code in
pkg/web/static/js/index.js
npm run build # to generate the bundled files
npm run watch # to watch for changes and re-generate while developing
Make sure to add the changed/generated files, so not everyone has to use
node.js
.