| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- ---
- format: markdown
- ...
- # Leases in der postgresql-Tabelle kea ermitteln
- 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.
- # Vorgehen
- Aufruf der postgresql-Datenbank mit der Tabelle kea_leases und dem User kea auf dtm1:
- $ sudo -u postgres /usr/lib/postgresql/9.5/bin/psql kea_leases kea -h "127.0.0.1" -W
- Das Passwort steht in kea.conf.
- Aufruf der postgresql-Datenbank mit der Tabelle kea_leases und dem User kea auf dus0x für posrgresql Version 17:
- $ sudo -u postgres /usr/lib/postgresql/17/bin/psql kea_leases _kea -h "127.0.0.1" -W
- Hier muss der User _kea verwendet werden! Das Passwort seht in kea-dhcp4.conf.
- Es erscheint der postgresql-Prompt:
- kea_leases=>
- # Abfragen:
- 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;
- Ergebnis: alle aktiven Geräte aus Domäne 2 mit ip als Dezimalzahl, wobei IP2 die Domäne anzeigt, hier 2.
- select * from lease4 where subnet_id=2 and fqdn_fwd=true order by expire DESC;
- Ergebnis: alle aktiven Geräte aus Domäne 2 mit fqdn_fwd=true, nach Alter absteigend sortiert
- ohne subnet_id=2:
- select * from lease4 where and fqdn_fwd=true order by expire DESC;
- Ergebnis: alle Geräte aus Domäne 2, auch die nicht verbundenen Geräte, nach Alter absteigend sortiert.
- Die nicht mehr aktiven Geräte werden für 3 Monate gespeichert.
- # Mögliche Spalten der Tabelle lease4 in postgresql:
- SELECT column_name, data_type
- FROM information_schema.columns
- WHERE table_name = 'lease4';
- Ergebnis:
- | column_name | data_type |
- | -------------- | ---------------- |
- | address | bigint |
- | hwaddr | bytea |
- client_id | bytea
- valid_lifetime | bigint
- expire | timestamp with time zone
- subnet_id | bigint
- fqdn_fwd | boolean
- fqdn_rev | boolean
- hostname | character varying
- state | bigint
- (10 rows)
- Tabelle muss noch greichtet werden.
- # Anzahl der leases ermitteln für Domäne 2:
- select count(*) from lease4 where subnet_id=2;
- count
- -------
- 2342
- (1 row)
- # Alle leases über alle Domänen:
- select subnet_id, count(*) from lease4 group by subnet_id order by subnet_id;
|