Zabbix Agent Extensions

Alternatives To Zabbix Agent Extensions
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
13 hours ago7November 04, 2016944otherPython
Developer-first error tracking and performance monitoring
Uptime Kuma31,428
2 days ago1October 14, 2021879mitJavaScript
A fancy self-hosted monitoring tool
6 days ago89mitC
A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @
6 months ago59mitSwift
🖥️ macOS status monitoring app written in SwiftUI.
a month ago71mitC#
Stack Exchange's Monitoring System
2 months ago7January 13, 202167mitGo
Unified monitoring wallboard — Light, ergonomic and reliable monitoring for anything.
Auto Cpufreq3,569
a month ago26lgpl-3.0Python
Automatic CPU speed & power optimizer for Linux
a day ago56April 26, 202266apache-2.0Go
⛑ Automated developer-oriented status page
Uptime3,538324 years ago7December 07, 2012145mitJavaScript
A remote monitoring application using Node.js, MongoDB, and Twitter Bootstrap.
Express Status Monitor3,413765644 months ago42February 26, 202243mitJavaScript
🚀 Realtime Monitoring solution for Node.js/Express.js apps, inspired by, sponsored by
Alternatives To Zabbix Agent Extensions
Select To Compare

Alternative Project Comparisons


Build package and test Releases


A set of zabbix UserParameter scripts and production ready monitoring templates for linux systems.

Monitoring details

