netbox-healthcheck-plugin icon indicating copy to clipboard operation
netbox-healthcheck-plugin copied to clipboard

Custom Redis settings not respected

Open tacerus opened this issue 1 year ago • 3 comments

NetBox HealthCheck Plugin version

0.1.4

NetBox version

3.7.5

Python version

3.11

Steps to Reproduce

  1. Install the plugin
  2. Configure NetBox to use a Redis database other than localhost
  3. Query the healthcheck endpoint

Expected Behavior

It should use the Redis server and database specified in the REDIS section in configuration.py.

Observed Behavior

This plugin uses the default Redis adapter of the django-health-check module, which connects to redis://localhost:6379/1 by default, or to a REDIS_URL from settings.py.

NetBox does not expose REDIS_URL in the hidden settings.py, so the health check fails if any a database host and/or database number other than redis://localhost:6379/1 are used.

Currently I work around it with a hacky patch in django-health-check:

--- a/health_check/contrib/redis/backends.py    2024-05-03 23:37:27.000000000 +0200
+++ b/health_check/contrib/redis/backends.py    2024-05-04 22:11:02.448929656 +0200
@@ -12,7 +12,7 @@
 class RedisHealthCheck(BaseHealthCheckBackend):
     """Health check for Redis."""

-    redis_url = getattr(settings, "REDIS_URL", "redis://localhost/1")
+    redis_url = getattr(settings, "CACHES", {}).get("default", {}).get("LOCATION", getattr(settings, "REDIS_URL", "redis://localhost/1"))

tacerus avatar May 04 '24 20:05 tacerus

Even using above replacement running in docker-compose with the demo docker-compose setup on v3.5.4 Redis fails to work because of authentication issues.

Its not clear if this is the plugin issue to solve though -- its inheriting from django health which also has open issue on redis auth via documentation. -- https://github.com/revsys/django-health-check/issues/279 - so probably needs to be solved by properly providing REDIS_URL in the core netbox maybe?

I'm not sure - was hoping this plugin would be a nice drop in for some health checking but I've been unable to get it to work.

shepherdjay avatar Jul 16 '24 16:07 shepherdjay

Isnt that related to https://github.com/netbox-community/netbox-healthcheck-plugin/issues/12 ?

jsenecal avatar Jul 25 '24 19:07 jsenecal

Yes, this sounds like a duplicate

llamafilm avatar Jul 26 '24 00:07 llamafilm