Earlier we covered host and template grouping, and learned that adding a template to a host group does not affect the hosts.
Let’s talk about another thing in Zabbix that can be a little bit confusing – no way to have a host without interfaces.
Data is gathered in items and items belong to hosts that have interfaces. There are four types of interfaces:
- Zabbix agent
These are used for various protocols. An interface supplies address and port that is used in the items, and items of specific types can only be assigned to the interfaces of the correct type – for example, agent items can only be assigned to agent interfaces, SNMP items can only be assigned to SNMP interfaces and so on.
But what if we would like to create a host that only has some web scenarios for webpage monitoring? It would have no Zabbix agent, no SNMP, IPMI or JMX. Similarly, no interface is really needed for external checks, trapper, calculated, aggregate and ODBC items. When a host is added in Zabbix, it has a Zabbix agent interface by default. Attempting to remove this interface and saving the host fails:
Does this mean that Zabbix will now try to monitor this host as if it was supposed to have the agent? No. The interfaces are only used if they have items associated with them. We could add several interfaces of each type, but if they had no items, they would be simply ignored. Thus for web monitoring just keep the default agent interface of 127.0.0.1. The localhost address might make it more obvious what’s going on here.
Interfaces that have no monitored items assigned to them are ignored.
The error message is not very user friendly, but understandable – Page received incorrect data – Field “Agent or SNMP or JMX or IPMI interface” is mandatory.
If you believe Zabbix should allow creating hosts without interfaces, you’re not alone – vote on ZBXNEXT-2156.
Items of specific types can only be assigned to interfaces that match the item type. There are a few item types, including simple checks, SSH and telnet items that can be assigned to any interface type. We can check TCP port state or ping hosts on their agent, SNMP, IPMI and JMX interfaces with simple checks.
But what if you have a host that doesn’t have Zabbix agent, SNMP, JMX or IPMI that you would like to check a simple TCP port on? Currently, you would still have to choose one of the existing interface types. As no protocol-specific items would be used on it, it wouldn’t really matter, except that it might be a bit confusing. There is another feature request to add sort of a “generic” interface for Zabbix hosts – ZBXNEXT-3443.