Skip to content

Monitoring

Monitor the health and performance of your Bindy DNS infrastructure.

Status Conditions

All Bindy resources report their status using standardized conditions:

# Check Bind9Instance status
kubectl get bind9instance primary-dns -n bindy-system -o jsonpath='{.status.conditions}'

# Check DNSZone status
kubectl get dnszone example-com -n bindy-system -o jsonpath='{.status.conditions}'

See Status Conditions for detailed condition types.

Logging

View operator and BIND9 logs:

# Operator logs
kubectl logs -n bindy-system deployment/bindy

# BIND9 instance logs
kubectl logs -n bindy-system -l instance=primary-dns

# Follow logs
kubectl logs -n bindy-system deployment/bindy -f

See Logging for log configuration.

Metrics

Monitor resource usage and performance:

# Pod resource usage
kubectl top pods -n bindy-system

# Node resource usage
kubectl top nodes

See Metrics for detailed metrics.

Health Checks

BIND9 pods include liveness and readiness probes, both TCP socket checks against the container's DNS port 5353 (named binds the unprivileged 5353; the Service still exposes 53 to clients and forwards to 5353):

livenessProbe:
  tcpSocket:
    port: 5353
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 5
  failureThreshold: 3

readinessProbe:
  tcpSocket:
    port: 5353
  initialDelaySeconds: 10
  periodSeconds: 5
  timeoutSeconds: 3
  failureThreshold: 3

Check probe status:

kubectl describe pod -n bindy-system <bind9-pod-name>

Monitoring Tools

Prometheus

Scrape metrics from BIND9 using bind_exporter:

# Add exporter sidecar to Bind9Instance
# (Future enhancement)

Grafana

Create dashboards for: - Query rate and latency - Zone transfer status - Resource usage - Error rates

Alerts

Set up alerts for: 1. Pod crashes or restarts 2. Failed zone transfers 3. High query latency 4. Resource exhaustion 5. DNSSEC validation failures

Next Steps