[stork-users] No leases showing on Stork

Roberto Greiner mrgreiner at gmail.com
Fri Nov 8 14:57:41 UTC 2024


That was it!

After adding both hooks (libdhcp_stat_cmds.so and 
libdhcp_lease_cmds.so), Stork is now showing the stats in the Dashboard.

Thank you!

Em 08/11/2024 11:24, Slawek Figiel escreveu:
> Hello Roberto!
>
> Have you loaded the `stat_cmds` hook in Kea? It is necessary to gather 
> the statistics. For example:
>
> ```
>     "hooks-libraries": [
>         {
>             "library": "/usr/lib/kea/libdhcp_stat_cmds.so"
>         }
>     ]
> ```
>
> Regards,
> Slawek Figiel
>
> On 08/11/2024 15:20, Roberto Greiner wrote:
>> Indeed, when I fill a complete name in the search field, it does show 
>> the lease. The problem is that in the "Dashboard" all subnets show 
>> "0% used" and "Addresses 0 / 0 (0% used)", despite that there are 
>> active leases and that the search page does return answers when I 
>> fill the name of a machine.
>>
>> Did I miss something else?
>>
>> Thank you,
>>
>> Roberto
>>
>> Em 08/11/2024 11:04, Marcin Siodelski escreveu:
>>> Stork has limited capabilities with respect to searching leases. In 
>>> particular, it doesn't currently support searching the leases by 
>>> partial IP address, hostname or any other identifier. Suppose I have 
>>> a lease with a hostname of "client-1.example.org". You have to 
>>> specify this exact string in the search box to find this lease. If 
>>> you, say, type "client-1.example.or" the lease won't be found. The 
>>> same is the case for any other identifier, e.g. MAC address, client 
>>> identifier, delegated prefix, IP address etc.
>>>
>>> Do you think this might be the case for you?
>>>
>>> Marcin
>>>
>>>
>>> On 8.11.2024 14:51, Roberto Greiner wrote:
>>>> Ok, I'm still missing something.
>>>>
>>>> I've added the following to both dhcp4.conf and dhcp6.conf:
>>>>
>>>>    "hooks-libraries": [
>>>>         {
>>>>             "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/ 
>>>> libdhcp_lease_cmds.so"
>>>>         }
>>>>         ],
>>>>
>>>> I restarted all isc- daemons(dhcpv4, dhcpv6, stork-server and 
>>>> stork- agent). In the logs, both dhcpv4 and dhcpv6 registered the 
>>>> hook:
>>>> 2024-11-08T10:16:48.614601-03:00 dnsprimario kea-dhcp6[38047]: INFO 
>>>> HOOKS_LIBRARY_LOADED hooks library /usr/lib/x86_64-linux-gnu/kea/ 
>>>> hooks/libdhcp_lease_cmds.so successfully loaded
>>>>
>>>> In the web page, Stork shows the the hook was recognized for both 
>>>> daemons. Also, in the logs something seems to be happening with 
>>>> lines like:
>>>> 2024-11-08T10:19:33.592446-03:00 dnsprimario kea-ctrl-agent[7847]: 
>>>> INFO  COMMAND_RECEIVED Received command 'lease4-get-by-hostname'
>>>> 2024-11-08T10:19:33.592603-03:00 dnsprimario kea-ctrl-agent[7847]: 
>>>> INFO  CTRL_AGENT_COMMAND_RECEIVED command lease4-get-by-hostname 
>>>> received from remote address 127.0.0.1
>>>> 2024-11-08T10:19:33.593008-03:00 dnsprimario kea-dhcp4[38034]: INFO 
>>>> COMMAND_RECEIVED Received command 'lease4-get-by-hostname'
>>>> 2024-11-08T10:19:33.593141-03:00 dnsprimario kea-ctrl-agent[7847]: 
>>>> INFO  CTRL_AGENT_COMMAND_FORWARDED command lease4-get-by-hostname 
>>>> successfully forwarded to the service dhcp4 from remote address 
>>>> 127.0.0.1
>>>> 2024-11-08T10:19:33.593687-03:00 dnsprimario kea-ctrl-agent[7847]: 
>>>> INFO  COMMAND_RECEIVED Received command 'lease6-get-by-hostname'
>>>> 2024-11-08T10:19:33.593795-03:00 dnsprimario kea-ctrl-agent[7847]: 
>>>> INFO  CTRL_AGENT_COMMAND_RECEIVED command lease6-get-by-hostname 
>>>> received from remote address 127.0.0.1
>>>> 2024-11-08T10:19:33.594326-03:00 dnsprimario kea-dhcp6[38047]: INFO 
>>>> COMMAND_RECEIVED Received command 'lease6-get-by-hostname'
>>>> 2024-11-08T10:19:33.594439-03:00 dnsprimario kea-ctrl-agent[7847]: 
>>>> INFO  CTRL_AGENT_COMMAND_FORWARDED command lease6-get-by-hostname 
>>>> successfully forwarded to the service dhcp6 from remote address 
>>>> 127.0.0.1
>>>>
>>>> Buuuuuuut, the leases are still not showing. So, obviously, I'm 
>>>> still missing something. :-P
>>>>
>>>> Any idea of what that would be?
>>>>
>>>> Thank you,
>>>>
>>>> Roberto
>>>>
>>>>
>>>> Em 08/11/2024 10:08, Marcin Siodelski escreveu:
>>>>> Roberto,
>>>>>
>>>>> Thank you for using Stork software.
>>>>>
>>>>> In order for Stork to gather leases from the Kea instances you 
>>>>> need to load "libdhcp_lease_cmds" hook library in Kea. See: 
>>>>> https:// stork.readthedocs.io/en/v1.19.0/usage.html#leases-search
>>>>>
>>>>> Marcin Siodelski
>>>>> ISC
>>>>>
>>>>> On 8.11.2024 13:48, Roberto Greiner wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I've installed Kea and Stork in my network and have almost 
>>>>>> everything working, except that Stork is not showing the leases 
>>>>>> that are allocated by kea. Stork does show all the networks I've 
>>>>>> set and in the "Machines" pages shows that the dhcpv4, dhcpv6, 
>>>>>> ddns and ca daemons are working and communicating. The "kea Apps" 
>>>>>> page shows that one server and also indicates all status ok. The 
>>>>>> dashboard page shows all networks, but says all leases are in zero.
>>>>>>
>>>>>> Can somebody help me on this?
>>>>>>
>>>>>> Thank you,
>>>>>>
>>>>>> Roberto
>>>>>>
>>>>>> My setup:
>>>>>> Both kea and and stork are installed using packages from the isc 
>>>>>> servers.
>>>>>> Kea version 2.6.1
>>>>>> Stork version 1.19
>>>>>> Server is a 24.04.1 Ubuntu VM with 4GB RAM and 12 GB disk in a 
>>>>>> Xen Citrix environment
>>>>>> I have one IPv4 network and 3 IPv6 network configured, but only 
>>>>>> in one of each is the server allocating IPs
>>>>>> leases files are in /var/lib/kea/ and are being populated 
>>>>>> properly (kea-leases4.csv and kea-leases6.csv)
>>>>>>
>>>>>> I've tried using MySQL for the leases, but the result was the 
>>>>>> same. In both cases, Stork shows correctly where the leases are 
>>>>>> stored, but does not fetch those leases.
>>>>>> My configs (with password and actual networks replaced):
>>>>>>
>>>>>> kea-dhcp4.conf:
>>>>>> {
>>>>>> "Dhcp4": {
>>>>>>     "interfaces-config": {
>>>>>>         "interfaces": [ "enX2" ]
>>>>>>     },
>>>>>>     "control-socket": {
>>>>>>         "socket-type": "unix",
>>>>>>         "socket-name": "/tmp/kea4-ctrl-socket"
>>>>>>     },
>>>>>>     "lease-database": {
>>>>>>         "type": "memfile",
>>>>>>         "persist": true,
>>>>>>         "lfc-interval": 3600,
>>>>>>         "name": "/var/lib/kea/kea-leases4.csv"
>>>>>>     },
>>>>>>     "expired-leases-processing": {
>>>>>>         "reclaim-timer-wait-time": 10,
>>>>>>         "flush-reclaimed-timer-wait-time": 25,
>>>>>>         "hold-reclaimed-time": 3600,
>>>>>>         "max-reclaim-leases": 100,
>>>>>>         "max-reclaim-time": 250,
>>>>>>         "unwarned-reclaim-cycles": 5
>>>>>>     },
>>>>>>     "renew-timer": 900,
>>>>>>     "rebind-timer": 1800,
>>>>>>     "valid-lifetime": 3600,
>>>>>>     "option-data": [
>>>>>>         {
>>>>>>             "name": "domain-name-servers",
>>>>>>             "data": "10.0.0.1, 8.8.8.8"
>>>>>>         },
>>>>>>         {
>>>>>>             "code": 15,
>>>>>>             "data": "domain.org.br"
>>>>>>         },
>>>>>>         {
>>>>>>             "name": "domain-search",
>>>>>>             "data": "domain.org.br"
>>>>>>         },
>>>>>>         {
>>>>>>             "name": "boot-file-name",
>>>>>>             "data": "EST5EDT4\\,M3.2.0/02:00\\,M11.1.0/02:00"
>>>>>>         },
>>>>>>         {
>>>>>>             "name": "default-ip-ttl",
>>>>>>             "data": "0xf0"
>>>>>>         }
>>>>>>     ],
>>>>>>     "subnet4": [
>>>>>>         {
>>>>>>             "id": 1,
>>>>>>             "subnet": "10.0.0.192/26",
>>>>>>             "pools": [ { "pool": "10.0.0.193 - 10.0.0.251" } ],
>>>>>>             "option-data": [
>>>>>>                 {
>>>>>>                     "name": "routers",
>>>>>>                     "data": "10.0.0.254"
>>>>>>                 }
>>>>>>             ],
>>>>>>         }
>>>>>>     ],
>>>>>>     "loggers": [
>>>>>>     {
>>>>>>         "name": "kea-dhcp4",
>>>>>>         "output-options": [
>>>>>>             {
>>>>>>                 "output": "stdout",
>>>>>>                 "pattern": "%-5p %m\n",
>>>>>>             }
>>>>>>         ],
>>>>>>         "severity": "INFO",
>>>>>>         "debuglevel": 0
>>>>>>     }
>>>>>>   ]
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> kea-dhcp6.conf
>>>>>> {
>>>>>> "Dhcp6": {
>>>>>>     "valid-lifetime": 4000,
>>>>>>     "renew-timer": 1000,
>>>>>>     "rebind-timer": 2000,
>>>>>>     "preferred-lifetime": 3000,
>>>>>>     "interfaces-config": {
>>>>>>         "interfaces": [ "enX2/fc00::9" ]
>>>>>>     },
>>>>>>     "control-socket": {
>>>>>>         "socket-type": "unix",
>>>>>>         "socket-name": "/tmp/kea6-ctrl-socket"
>>>>>>     },
>>>>>>     "lease-database": {
>>>>>>         "type": "memfile",
>>>>>>         "persist": true,
>>>>>>         "name": "/var/lib/kea/kea-leases6.csv"
>>>>>>     },
>>>>>>     "subnet6": [
>>>>>>         {
>>>>>>             "id": 1,
>>>>>>             "subnet": "fc00:20::/64"
>>>>>>         },
>>>>>>         {
>>>>>>             "interface": "enX2",
>>>>>>             "id": 2,
>>>>>>             "subnet": "fc00::/64",
>>>>>>             "pools": [
>>>>>>                 {
>>>>>>                     "pool": "fc00::10:1-fc00::a2:ffff:ffff:ffff"
>>>>>>                 }
>>>>>>              ],
>>>>>>             "option-data": [
>>>>>>                 {
>>>>>>                     "name": "domain-search",
>>>>>>                     "code": 24,
>>>>>>                     "data": "fdn.domain.org.br"
>>>>>>                },
>>>>>>                 {
>>>>>>                     "name": "dns-servers",
>>>>>>                     "data": "fc00::1, 2001:4860:4860::8888"
>>>>>>                 }
>>>>>>              ],
>>>>>>         },
>>>>>>         {
>>>>>>             "id": 3,
>>>>>>             "interface": "enX0",
>>>>>>             "subnet": "fc00:10::/64"
>>>>>>         }
>>>>>>     ],
>>>>>>     "loggers": [
>>>>>>     {
>>>>>>         "name": "kea-dhcp6",
>>>>>>         "output-options": [
>>>>>>             {
>>>>>>                 "output": "stdout",
>>>>>>                 "pattern": "%-5p %m\n",
>>>>>>             }
>>>>>>         ],
>>>>>>         "severity": "INFO",
>>>>>>     }
>>>>>>   ]
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>  kea-ctrl-agent.conf
>>>>>> {
>>>>>> "Control-agent": {
>>>>>>     "http-host": "127.0.0.1",
>>>>>>     "http-port": 8000,
>>>>>>     "control-sockets": {
>>>>>>         "dhcp4": {
>>>>>>             "socket-type": "unix",
>>>>>>             "socket-name": "/tmp/kea4-ctrl-socket"
>>>>>>         },
>>>>>>         "dhcp6": {
>>>>>>             "socket-type": "unix",
>>>>>>             "socket-name": "/tmp/kea6-ctrl-socket"
>>>>>>         },
>>>>>>         "d2": {
>>>>>>             "socket-type": "unix",
>>>>>>             "socket-name": "/tmp/kea-ddns-ctrl-socket"
>>>>>>         }
>>>>>>     },
>>>>>>     "hooks-libraries": [
>>>>>>     ],
>>>>>>     "loggers": [
>>>>>>     {
>>>>>>         "name": "kea-ctrl-agent",
>>>>>>         "output-options": [
>>>>>>             {
>>>>>>                 "output": "stdout",
>>>>>>                 "pattern": "%-5p %m\n"
>>>>>>             }
>>>>>>         ],
>>>>>>         "severity": "info",
>>>>>>         "debuglevel": 0
>>>>>>     }
>>>>>>   ]
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>> server.env:
>>>>>> STORK_DATABASE_NAME=stork
>>>>>> STORK_DATABASE_USER_NAME=stork-server
>>>>>> STORK_DATABASE_PASSWORD=<some pass>
>>>>>> STORK_REST_STATIC_FILES_DIR=/usr/share/stork/www
>>>>>>
>>>>>> agent.env
>>>>>> STORK_AGENT_PORT=8079
>>>>>>
>>>>>
>>>
>
-- 
   -----------------------------------------------------
                 Marcos Roberto Greiner

    Os otimistas acham que estamos no melhor dos mundos
     Os pessimistas tem medo de que isto seja verdade
                              James Branch Cabell
   -----------------------------------------------------



More information about the Stork-users mailing list