70 Leases in postgresql bzw. kea ermitteln.page 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ---
  2. format: markdown
  3. ...
  4. # Leases in der postgresql-Tabelle kea ermitteln
  5. Kea schreibt die Leases je Domäne in eine postgresql-Tabelle mit dem Namen kea. Diese können insgesamt oder je Domäne ausgelesen werden, um festzustellen, ob die Anzahl der möglichen Leases je Domäne ausreicht.
  6. # Vorgehen
  7. Aufruf der postgresql-Datenbank mit der Tabelle kea_leases und dem User kea auf dtm1:
  8. $ sudo -u postgres /usr/lib/postgresql/9.5/bin/psql kea_leases kea -h "127.0.0.1" -W
  9. Das Passwort steht in kea.conf.
  10. Aufruf der postgresql-Datenbank mit der Tabelle kea_leases und dem User kea auf dus0x für posrgresql Version 17:
  11. $ sudo -u postgres /usr/lib/postgresql/17/bin/psql kea_leases _kea -h "127.0.0.1" -W
  12. Hier muss der User _kea verwendet werden! Das Passwort seht in kea-dhcp4.conf.
  13. Es erscheint der postgresql-Prompt:
  14. kea_leases=>
  15. # Abfragen:
  16. select hwaddr, valid_lifetime, expire, subnet_id, hostname, address/256/256/256 as ip1, address/256/256%256 as ip2, address/256%256 as ip3, address%256 as ip4 from lease4 where fqdn_fwd = true and subnet_id=2 order by expire desc;
  17. Ergebnis: alle aktiven Geräte aus Domäne 2 mit ip als Dezimalzahl, wobei IP2 die Domäne anzeigt, hier 2.
  18. select * from lease4 where subnet_id=2 and fqdn_fwd=true order by expire DESC;
  19. Ergebnis: alle aktiven Geräte aus Domäne 2 mit fqdn_fwd=true, nach Alter absteigend sortiert
  20. ohne subnet_id=2:
  21. select * from lease4 where and fqdn_fwd=true order by expire DESC;
  22. Ergebnis: alle Geräte aus Domäne 2, auch die nicht verbundenen Geräte, nach Alter absteigend sortiert.
  23. Die nicht mehr aktiven Geräte werden für 3 Monate gespeichert.
  24. # Mögliche Spalten der Tabelle lease4 in postgresql:
  25. SELECT column_name, data_type
  26. FROM information_schema.columns
  27. WHERE table_name = 'lease4';
  28. Ergebnis:
  29. | column_name | data_type |
  30. | -------------- | ---------------- |
  31. | address | bigint |
  32. | hwaddr | bytea |
  33. client_id | bytea
  34. valid_lifetime | bigint
  35. expire | timestamp with time zone
  36. subnet_id | bigint
  37. fqdn_fwd | boolean
  38. fqdn_rev | boolean
  39. hostname | character varying
  40. state | bigint
  41. (10 rows)
  42. # Anzahl der leases ermitteln für Domäne 2:
  43. select count(*) from lease4 where subnet_id=2;
  44. count
  45. -------
  46. 2342
  47. (1 row)
  48. # Alle leases über alle Domänen:
  49. select subnet_id, count(*) from lease4 group by subnet_id order by subnet_id;