Send netdisco-users mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.sourceforge.net/lists/listinfo/netdisco-users
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of netdisco-users digest..."
Today's Topics:

   1. Re: perl script for custom reports (Brian Marshall)
--- Begin Message ---
Hi Oliver, thanks for the reply.

I was kind of afraid that it would be a new feature...I am stuck on an old branch due to too many changes I haven't been able to upstream...I may end up doing something like a custom javascript patch to dynamically create the links for now or just live with having to copy/paste. Its a custom CVE tracking database I also host in my netdisco db. Would an old version have an easy way to define a field to automatically hotlink to eg. the nodes view with the column value as the url parameter?

As an aside, I've developed a collector plugin that may be useful in this age of limited-or-no-arp-table devices (Aruba CX is the main culprit for me): netdisco-flowcollector. I have created a platform file for NFDump, since that's what I'm using.

It grabs the source mac/ip of every flow with just the SYN flag set and filters out any macs that are associated with more that one IP or that reference a known device IP/Alias, which seems to reduce false-positives to basically zero.

I also created a netdisco-apicollector, but the CX series API didn't yield any better arp data through the API than the CLI so I abandoned the experiment, but the code is mostly complete and working.

Would there be any interest in the code for this?

On 9/8/25 04:05, Oliver Gorwits wrote:
Hi Brian

No problem asking again! A lot has been developed in the past couple of years which might help.

One problem with making anything a hyperlink by using Perl munging is that the output is then HTML escaped for safety by Netdisco, rendering the link useless. This is why the old Plugins I released for Observium and RANCID were quite a bit of work, adding template code and so on.

Since then, we have the new external_links and custom_fields features which allow these plugins to be entirely replaced by deployment.yml config!

https://github.com/netdisco/netdisco/wiki/Configuration#external_links
https://github.com/netdisco/netdisco/wiki/Configuration#custom_fields

I'm not quite understanding how you attach a CVE number to a device, or do you mean you have a separate database to look them up in?

Anyway, you can easily nowadays push some data into a custom field (for a device or port), either via API or in a Hook, and then use that custom field in a device or port hyperlink, using above config options.

https://github.com/netdisco/netdisco/wiki/Hooks
https://github.com/netdisco/netdisco/wiki/API#update-a-custom-field

If you have another scenario in mind, please elaborate, as this is where the features come from! :-)

regards
oliver.

