Besides all of the already covered methods, Zabbix also offers a way to write loadable modules. These modules have to be written in C and can be loaded in the Zabbix agent, server, and proxy daemons. When included in the Zabbix agent, from the server perspective, they act the same as the built-in items or user parameters. When included in the Zabbix server or proxy, they appear as simple checks.
Modules have to be explicitly loaded using the LoadModulePath and LoadModule parameters. We won't be looking at the modules in much detail here, but information about the module API and other details are available at https://www.zabbix.com/documentation/4.0/manual/config/items/loadablemodules.