Finding hosts and items¶
Zabbix organises what it monitors into hosts (machines, devices, services), each
with items (the individual measurements, such as a temperature or a disk’s free
space). Before fetching data, find the items you want with zabgrab hosts and
zabgrab items.
Patterns¶
Search patterns work like the Zabbix API’s searches:
they ignore case:
cpu loadfindsCPU load;they match the whole text:
loaddoesn’t findCPU load, but*loaddoes;*matches any text:Particles *umfindsParticles 0.3umandParticles 5um, and*load*finds anything containingload.
This differs from the filters in the Zabbix web interface, which match anywhere in
the text: add * at either end to do the same.
Host patterns match either a host’s technical name (lab1) or its visible
name (Lab 1).
Hosts¶
zabgrab hosts # every host you can see
zabgrab hosts "lab*" # hosts whose name starts with "lab"
zabgrab hosts --group "Lab*" # hosts in host groups matching "Lab*"
The table shows each host’s ID, technical and visible names, groups, and whether it’s monitored (disabled hosts are dimmed).
Items¶
zabgrab items "Particles *" # by item name
zabgrab items --host lab1 # every item on a host
zabgrab items --key "net.if.in[*]" # by item key
zabgrab items --tag area:lab # by tag ("name" or "name:value")
zabgrab items "*temperature*" --host "rack*" --tag location:basement
A name pattern and the --host, --key and --tag options can be combined:
items must match all of them. The table shows each item’s ID, host, name, key, value
type, units, latest value and how long ago it was collected.
Results are sorted by item ID. Sort by any other column with --sort, naming it
as in the table header, in any case:
zabgrab items --host lab1 --sort "last value"
zabgrab items --host lab1 --sort age # most recently updated first
Searches return at most 500 results per server; --limit changes this. zabgrab
says when the limit cut the results short.
Searching several servers¶
Without --server, searches use your default server (or ask which one). Give
--server more than once to search several servers at once; the tables then gain a
Server column:
zabgrab items "Particles *" --server lab --server office
Item specs: choosing items to fetch¶
Commands that fetch data take items as item specs, with --item (-i).
zabgrab items --item accepts them too, so you can check what a spec matches
before fetching it. An item spec is one of:
12345One item, by its ID (as shown by
zabgrab items).Particles *Items whose name matches the pattern.
host=lab1,name=Particles *Comma-separated
field=patternpairs, which must all match. The fields areitemid,host,name,keyandtag.
Item keys often contain commas (net.if.in[eth0,bytes]). That’s fine: only a comma
followed by a field name and = starts a new pair, so
host=router1,key=net.if.in[eth0,bytes] works as you’d expect.
Item IDs are exact and never change, but patterns pick up new items as they’re added (a new host, a new sensor), so they’re usually better in templates. In config files, item specs are written as tables (see Templates):
items = [
{ host = "lab*", name = "Particles *" },
{ itemid = 12345 },
{ key = "net.if.in[*]", tag = "area:lab" },
]
You only see the hosts and items your Zabbix account has permission to read.