workspace/skills/zabbix-availability/SKILL.md
Device availability and monitored inventory from Zabbix — is a device reachable, since when, how often has it flapped, and what is the NMS actually watching. Use when someone asks how long a device has been down, whether it is flapping, or what is and is not being monitored.
npx skillsauth add automateyournetwork/netclaw zabbix-availabilityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
zabbix-mcp — vendored third-party, read-only, three tools. See
zabbix-metrics-history for the shared cautions.
"Zabbix cannot reach it" is not "the device is down."
An NMS reports what one poller saw, from one vantage point, at one polling interval. That is evidence, not a verdict.
A device can be unreachable from Zabbix and completely healthy: a firewall rule, a management-VRF problem, a dead SNMP daemon on an otherwise forwarding router, or a poller that has simply not tried recently.
Never write "the device is down." Write:
"Zabbix has been unable to reach rtr-01 since 14:02 UTC. That is the monitoring system's view from its own vantage point — it is not confirmation the device is down.
pyatsormultivendor-clican check the device directly."
This is the same discipline globalping-external-checks applies to probes, and it matters more here,
because an NMS feels authoritative in a way a probe network does not.
| State | available | Say |
|---|---|---|
| Reachable | 1 | "Zabbix reached it at <time>" |
| Unreachable | 2 | "Zabbix cannot reach it as of <time>" — never "it is down" |
| Unknown | 0 | "Zabbix has not yet established reachability" — not the same as unreachable |
| Not monitored | host absent | "this device is not monitored by Zabbix" — not the same as unreachable, and by far the most common cause of surprise |
zabbix_api("host.get", {
"output": ["hostid","host","name","status"],
"selectInterfaces": ["interfaceid","ip","dns","port","available","error","errors_from"],
"selectTags": "extend"
})
Availability without a timestamp is a claim about the present that may be minutes or hours stale. Every
answer states when that state was last observed. errors_from gives you when the failure began.
"It has been down for 40 minutes" and "it has bounced nine times in 40 minutes" lead to completely
different investigations. Get the transitions, not just the current state — event.get against the
unreachability trigger gives you the history.
Report the count of transitions as well as the current state whenever the window contains more than one.
zabbix_api("host.get", {"output":["hostid","host","status"], "selectInterfaces":"extend",
"selectParentTemplates":["name"], "selectHostGroups":["name"]})
zabbix_api("hostgroup.get", {"output":"extend"})
zabbix_api("item.get", {"hostids":["<id>"],
"output":["itemid","name","key_","value_type","units","history","trends","lastclock"]})
Two rules:
status: 1) is shown as disabled, never omitted. A device nobody is watching is a
finding, not an absence — it is usually how a gap in monitoring is discovered.history, trends). This lets an engineer see how far
back a question can be answered before they ask it, which is far better than asking and getting nothing.An item whose lastclock is empty is monitored but has never returned a value — a broken poll, and a
real finding. Do not report it as "no data".
| Want to… | Use |
|---|---|
| Metric values over time | zabbix-metrics-history |
| Problems and alerts | zabbix-problem-review |
| Unsolicited traps | snmptrap-mcp — push, not poll |
| Flows | ipfix-mcp |
| Instrumented metrics | prometheus, grafana |
| SaaS monitoring | auvik, thousandeyes, datadog |
| Confirm whether a device is actually down | pyats, multivendor-cli, fortinet — go ask the device. This skill only reports what the poller saw |
| Add, enable or disable a host | nothing here. Read-only; NMS configuration is out of scope entirely |
tools
Zoom meeting intelligence — correlates a live or referenced Zoom meeting discussion against NetClaw's historical meeting record (via the official Zoom Meetings MCP) and today's actual network state. Use when someone in a Zoom meeting references a past discussion or incident ('didn't we have this issue before?'), or asks to search prior meetings for a topic. Does not itself recognize live in-meeting questions — that happens automatically inside zoom-rtms-mcp's own extractor (spec 118) before this skill is ever invoked.
tools
Manage Lantronix out-of-band (OOB) infrastructure via Percepxion central management platform: device inventory, serial port inspection via SLC CLI, firmware compliance, config management, security auditing, and closed-loop incident remediation. Use during outages, maintenance windows, compliance cycles, and AI-assisted automation workflows.
tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
Track token consumption, enforce session budgets, and display cost for every NetClaw interaction.