This package provides the following capabilities:

  • linux standard monitoring using the standard items provided by the zabbix-agent
    • monitor memory behavior
    • monitor important servcies: smtp, ssh, cron
    • swap usage
    • 5min system load
    • monitor dmesg for bad behavior of the system
    • monitor the maximum and minimum of processes
    • automatic discovery
      • filesystems: inode and space measures
        (the amount of discovered filesystems can be limited by a configuration file on the monitored host)
      • network interfaces: packets and transferrates per second
      • storage devices: operations per second (the amount of discovered devices can be limited by a configuration file on the monitored host)
      • network interfaces: packets and transferrates per second
    • number of processes
  • monitor ICMP ping
  • monitor the MTA mailqueue
  • monitor NFS operations/retransmits
  • apache monitoring: (enable /server-status for localhost clients,
    • Check Apache Server-Status (Readers, Writers - alert if to many slots are in use)
    • Loadbalancer check
    • Monitor Mod JK backend status
  • elasticsearch node and cluster monitoring (needs elasticsearch and es_stats_zabbix Python modules)
  • redis Monitoring (needs redis Python module)
  • NGINX Monitoring (enable /basic_status only for localhost clients,
  • generic discovery (put json snippets to /var/run/zabbix-generic-discovery/ITEMNAME.json i.e. with puppet and get a combined discovery value)
  • monitor puppet state (execution statistics, disabled state, ...)
  • linux software raid state
  • check quality of ntp sync behavior
  • check for required reboot
  • monitor open file descriptors
  • Configurable autodiscovery of block devices
  • Monitor performance havior of discovered block devices
  • Configurable autodisovery of real disk devices
  • Check smart state of disks and gather statistics
  • Discover network devices and monitor performance and error behavior
  • Zabbix agent version
  • Monitor springboot servers
    • beta, monitoring is still rudimentary
    • contributions are very welcome

Almost all measures are integrated in graphs which are displayed on the various host screens.

The project inlcudes various zabbix templates for relase 5.2.

Note: There are also 2.2 and 3.0 templates, but they are outdated because we do not support them anymore. Probably these outdated templates might be a good starting point for your own environment.

A quick is provided by the following files:

For development, debugging and contribution, please have a look for the development document.

Installation and usage

Install the agent extensions on linux systems

  • Install the zabbix-agent according to the description at zabbix download page
  • Download a package suitable for your distribution using the releases section (or build your own package as described in development document)
  • Configure the most important configuration values for your zabbix agent
    • "Server=..." and/or "ServerActive=..."
    • "Hostname=" - your hostname
  • Install the distribution package of the zabbix-agent-extensions using the package management utils or a configuration management systems
    rpm -Uvh zabbix-agent-extensions-<release number>.noarch.rpm
    dpkg -i zabbix-agent-extensions-<release number>.noarch.rpm
    This adds a include statement for /usr/share/zabbix-agent-extensions/include.d and restart the zabbix agent automatically.

Install the agent extensions on kubernetes nodes

This procedure deploy zabbix agents on all worker nodes of your kubernetes cluster and provides autodiscovery for all nodes

  • Make zabbix available to the deployed agent, i.e. by deploying a zabbix proxy in k8s
  • Import template custom-os-kubernetes-node.xml
  • Define a automatic discovery:
    • Configuration -> Actions -> "Autoregistration actions"
    • Add conditions:
      • "Host metadata contains kubernetes-node"
      • "Proxy equals infra-app-dev"
    • Add operations:
      • "Add host"
      • "Add to host groups: [DEVELOPMENT]"
      • "Link to templates: Custom - OS - Kubernetes Node"
  • Configure deployment
    • Download kubernetes yaml file
    • Adapt the file to your own needs
    • Configure ZBX_ACTIVESERVER
    • Configure the version of the image check dockerhub
    • Apply deployment
      kubectl apply -f zabbix-agent-daemonset-kubernetes.yaml
      kubectl describe -n infra-zabbix-agent daemonsets.apps zabbix-agent
      kubectl logs -n infra-zabbix-agent zabbix-agent-8n4ss -f

How to configure the zabbix server/templates

  • Open Zabbix web frontend
  • Create a host
    • Configuration -> Hosts -> Create host
    • Add the name ds "Host name" efined in the first step of this section
    • Define a agent interface with the correct fully qualified hostname and the ip address
  • Open "Configuration" => "Templates"
    • Press button "Import"
    • Activate Linux template
      • Load "zabbix_templates/5.2/Custom - OS - Linux.xml" (also works for higher versions)
      • Open template "Custom - OS - Linux" and modify the default values defined in the macros (if neccessary)
        • Devices
          • {$DISK_HIGH_READ_IOPS_LIMIT} : alert limit for read iops/sec
          • {$DISK_HIGH_WRITE_IOPS_LIMIT} : alert limit for read iops/sec
          • {$DISK_IOPS_LIMIT_MEASURES} : how many measures need to be above the configured limits before alerting
        • Filesystems
          • {$DISK_USAGE_ABOVE_1TB_MINFREE_GBYTES} : how many gigagbytes should be free for filesystem above 1TB
          • {$DISK_USAGE_PERCENT_ALARM} : send alarm for filesystems below 1 TB on prcentage
          • {$DISK_USAGE_PERCENT_WARN} : send warning for filesystems below 1 TB on prcentage
        • {$MAXIMUM_NUMBER_RETRANSMISSIONS} : how many nfs retransmissions are ok on every measurement cycle
        • NTP
          • {$MAX_NTP_OFFSET_MS} : the maximum offset limit in milliseconds
          • {$MIN_NTP_SERVER_COUNT} : how many good ntp sources should be avaiilable, it is istrongly recommended to change the default to 2
        • {$MONITOR_LOAD_WARNING_MULT} : a multiplicator with the number of cpus for load monitoring
        • {$MONITOR_TIMEOUT} : amount of time to complain if hosts does not provide values anymore
      • Assign template "Custom - OS - Linux" to the desired hosts and modify the default values to host specific settings
    • Activate Apache template
      • Load "zabbix_templates/*/Custom - Service - Apache.xml"
      • Open template "Custom - Service - Apache" and modify the default values defined in the macros
      • Assign template "Custom - Service - Apache" to the desired hosts and modify the default values to host specific settings
    • Activate and configure other templates
  • Check the function
    • Have a look at Monitoring -> Hosts -> Latest data
      • Check: "Show items without data"
      • Check: "Show details"
      • Press "Apply"
    • Check dashboards at Monitoring -> Hosts -> Dashboards

How to configure discovery for zabbix agent

  • Configure disk device discovery
    • Create files: (if the file does not exist, the default is used)
      • /etc/zabbix/item_zabbix_device_discovery.json
      • /etc/zabbix/item_zabbix_discovery_filesystems.json
    • Add content to include/exclude devices
      (what it does: include all devices and hardware models, after that filter out all devices and models which match to one of the python regexes)
      /usr/bin/zabbix_discovery_devices --help
      /usr/bin/zabbix_discovery_filesystems --help
    • Test
      zabbix_agentd -t ""
      /usr/bin/zabbix_discovery_devices --config /etc/zabbix/item_zabbix_discovery_devices.json --debug
      zabbix_agentd -t "vfs.fs.discovery"
      /usr/bin/zabbix_discovery_filesystems --config /etc/zabbix/item_zabbix_discovery_filesystems.json --debug
  • Configure generic discovery
    • Decide to use a appname consiting of the following characters: a-zA-Z0-9. (Alphanumeric and dot characters)
    • Add file snippes to /var/run/zabbix-generic-discovery/ which look like -.json
    • Test the disovery by
      zabbix_agentd -t "generic.discovery[appname]"

Licence and Authors

Additional authors are very welcome - just submit your patches as pull requests.

This software is licensed by GPLv2 - review file "LICENSE"

Popular Monitoring Projects
Popular Monitor Projects
Popular Operations Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.