On Sun, 7 Sept 2025 at 21:32, Brian Marshall via netdisco-users <[email protected]> wrote:

    Hi list, I know this is a _very_ old thread, but it just kind of
    ended up with a link to the Wiki which, while an excellent source
    of a lot of things to do with custom reports, still doesn't have
    an example .pm for column munging.

    I'd love to be able to do a few things like make some columns into
    hotlinks (eg. CVE numbers going to NIST definitions), but I'm not
    sure where to get started with the "munging".

    On 6/24/21 02:14, Ruben Moretti via netdisco-users wrote:

    Hi Oliver !

    Thanks a lot !

    Maybe a Perl script as an example to mung the data that is called
    up in this way?I can't see how to access the input for the
    script, and I don't know what the output should look like
    either.I only know that the Perl script should have the same name
    as the report tag and must be located under site_plugins.

    Thanks in advance,



    Am 23.06.2021 um 22:59 schrieb Oliver Gorwits:
    A wiki page might do as well - can be collaboratively edited
    with suggested reports and grouped by topic similar to the menus

    ....time passes...

    I created one :)
    https://github.com/netdisco/netdisco/wiki/Custom-Reports

    On Wed, 23 Jun 2021 at 21:36, Michael Butash
    <[email protected]> wrote:

        Probably nice to make a /contrib directory for these folks
        could drop into a repo for other user-created reports they
        find useful.

        Reading this thread, I was wondering about looking at making
        a custom report to fix nbt node views.  It's really quite
        annoying it doesn't give the ip address in the main view,
        would be nice to add a like report with just that if not
        adding to the existing one.

        -mb


        On Tue, Jun 22, 2021 at 11:23 PM Miha Kralj
        <[email protected]> wrote:

            Another nice report is for finding all ports that
            are: Port down, Admin Up, for 2 months
            This means that ports are not used for at least 2 months
            and for security reasons should be shut down.
            The time range is configurable inside the query.

            reports:
              - tag: portsdownall
                label: 'Port down, Admin Up - 2 months'
                category: Port
                columns:
                - { host: Device_name}
                - { ip: ip}
                - { port: Port}
                - { name: Description}
                - { status: Status}
                - { status_admin: 'Status Admin'}
                - { last_change: 'Last change'}
                query: |
                  SELECT device.name <http://device.name/> AS host,
            device_port.ip, device_port.port, device_port.name
            <http://device_port.name/>, device_port.up AS status,
            device_port.up_admin AS status_admin,
            to_char((device.last_discover - (device.uptime -
            device_port.lastchange) / 100 * interval '1 second'),
            'YYYY-MM-DD HH24:MI:SS') as last_change from device_port
                  LEFT JOIN device ON device_port.ip = device.ip
                  WHERE device_port.up = 'down'
                    AND device_port.up_admin = 'up'
                    AND device_port.port NOT LIKE '%Vlan%'
                    AND (device.last_discover - (device.uptime -
            device_port.lastchange) /
                    100 * interval '1 second') < (now() - interval
            '2 month')

            On Wed, Jun 23, 2021 at 8:07 AM Muris
            <[email protected]> wrote:

                Does anyone else have any other handy custom reports
                they can share?

                *From: *Miha Kralj <[email protected]>
                *Date: *Wednesday, 23 June 2021 at 15:20
                *To: *Ruben Moretti <[email protected]>
                *Cc: *<[email protected]>
                *Subject: *Re: [Netdisco] perl script for custom reports

                Hi,

                There is a simple way to make custom reports...

                My way to create custom reports is to place yml code
                at the end in environments/deployment.yml file like
                this:

                reports:

                  - tag: List_of_devices

                label: 'List of devices'

                category: Device

                columns:

                    - { name: Device}

                    - { ip: ip}

                    - { creation: First_seen}

                    - { last_discover: Last_discover}

                query: |

                SELECT name, ip, creation::timestamp(0),
                last_discover::timestamp(0) from device

                  ORDER BY name

                After that you can find a report on the web
                interface "Reports -- > Device -- > List of devices".

                I hope it helps.

                On Sun, Jun 20, 2021 at 3:31 PM Ruben Moretti via
                netdisco-users
                <[email protected]> wrote:

                    Hello !

                    Can anyone post some simple perl script example 
                    for them ?

                    Thanks a lot.

                    
https://github.com/netdisco/netdisco/wiki/Configuration#reports

                    You can munge the data retrieved from the
                    database by placing a Perl script with the same
                    name as the |reports| key into the
                    “|site_plugins|” directory of Netdisco’s home
                    area. The script can access |$config| for its
                    configuration and |@data| for the retrieved
                    data. It should return a list of munged data

                    _______________________________________________
                    Netdisco mailing list
                    [email protected]
                    https://sourceforge.net/p/netdisco/mailman/netdisco-users/

            _______________________________________________
            Netdisco mailing list
            [email protected]
            https://sourceforge.net/p/netdisco/mailman/netdisco-users/

        _______________________________________________
        Netdisco mailing list
        [email protected]
        https://sourceforge.net/p/netdisco/mailman/netdisco-users/



    _______________________________________________
    Netdisco mailing list
    [email protected]
    https://sourceforge.net/p/netdisco/mailman/netdisco-users/


    _______________________________________________
    Netdisco mailing list
    [email protected]
    https://sourceforge.net/p/netdisco/mailman/netdisco-users/
    _______________________________________________
    Netdisco mailing list
    [email protected]
    https://sourceforge.net/p/netdisco/mailman/netdisco-users/

--- End Message ---
_______________________________________________
Netdisco mailing list - Digest Mode
[email protected]
https://lists.sourceforge.net/lists/listinfo/netdisco-users

Reply via email to