Showing off my Veeam dashboard

CEE 2.1, You can take the Windows and/or Linux sample dashboards and copy and turn them into templates for various “types” of server dashboards you want. For example, for our domain controllers, I include a DNS request/s graph (requires that you create a plugin for that).

I altered the generic Windows dashboard to make a template that includes our last updated check, which also show the full version of Windows installed (since the inventory doesn’t do that). About the only thing I wish we had was the ability to pull in Inventory model and serial (missing that ability) into a smaller dashlet. While we could get the model, it’s just too large. Need to be able to make dashboard items smaller and of course maybe aggregate multiple into one dashlet object.

Also missing currently from dashboard is a way to add a forecast graph. As one of my motivators was that our Veeam host was starting to rapidly fill up, and having the forecast would have been nice.

Enjoy

4 Likes

Cool!
Do you have the information you need in the inventory? Because then, there is a trick how to get them into this dashboard. Happy to share if needed

2 Likes

Nice !
I would also add the Veeam Windows Service states and the info about veeam backup, cdp and tape jobs as seperate tables, to make it look more like a veeam dashboard :slight_smile:

Yes… I’ll look into it. I know that combined “graph wise” you get into the whole “100 limit” issue. Not sure if I can somehow pull individual metrics and sum up, etc. for a value or gauge or something like that.

There’s good information in the Host Inventory under System. Like Serial number, Express Service Code, at least on Dell physical equipment. Would be nice to know if any of that can be exposed dashboard wise.

The inventory dashlet can be extended to also show any inventory information.
For that copy /lib/python3/cmk/gui/cee/plugins/dashboard/inventory.py into your local hierarchy.
And then edit the following code segment by adding the inventory fields, which you want the dashlet to be able to display:

AVAILABLE_INVENTORY: Mapping[str, RenderHint] = {
    # This is a hack: Normally we would reuse the rendering logic of the
    # inventory, and allow all inventory values, but this uses html tags too
    # early in the process so we can not reuse this code. We accept a bit of
    # duplicated logic here. If this list grows above 10 elements we should
    # think about tidying up everything!
    ".hardware.cpu.arch": RenderHint(),
    ".hardware.cpu.max_speed": RenderHintFrequency(),
    ".hardware.cpu.cores": RenderHint(),
    ".hardware.memory.total_ram_usable": RenderHintBytes(),
    ".hardware.memory.total_swap": RenderHintBytes(),
    ".hardware.system.model": RenderHint(),
    ".hardware.system.manufacturer": RenderHint(),
    ".networking.total_interfaces": RenderHint(),
    ".networking.total_ethernet_ports": RenderHint(),
    ".networking.hostname": RenderHint(),
    ".software.applications.check_mk.agent_version": RenderHint(),
    ".software.os.type": RenderHint(),
    ".software.os.vendor": RenderHint(),
    ".software.os.version": RenderHint(),
    ".software.applications.kube.cluster.version": RenderHint(),
    ".software.applications.kube.metadata.name": RenderHint(),
    ".software.applications.kube.metadata.namespace": RenderHint(),

You should find all possible options in here: checkmk/builtin_inventory_plugins.py at e7442a790e7a1a81d74b5c9e17c38b9bec9ac868 · tribe29/checkmk · GitHub

1 Like

Hey! That’s so cool! Wouldn’t it be nice to provide this dashboard via MKP and the Checkmk Exchange? :heart:

Well, like many thing checkmk, while I do strive to be as generic as possible, not everything is generic.

It’s actually one of the strengths of checkmk. “what can it do?” Anything…

Updated dashboard with backup job status.

2 Likes