Data exchange between master and node¶
Connect to the node¶
# telnet localhost 4949
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
# munin node at foo.example.com
help
# Unknown command. Try cap, list, nodes, config, fetch, version or quit
.
Connection closed by foreign host.
Node commands¶
The Munin node daemon will understand and answer to the following inquiries.
- cap
- Lists the capabilities of the node, e.g.
multigraph dirtyconfig
- list [node]
- Simply lists items available for gathering for this host. E.g. load, cpu, memory, df, et alia. If no host is given, default to host that runs the munin-node.
- nodes
- Lists hosts available on this node.
- config <query-item>
- Shows the plugins configuration items. See the config protocol for a full description.
- fetch <query-item>
- Fetches values
- version
- Print version string
- quit
- Close the connection. Also possible to use a point “.”.
capabilities¶
The master can exchange capabilities with the node using the “cap” keyword, and a list of capabilities. For each capability supported by both the master and node, the node setes an environment variable “MUNIN_CAP_CAPABILITY”, where CAPABILITY is the capability in upper case.
Capabilities used so far by munin node and master:
dirtyconfig¶
If the node and master support the “dirtyconfig” capability, the MUNIN_CAP_DIRTYCONFIG environment variable is set for all plugins.
This allows plugin to send config and data when the master asks for “config” for this plugin, reducing the round trip time.
multigraph¶
If the node and master support the “multigraph” capability, the MUNIN_CAP_MULTIGRAPH environment variable is set for all plugins.
This allows plugins to use the “multigraph” format.
See also Protocol extension: multiple graphs from one plugin
spoolfetch¶
If the node and master support the “spoolfetch” capability, the master can use the “spoolfetch” command to retrieve a spool of all plugin output since a given time.
This is used by Asynchronous proxy node.
Example outputs¶
config¶
> config load
< graph_args --title "Load average"
< load.label Load
< .
> config memory
< graph_args --title "Memory usage" --base 1024
< used.label Used
< used.draw AREA
< shared.label Shared
< shared.draw STACK
< buffers.label Buffers
< buffers.draw STACK
< cache.label Cache
< cache.draw STACK
< free.label Free
< free.draw STACK
< swap.label Swap
< swap.draw STACK
fetch¶
Fetches the current values.
Returned data fields:
<field>.value
Numeric value (e.g. “123.45”), timestamp and numeric value separated by a colon (e.g. “1234:56.7”) or ‘U’.
> fetch load
< load.value 0.42
< .
> fetch memory
< used.value 98422784
< shared.value 1058086912
< buffers.value 2912256
< cache.value 8593408
< free.value 235753472
< swap.value 85053440
< .
> fetch load_1sec
< load.value 2148659:0.42
< load.value 2148660:0.23
< load.value 2148661:0.12