Icinga DB - Backend moderne
Find a file
Alvar Penning 3a6df542f7
overdue: Temporary Key in "icingadb:" Namespace
The get_overdues.lua script uses a temporary Redis key to store data. So
far, this key was a random UUID, not being prefixed or namespaced. This
does not work when applying Redis ACLs on keys, as this random key is
unpredictable. Now, this key is prefixed with "icingadb:temp:".

This was initially reported in the Community Forum[^0] where the user
applied ACLs to the Redis user for Icinga DB.

It was easy to reproduce this by creating or reconfiguring a dedicated
Redis user, allowing all operations on keys in the "icinga:" and
"icingadb:" namespaces.

> 127.0.0.1:6380> ACL SETUSER icingadb on >icingadb ~icinga:* ~icingadb:* +@all
> OK
> 127.0.0.1:6380> ACL LIST
> 1) "user default on nopass sanitize-payload ~* &* +@all"
> 2) "user icingadb on sanitize-payload #1631be4f74353b72282ba144d82b6764f885feefc99c15c2c5f37b5c65bb3006 ~icinga:* ~icingadb:* resetchannels +@all"

After a while, the previous code failed as expected.

> 2026-01-07T11:22:10.253Z    FATAL   icingadb        NOPERM No permissions to access a key
> can't execute Redis script
> github.com/icinga/icingadb/pkg/icingadb/overdue.Sync.sync
>     /go/src/github.com/Icinga/icingadb/pkg/icingadb/overdue/sync.go:164
> github.com/icinga/icingadb/pkg/icingadb/overdue.Sync.Sync.func3
>     /go/src/github.com/Icinga/icingadb/pkg/icingadb/overdue/sync.go:70
> golang.org/x/sync/errgroup.(*Group).Go.func1
>     /go/pkg/mod/golang.org/x/sync@v0.19.0/errgroup/errgroup.go:93
> runtime.goexit
>     /usr/local/go/src/runtime/asm_amd64.s:1700

With this change, Icinga DB only uses these two namespaces and
continuous to operate.

[^0]: https://community.icinga.com/t/redis-user-acl-for-icingadb/15309
2026-01-07 12:33:13 +01:00
.github build(deps): bump actions/upload-artifact from 5 to 6 2025-12-15 12:55:49 +00:00
cmd Rename notifications-source to notifications 2025-11-17 09:22:37 +01:00
doc Release Icinga DB Version 1.5.0 2025-11-18 09:22:52 +01:00
internal Release Icinga DB Version 1.5.1 2025-12-15 14:38:04 +01:00
pkg overdue: Temporary Key in "icingadb:" Namespace 2026-01-07 12:33:13 +01:00
schema Make is_acknowledged a boolenum & add is_sticky_acknowledgement 2025-06-05 14:23:23 +02:00
tests build(deps): bump github.com/icinga/icinga-go-library in /tests 2025-12-15 12:55:45 +00:00
tools Update dev_update_schema.sh to fit default icingadb.ini 2019-11-05 12:00:10 +01:00
.gitattributes Add more information to icingadb --version ouput 2022-05-23 16:03:56 +02:00
.gitignore Merge branch 'v1.0.0-rc2-rewrite' 2021-05-25 23:31:13 +02:00
.golangci.yml golangci-lint: Add .golangci.yml configuration 2025-10-14 15:12:57 +02:00
.mailmap Update AUTHORS 2025-06-17 12:57:56 +02:00
AUTHORS Update AUTHORS 2025-06-17 12:57:56 +02:00
CHANGELOG.md Release Icinga DB Version 1.5.1 2025-12-15 14:38:04 +01:00
config.example.yml Rename notifications-source to notifications 2025-11-17 09:22:37 +01:00
Containerfile Containerfile: allow running the binary without absolute path 2025-04-02 11:22:15 +02:00
go.mod build(deps): bump github.com/mattn/go-sqlite3 from 1.14.32 to 1.14.33 2026-01-01 18:00:51 +00:00
go.sum build(deps): bump github.com/mattn/go-sqlite3 from 1.14.32 to 1.14.33 2026-01-01 18:00:51 +00:00
LICENSE Add LICENSE 2019-11-04 14:14:15 +01:00
README.md Docs: Account Redis' trademark policy 2024-04-11 10:07:51 +02:00

Icinga DB

Icinga DB is a set of components for publishing, synchronizing and visualizing monitoring data in the Icinga ecosystem, consisting of:

  • The Icinga DB daemon, which synchronizes monitoring data between a Redis®* server and a database
  • Icinga 2 with its Icinga DB feature enabled, responsible for publishing the data to the Redis® server, i.e. configuration and its runtime updates, check results, state changes, downtimes, acknowledgements, notifications, and other events such as flapping
  • And Icinga Web with the Icinga DB Web module enabled, which connects to both Redis® and the database to display and work with the most up-to-date data

Icinga DB Architecture

Documentation

Icinga DB documentation is available at icinga.com/docs.

License

Icinga DB and the Icinga DB documentation are licensed under the terms of the GNU General Public License Version 2.