r/zabbix Jun 03 '26

Guide Live Webinars | Distributed Monitoring & Windows Server Monitoring

4 Upvotes

We're going live already next week with the 'Distributed Monitoring with Zabbix' webinar on June 11 at 10 AM CDT. The session dives into distributed monitoring with Zabbix proxies – how to keep visibility across remote sites, centralize monitoring, and avoid losing data even when connectivity isn’t perfect.

The next webinar on June 18, focuses on Windows Server monitoring with Zabbix, from performance metrics and system events to spotting issues early enough to fix them before users start noticing.

Both sessions are practical, free to attend, and built around situations most IT teams eventually run into one way or another. Sign up now.


r/zabbix 1d ago

Question Need advice for monitoring 10,000+ network devices with Zabbix

9 Upvotes

Hi everyone,
I work for a company that has more than 10,000 network devices (routers, switches, and firewalls) distributed across the country. I’m planning to deploy Zabbix to monitor all of them.
My main question is: If I run everything on a single Zabbix server, what kind of CPU and RAM would I need? Has anyone monitored an environment of this size on a single server?
I’d also appreciate any recommendations or best practices for large-scale deployments, such as:
Using Zabbix Proxies vs. a single server.
Automating host onboarding (API, discovery, Ansible, etc.).
Alerting strategies to avoid alert storms.
Recommended polling intervals for SNMP monitoring.
Database tuning and storage considerations.
Any performance optimizations or lessons learned from production environments.
I’d love to hear from anyone managing 10k+ devices with Zabbix. Thanks


r/zabbix 1d ago

Discussion Monitoring High-Performance Computing Infrastructure at George Washington University Using Open-Source Solutions (Paper Published in the proceedings)

5 Upvotes

r/zabbix 1d ago

Bug/Issue Best place to post this bug my claude code found?

0 Upvotes

Maybe it's a bug, maybe it's not. I tried to make it thoroughly investigate it and figure it out. It's hard on thinking this is a bug. Where is the best place to get this in front of zabbix devs?

Zabbix Support Case: Newly-created trapper items reject all incoming data (even after full server restart)

Summary

On our Zabbix 7.4.11 server, any newly-created trapper item rejects all incoming `zabbix_sender` data (`processed: 0; failed: N`). This persists after `config_cache_reload` and after a full `systemctl restart zabbix-server`. Meanwhile:

Pre-existing (old) trapper items accept data normally.

Newly-created dependent items and script items work fine (collect data immediately).

So the failure is cleanly isolated to newly-created items of type "Zabbix trapper."

Environment

Zabbix server 7.4.11 (DB version 7040011), single node (HA manager reports one active node, no standby).

MariaDB 11.8.3 backend on a separate host.

~1,181 monitored hosts, ~227,000 enabled items.

No Zabbix proxies. Single `zabbix_server` instance (verified via `ss`/`ps`).

Reproduction

Create a new trapper item (e.g. `key=zz.trapper.test`, type "Zabbix trapper", unsigned) on any host — existing or new, normal or LLD-discovered.

`zabbix_server -R config_cache_reload` (also tried waiting >60s, and 40+ min).

`zabbix_sender -z 127.0.0.1 -p 10051 -s "<host>" -k zz.trapper.test -o 1 -vv`

→ server response: `processed: 0; failed: 1; total: 1`

Full `systemctl restart zabbix-server`, wait for startup, repeat step 3 → still `processed: 0; failed: 1`.

A byte-identical old trapper item on another host returns `processed: 1; failed: 0` in the same test.

Ruled out

Proxy: none configured; host `proxyid=0`, `monitored_by=0`.

Duplicate/second server instance / HA split-brain: single `zabbix_server` parent PID; `ha_node` shows a single node in status=3 (active).

Allowed hosts (item `trapper_hosts`): empty (= any) on both working and failing items.

Item/host state: failing item `status=0` (enabled), `state=0` (normal); host `status=0` (monitored).

Config cache exhaustion: "Configuration cache, % used" = ~4.7%.

Timing / cache delay: failure persists far beyond the 60s cache window and across a full restart.

Broken changelog triggers: `changelog` table present and actively recording (newest row seconds old); `items`/`hosts` insert/update/delete triggers all present. 65 DB triggers total.

Server health: configuration syncer utilization ~1.2%, history write cache 0% used, history syncers ~3% busy — nothing overloaded.

Impact

New `zabbix_sender`/trapper-based monitoring cannot be added to this server (data is silently rejected). Existing trapper items and all other item types are unaffected, so day-to-day monitoring continues.

Notes / suspected area

Behavior is consistent with the incremental (changelog-based) configuration synchronization not applying newly-added trapper items to the live config cache used by the trapper listener — but even a full config rebuild at server startup does not resolve it, which is the unusual part. Not referenced as fixed in release notes 7.4.12 or 7.4.13rc1.


r/zabbix 2d ago

Question Cisco WLC 5508/5520 template for Zabbix 7 with AP auto-discovery and interference monitoring

1 Upvotes

Olá a todos,

Estou trabalhando em um modelo do Zabbix 7 para o Cisco WLC 5500 Series Wireless Controller e gostaria de saber se ainda há interesse em monitorar esses controladores.

Até o momento, o modelo inclui:

  • Descoberta automática de APs
  • Nomes de APs
  • Monitoramento de interferências
  • Monitoramento de canais
  • Contagem de clientes
  • Gatilhos
  • Suporte a painéis

O objetivo é facilitar o monitoramento do Cisco WLC sem exigir a configuração manual de APs ou canais.

Alguém ainda usa o Cisco WLC 5508/5520 em produção?

Também gostaria de saber quais métricas vocês monitoram atualmente e se teriam interesse em participar de testes beta.


r/zabbix 5d ago

Guide I documented my entire Distributed Zabbix 7.0 lab (103 pages) — looking for feedback

39 Upvotes

Looking for feedback on a Zabbix project I recently finished

I recently finished building a distributed Zabbix 7.0 lab on VMware Workstation and documented the whole project while I was working on it. The report ended up being 103 pages, mostly because I kept the troubleshooting and validation instead of rewriting everything after it was working.

Some of the things I implemented:

  • Distributed Zabbix Server + Proxy
  • Automatic host discovery and registration
  • Linux, Windows, and network device monitoring
  • HTTPS, SNMP, and Agent2 checks
  • Trigger dependencies and event correlation
  • Business Services and SLA reporting
  • A few self-healing automation tasks
  • Security hardening and validation

I also left in the parts where I made mistakes or had to change my approach after testing. Looking back, those sections were probably more useful to write than the parts where everything worked the first time.

I'd appreciate feedback from people who use Zabbix regularly. I'm interested in things like:

  • Architecture decisions
  • Monitoring strategy
  • Things you would have configured differently
  • Documentation quality
  • Anything that looks incorrect or unnecessary

If anyone wants to take a look, I'll post the PDF in the comments (or send it if links aren't allowed in this subreddit).

https://drive.google.com/file/d/1t4b4y0aZGLl5hq-mKKJJSYQI1LZ75rgy/view?usp=sharing

Thanks


r/zabbix 6d ago

Question How do you suppress reboot alerts after planned maintenance in Zabbix 6.4?

6 Upvotes

Hi everyone,

I’m running Zabbix 6.4 and use the following trigger to detect server reboots:

change(/host/system.uptime)<0

The trigger works well for unexpected reboots.
However, we perform planned maintenance where servers are intentionally rebooted. After the maintenance window ends, Zabbix still generates a reboot alert because change(system.uptime) detects the drop in uptime.

My requirement is:

Alert on unexpected reboots.

Do not generate a reboot alert if the reboot occurred during a planned maintenance window.

I don’t want to simply delay the alert by a few minutes, as it still gets created later.
I’m using the standard system.uptime item from the Zabbix agent (not SNMP).

I’ve considered expressions like:
last(system.uptime)<10m or adding conditions such as: last(system.uptime)>300
but these either delay the alert or only work if maintenance lasts longer than the grace period.

How are others solving this in production?
Are you using a different trigger expression?
Event correlation?
Action conditions?
A custom item/script?
Extending the maintenance window?
Any best practices for large-scale environments?
I’d appreciate hearing how you’ve implemented reboot detection while avoiding false alerts after planned maintenance.
Thanks!


r/zabbix 7d ago

Bug/Issue Zabbix - Appliances Cow2 AND Iso Netinstall LTS 7 - broken OotB

1 Upvotes

Dear Zabbix Team,

ISO and Cow2 are broken Out of the Box.

Spend a whole day figuring things out and went with Docker Compose now (which works)

Also it would be a nice change to ask for keyboard settings and locales.

Because not everyone starts with a US / EN Keyboard and i got really confused why it wouldnt accept the default credentials at first.

This is the issue with the provided Appliance and Iso

Same Error: fresh Iso Install OR Cow2 7.0.28


r/zabbix 10d ago

Bug/Issue Zabbix 8 alpha and beta, ldap group membership issue

2 Upvotes

Hello,

activating ldap (over AD), I could not map user groups ( i.e. map an AD group to the Zabbix Administrators group). Seems the issue comes from /usr/share/zabbix/ui/include/classes/ldap/CLdap.php, and the changes that seem to have it work for me are the following (diff new orig):

343d342
<
345,362c344,346
< if ($attributes === [] || !$this->connect() || !$this->bind($user, $password)) {
< return [];
< }
<
< $placeholders = ['%{user}' => $user];
<
< $results = $this->search(
< $this->cnf['base_dn'],
< $this->cnf['search_filter'],
< $placeholders,
< $attributes
< );
<
< $user_data = [];
<
< if (!isset($results['count']) || $results['count'] === 0) {
< return $user_data;
< }
---
> if ($attributes == [] || !$this->connect() || !$this->bind($user, $password)) {
> return [];
> }
364c348,350
< $entry = $results[0];
---
> $placeholders = ['%{user}' => $user];
> $results = $this->search($this->cnf['base_dn'], $this->cnf['search_filter'], $placeholders, $attributes);
> $user = [];
366,371c352,354
< if (!isset($entry['count']) || $entry['count'] === 0) {
< return $user_data;
< }
<
< $group_key = strtolower($this->cnf['group_membership']);
< $group_name_key = strtolower($this->cnf['group_name']);
---
> if ($results['count'] == 0) {
> return $user;
> }
373,375c356
< for ($i = 0; $i < $entry['count']; $i++) {
< $key = $entry[$i];
< $normalized_key = strtolower($key);
---
> $results = $results[0];
377,378c358,359
< if (!array_key_exists($key, $entry)) {
< continue;
---
> if ($results['count'] == 0) {
> return $user;
381,382c362,363
< if ($normalized_key === $group_key) {
< $group_dns = $entry[$key];
---
> $group_key = strtolower($this->cnf['group_membership']);
> $group_name_key = strtolower($this->cnf['group_name']);
384,388c365,366
< /*
< * ldap_get_entries() adds a synthetic "count" key.
< */
< unset($group_dns['count']);
< $group_dns = array_values($group_dns);
---
> for ($i = 0; $i < $results['count']; $i++) {
> $key = $results[$i];
390,399c368,370
< $user_data[$normalized_key] = $this->getGroupPatternsFromDns(
< $group_name_key,
< $group_dns
< );
<
< }
< else {
< $user_data[$normalized_key] = isset($entry[$key][0])
< ? $entry[$key][0]
< : null;
---
> $user[$key] = $results[$i] === $group_key
> ? $this->getGroupPatternsFromDns($group_name_key, $results[$key])
> : $results[$key][0];
401d371
< }
403c373
< return $user_data;
---
> return $user;
405,406c375
<
<
---
>
471,503c440,450
< $ldap_groups = [];
<
< $user = [
< 'medias' => [],
< 'usrgrps' => [],
< 'roleid' => 0
< ];
<
< $config = $provisioning->getIdpConfig();
<
< /*
< * Temporary workaround for Zabbix 8.0 alpha2:
< * ensure the LDAP group provisioning settings are available both
< * to this method and to getUserAttributes().
< */
< if ($config['group_membership'] === '') {
< $config['group_membership'] = 'memberOf';
< }
<
< if ($config['group_name'] === '') {
< $config['group_name'] = 'cn';
< }
<
< $this->cnf['group_membership'] = $config['group_membership'];
< $this->cnf['group_name'] = $config['group_name'];
<
< $user_attributes = $provisioning->getUserIdpAttributes();
<
< if ($config['group_membership'] !== ''
< && !in_array($config['group_membership'], $user_attributes, true)) {
< $user_attributes[] = $config['group_membership'];
< }
<
---
> $ldap_groups = [];
> $user = [
> 'medias' => [],
> 'usrgrps' => [],
> 'roleid' => 0
> ];
> $config = $provisioning->getIdpConfig();
> $user_attributes = $provisioning->getUserIdpAttributes();
> $idp_user = $this->getUserAttributes($user_attributes, $username);
> $user = $provisioning->getUserAttributes($idp_user, false);
> $user['medias'] = $provisioning->getUserMedias($idp_user, false);
505c452,453
< $idp_user = $this->getUserAttributes($user_attributes, $username);
---
> if ($config['group_membership'] !== '') {
> $group_key = strtolower($config['group_membership']);
507,508c455,460
< $user = $provisioning->getUserAttributes($idp_user, false);
< $user['medias'] = $provisioning->getUserMedias($idp_user, false);
---
> if (array_key_exists($group_key, $idp_user) && is_array($idp_user[$group_key])) {
> $ldap_groups = $idp_user[$group_key];
> }
> }
> else if ($config['group_filter'] !== '') {
> $user_ref_attr = strtolower($config['user_ref_attr']);
510,511c462,464
< if ($config['group_membership'] !== '') {
< $group_key = strtolower($config['group_membership']);
---
> if ($user_ref_attr !== '' && array_key_exists($user_ref_attr, $idp_user)) {
> $this->setQueryPlaceholders(['%{ref}' => $idp_user[$user_ref_attr]]);
> }
513,515c466,468
< if (array_key_exists($group_key, $idp_user)
< && is_array($idp_user[$group_key])) {
< $ldap_groups = $idp_user[$group_key];
---
> $group_attributes = $provisioning->getGroupIdpAttributes();
> $ldap_groups = $this->getGroupAttributes($group_attributes, $username);
> $ldap_groups = array_column($ldap_groups, strtolower($config['group_name']));
518,539c471
< }
< else if ($config['group_filter'] !== '') {
< $user_ref_attr = strtolower($config['user_ref_attr']);
<
< if ($user_ref_attr !== ''
< && array_key_exists($user_ref_attr, $idp_user)) {
< $this->setQueryPlaceholders([
< '%{ref}' => $idp_user[$user_ref_attr]
< ]);
< }
<
< $group_attributes = $provisioning->getGroupIdpAttributes();
<
< $ldap_groups = $this->getGroupAttributes(
< $group_attributes,
< $username
< );
<
< $ldap_groups = array_column(
< $ldap_groups,
< strtolower($config['group_name'])
< );
---
> $user = array_merge($user, $provisioning->getUserGroupsAndRole($ldap_groups));
540a473
> return $user;
543,549d475
< $mapped_data = $provisioning->getUserGroupsAndRole($ldap_groups);
<
<
< $user = array_merge($user, $mapped_data);
<
< return $user;
< }
608d533
<
610c535,539
< $this->error = static::ERR_NONE;
---
> $this->error = static::ERR_NONE;
> $base = $this->makeFilter($dn, $placeholders, LDAP_ESCAPE_DN);
> $filter = $this->makeFilter($filter, $placeholders + $this->placeholders, LDAP_ESCAPE_FILTER);
> $resource = ($this->ds, $base, $filter, $attributes);
> $results = false;
612,634c541,543
< $base = $this->makeFilter($dn, $placeholders, LDAP_ESCAPE_DN);
< $filter = $this->makeFilter(
< $filter,
< $placeholders + $this->placeholders,
< LDAP_ESCAPE_FILTER
< );
<
<
< $resource = ($this->ds, $base, $filter, $attributes);
< $results = false;
<
< if ($resource !== false) {
< $results = ($this->ds, $resource);
<
< if ($results !== false) {
< if (($results['count'] ?? 0) > 0) {
< if (isset($results[0]['memberof'])
< && is_array($results[0]['memberof'])) {
< $memberof_values = $results[0]['memberof'];
< unset($memberof_values['count']);
<
< }
< }
---
> if ($resource !== false) {
> $results = ($this->ds, $resource);
> ldap_free_result($resource);
637,641c546,547
< ldap_free_result($resource);
< }
<
< if ($resource === false || $results === false) {
< $this->error = static::ERR_QUERY_FAILED;
---
> if ($resource === false || $results === false) {
> $this->error = static::ERR_QUERY_FAILED;
643,644c549,550
< return ['count' => 0];
< }
---
> return ['count' => 0];
> }
646c552
< return $results;
---
> return $results;

Anyone else had the same issue?


r/zabbix 10d ago

Fun Replace Z in compact mode view.

Thumbnail
gallery
0 Upvotes

If some one want to change Z (for some personal reasons) in zabbix compact sidebar view to this, here is a code fo this (replace existed):

/usr/share/zabbix/ui/assets/styles/dark-theme.css (or any other theme you use.)

#main page logo
div.zabbix-logo {
    width: 114px;
    height: 30px;
    background: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='91' height='24'>\
<rect x='0' y='0' width='91' height='12' fill='%230057B7'/>\
<rect x='0' y='12' width='91' height='12' fill='%23FFD700'/>\
<path fill='%23fff' d='M3.79 3.559v2.105h10.226L3.53 18.586v1.861h13.88v-2.105H6.674L17.15 5.42V3.559zm22.108 0-.023.064-6.45 16.824h2.606l1.521-4.28h7.413l1.523 4.28h2.572L28.603 3.558zm11.424 0v16.889h6.111c1.891 0 3.367-.422 4.405-1.252 1.04-.834 1.56-2.018 1.56-3.526 0-1.146-.313-2.128-.945-2.894-.586-.73-1.417-1.188-2.436-1.442.809-.188 1.503-.493 1.948-1.06.496-.624.74-1.463.74-2.488 0-1.352-.478-2.401-1.436-3.133-.96-.734-2.316-1.094-4.058-1.094zm15.211 0v16.889h6.111c1.895 0 3.365-.422 4.403-1.252 1.046-.834 1.566-2.018 1.566-3.526 0-1.146-.313-2.127-.95-2.894-.587-.729-1.42-1.188-2.439-1.442.813-.188 1.51-.494 1.955-1.06.496-.624.743-1.462.743-2.488 0-1.352-.49-2.401-1.446-3.133-.96-.734-2.317-1.094-4.054-1.094zm15.477 0v16.889h2.465V3.558zm5.713 0 5.242 7.972-5.904 8.916h2.642l4.585-6.908 4.535 6.908h2.732l-5.898-8.978 5.252-7.91H84.26L80.34 9.47l-3.882-5.911zM27.246 6.168l2.934 7.922h-5.86z'/>\
<g fill='%23d40000'>\
<path d='M54.998 12.486h3.537c1.203 0 2.083.245 2.647.727.556.464.843 1.204.843 2.23.001 1.009-.285 1.75-.843 2.23-.566.474-1.444.721-2.647.721h-3.537zM55.014 5.611h3.254c1.094 0 1.899.213 2.412.604.519.393.777.983.777 1.812 0 .82-.258 1.416-.777 1.819-.514.39-1.318.601-2.412.601h-3.254zM39.785 12.469h3.537c1.203 0 2.083.245 2.647.727.556.464.843 1.204.843 2.23.001 1.009-.285 1.75-.843 2.23-.566.474-1.444.721-2.647.721h-3.537zM39.785 5.613h3.254c1.094 0 1.899.213 2.412.604.519.393.777.983.777 1.812 0 .82-.258 1.416-.777 1.819-.514.39-1.318.601-2.412.601h-3.254z'/>\
</g>\
</svg>") no-repeat;
    background-size: contain;
}

#sidebar logo
div.zabbix-logo-sidebar {
    width: 91px;
    height: 24px;
    background: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='91' height='24'>\
<rect x='0' y='0' width='91' height='12' fill='%230057B7'/>\
<rect x='0' y='12' width='91' height='12' fill='%23FFD700'/>\
<path fill='%23fff' d='M3.79 3.559v2.105h10.226L3.53 18.586v1.861h13.88v-2.105H6.674L17.15 5.42V3.559zm22.108 0-.023.064-6.45 16.824h2.606l1.521-4.28h7.413l1.523 4.28h2.572L28.603 3.558zm11.424 0v16.889h6.111c1.891 0 3.367-.422 4.405-1.252 1.04-.834 1.56-2.018 1.56-3.526 0-1.146-.313-2.128-.945-2.894-.586-.73-1.417-1.188-2.436-1.442.809-.188 1.503-.493 1.948-1.06.496-.624.74-1.463.74-2.488 0-1.352-.478-2.401-1.436-3.133-.96-.734-2.316-1.094-4.058-1.094zm15.211 0v16.889h6.111c1.895 0 3.365-.422 4.403-1.252 1.046-.834 1.566-2.018 1.566-3.526 0-1.146-.313-2.127-.95-2.894-.587-.729-1.42-1.188-2.439-1.442.813-.188 1.51-.494 1.955-1.06.496-.624.743-1.462.743-2.488 0-1.352-.49-2.401-1.446-3.133-.96-.734-2.317-1.094-4.054-1.094zm15.477 0v16.889h2.465V3.558zm5.713 0 5.242 7.972-5.904 8.916h2.642l4.585-6.908 4.535 6.908h2.732l-5.898-8.978 5.252-7.91H84.26L80.34 9.47l-3.882-5.911zM27.246 6.168l2.934 7.922h-5.86z'/>\
<g fill='%23d40000'>\
<path d='M54.998 12.486h3.537c1.203 0 2.083.245 2.647.727.556.464.843 1.204.843 2.23.001 1.009-.285 1.75-.843 2.23-.566.474-1.444.721-2.647.721h-3.537zM55.014 5.611h3.254c1.094 0 1.899.213 2.412.604.519.393.777.983.777 1.812 0 .82-.258 1.416-.777 1.819-.514.39-1.318.601-2.412.601h-3.254zM39.785 12.469h3.537c1.203 0 2.083.245 2.647.727.556.464.843 1.204.843 2.23.001 1.009-.285 1.75-.843 2.23-.566.474-1.444.721-2.647.721h-3.537zM39.785 5.613h3.254c1.094 0 1.899.213 2.412.604.519.393.777.983.777 1.812 0 .82-.258 1.416-.777 1.819-.514.39-1.318.601-2.412.601h-3.254z'/>\
</g>\
</svg>") no-repeat;
    background-size: contain;
}

#sidebar compact view
div.zabbix-logo-sidebar-compact {
  width: 24px;
  height: 24px;
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjEyIiBmaWxsPSIjMDA1N0I3Ii8+PHJlY3QgeD0iMCIgeT0iMTIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIxMiIgZmlsbD0iI0ZGRDcwMCIvPjwvc3ZnPg==") no-repeat;
}

r/zabbix 13d ago

Question High CPU usage after upgrade to Zabbix 7.0.27

3 Upvotes

Hello,

After upgrading our monitoring environment to Zabbix 7.0.27 we started experiencing significantly higher CPU utilization on both PHP-FPM and MariaDB

Zabbix Server 7.0.27

MariaDB 10.6.25

PHP-FPM

Large installation with several thousand monitored hosts

item_rtname table contains approximately 1.36 million rows

Has anyone experienced a similar CPU increase after upgrading to Zabbix 7.0.27?


r/zabbix 14d ago

Bug/Issue Grafana + Zabbix "No data" issue & Host variable not populating

2 Upvotes

Hi everyone,

I'm having an issue with Grafana when using the Zabbix data source, and I can't get my dashboard to display data properly.

🔧 Setup:

  • Zabbix server is working fine
  • SNMP is configured and responding (snmpwalk works)
  • Host IP: 192.168.101.235
  • SNMP version: v2c
  • Community: public
  • Data is visible in Zabbix UI

📊 Problem:

In Grafana:

  • Dashboard shows "No data"
  • Variable $Group works
  • Variable $Host is not populating correctly (or returns empty)

⚙️ Variable config:

  • Query Type: Host
  • Group: $Group
  • Host: /.*/
  • Regex:

/.*-(?<text>.*)-(?<value>.*)-.*/

🧪 What I tried:

  • Verified SNMP interface in Zabbix
  • Changed templates
  • Tested connection between Grafana and Zabbix (OK)
  • Removed regex → still not working

❓ Question:

  • Why is the Host variable not showing values?
  • Is my regex wrong?
  • Could it be related to templates or item discovery?

Any help would be really appreciated 🙏


r/zabbix 14d ago

Question HTTP request with active agents

7 Upvotes

The scenario is I have an active agent installed on a remote server. Through power shell I can make API calls to it to the local service, though I'd prefer to try and use Zabbix script item so I don't have to load additional scripts on the system.

I created a script item on the active agent but looking at the output it seems to be instead running on the server, not the active agent. Is it not possible to run scripts on active agents?


r/zabbix 15d ago

Question Simple trigger lines in graph widget not all showing up

3 Upvotes

I monitor temperatures in Zabbix. It's a fairly simple setup and has been working fine so far.

I recently enabled Simple trigger thresholds in a Graph widget to visualize the temperature limits.

I know that a maximum of three trigger lines can be displayed ("A maximum of three triggers can be drawn. Note that the trigger has to be within the drawn range to be visible."). However, I only get two trigger lines.

The Y-axis range includes all threshold values, the graph is large enough, and all triggers are simple triggers (avg() on a single item). The triggers themselves work exactly as expected.

Has anyone seen this before, or is this a known issue with Zabbix 7.4.10?

The triggers are (xxx=anonymized):

Warning
avg(/xxx/kentix.temperature,1h)>28

Average
avg(/xxx/kentix.temperature,1h)>30

High
avg(/xxx/kentix.temperature,15m)>35

Disaster
avg(/xxx/kentix.temperature,15m)>40

tia + regards!


r/zabbix 15d ago

Question vmware monitoring

4 Upvotes

I have an issue, when i apply the vmware official template to my vmware center, it finds all the guests very nicely and adds them the proper name, but whenever there is a problem related to the vcenter itself, it only gives it the placeholder name: #vmware.alarms.entity.name.

how do i resolve this? did i mess something up? could this be a privilage issue for the user i use?

thanks.


r/zabbix 17d ago

Discussion Don't sleep on using Claude for template creation

43 Upvotes

I have to say, after 48 hours of using Claude with the Fable model on high, the template creation abilities are quite amazing.

Had 3 devices with great MIB support, great documentation, but nothing in the libraries. Knocked out new templates for all of them over the last two days (could have done them all in a day if I weren't hitting usage limits). All you have to do is give it the mibs, an snmpwalk, explain the use cases, triggers, trends, etc. Some minor back and forth after showing it what is triggering and how it's working in the real world, and one template after version 17 is production ready.

This includes a ton of LLD, Trigger prototypes, macros, proper secrets handling, regex, dependancies. The whole shebang.

This would have taken weeks hiring a template designer or trying to do it myself.

Has anyone else been using LLM's to create new templates? I would expect a flurry of activity in the https://github.com/zabbix/community-templates/ but doesn't seem like much going on.

If you've been frustrated with an old template or something not doing what you want, try to throw it at the model and see what happens. You might be pleasantly surprised.


r/zabbix 19d ago

Question Zabbix Graph Error

6 Upvotes

I am creating a Dashboard for an Application.

I am using log file monitoring, and it is working fine. I'm at the point where I need to use the items to create a Dashboard. I am using the Graph widget type.

Basically the items work, the. dashoard gets populated, and displays data. But this error also comes up and cover the dashboard.

Looks like a Zabbix Bug, has anyone here dealt with this before? And how did you fix it?

I am running the Zabbix setup as containers in HA mode. Version is 7.4.

See the errors below.

preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated [zabbix.php:17 → require_once() → ZBase->run() → ZBase->processRequest() → CController->run() → Widgets\SvgGraph\Actions\WidgetView->doAction() → Widgets\SvgGraph\Includes\CSvgGraphHelper::get() → CGraphHelper::calculateMetricsDelay() → CGraphHelper::getItemMaxDelay() → preg_match() in include/classes/helpers/CGraphHelper.php:306]

Undefined array key "key_" [zabbix.php:17 → require_once() → ZBase->run() → ZBase->processRequest() → CController->run() → Widgets\SvgGraph\Actions\WidgetView->doAction() → Widgets\SvgGraph\Includes\CSvgGraphHelper::get() → CGraphHelper::calculateMetricsDelay() → CGraphHelper::getItemMaxDelay() in include/classes/helpers/CGraphHelper.php:306]

preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated [zabbix.php:17 → require_once() → ZBase->run() → ZBase->processRequest() → CController->run() → Widgets\SvgGraph\Actions\WidgetView->doAction() → Widgets\SvgGraph\Includes\CSvgGraphHelper::get() → CGraphHelper::calculateMetricsDelay() → CGraphHelper::getItemMaxDelay() → preg_match() in include/classes/helpers/CGraphHelper.php:306]


r/zabbix 21d ago

Question Zabbix Proxy questions

4 Upvotes

We currently run Zabbix at our main site but would like to run Zabbix proxy at a remote site.

Zabbix website has info on installing it but I have a few general questions.

How do you point the proxy server to the Zabbix server? Or do you just add the proxy on the Zabbix server and it pulls the info from it?

Is there any web interface or configuration on the proxy itself?

or do you install a zabbix client at the endpoint, point it to the ip of the proxy, add the host to the main Zabbix server and select the proxy when configuring the host?


r/zabbix 21d ago

Discussion Does it make sense to start with Zabbix 8.0 pre-release in a controlled “half-production” setup?

3 Upvotes

Hi everyone,
I’m planning a fresh Zabbix deployment and I’d like to ask for some practical opinions about using Zabbix 8.0 pre-release in a controlled semi-production setup.
At the moment, I already have a small Zabbix environment running on Zabbix 7.4.11. It originally started as a test system, but over time it became production-like. So far, upgrades from 7.2 to 7.4.11 have been completely smooth for us. Our update cycle is very fast: whenever a new Zabbix release comes out, I usually update shortly after. Because of that, long-term support is not a major requirement for us. We do not stay on old versions for a long time, and we do not rely heavily on vendor support.
The current environment is relatively small: around 224 hosts, around 4,300 items, and about 67 NVPS.
Now I want to build a new Zabbix server next to the current one. The idea is that the new server would initially be a controlled “half-production” or early-adoption system, while the current 7.4.11 server would remain available as a fallback and archive. Once Zabbix 8.0 stable is officially released, the new server would be upgraded to the stable release and then treated as the main production system.
I do not want to migrate historical data. I only plan to export and import the configuration: hosts, templates, host groups, macros, media types, actions, and possibly users or roles if needed. Historical data, trends, old events and problems are not important for this migration.
The planned stack for the new system would be Ubuntu Server 26.04 LTS, Zabbix 8.0 pre-release, PostgreSQL, TimescaleDB, Nginx, and Zabbix Proxy. I also want to start using a proxy as part of this new design and move hosts step by step rather than switching everything at once.
My main question is: does this approach make sense, or would you recommend staying on Zabbix 7.4.11 until Zabbix 8.0 stable is officially released?
I fully understand that pre-release versions are not recommended for critical production use. However, in my specific case, I am not migrating history, the existing 7.4.11 system can remain as a fallback, the environment is small, and we already update Zabbix very frequently after each release. The new server would also be deployed alongside the existing one, not as an immediate replacement on day one.
I would especially appreciate feedback about Zabbix 8.0 pre-release stability, PostgreSQL and TimescaleDB with Zabbix 8.0, Ubuntu 26.04 compatibility, Zabbix Proxy compatibility, importing configuration from 7.4.11 to 8.0, and Agent or Agent2 compatibility between 7.4 and 8.0.
Has anyone tested a similar setup already? Would you consider this a reasonable early-adoption approach, or is it still better to stay on 7.4.11 for now and only move to 8.0 after the stable release?
Thanks in advance for any practical experience or advice.


r/zabbix 28d ago

Discussion 4000 Hosts in Host Groups

7 Upvotes

Hi

How would you manage 4000 Hosts in Host Groups?

My idea was to Group them by Location and tag them by function.

Those hosts are more or less placeholders for a zabbix sender script that pushes some metrics into the item keys of those hosts.

But it clutters the whole host groups page.

Any way to fold it or hide if its too many?


r/zabbix 29d ago

Question Curl output to Zabbix http agent issues Error 403

3 Upvotes

On my Zabbix server from the terminal I can successfully do the following.
curl --location "https://{URL}/v1/units/unit?hostname={host}" --header 'Authorization: API-Key {API-Key}'

Configuring HTTP agent

In the URL field I enter:
https://{URL}/v1/units/unit?hostname={host}

In the Headers section I configure:
Name:
Authorization:
Value:
API-Key {API-Key}

From Zabbix I get error 403 instead of the JSON response expected.

Response code "403" did not match any of the required status codes "200" <html> <head><title>403 Forbidden</title></head> <body> <center><h1>403 Forbidden</h1></center> </body> </html>

Any ideas?
Is there a document somewhere that can help translating curl output to http-agent?

updated after comments correcting the formatting.
I'm leaning toward an issue with the Value: API-Key {API-Key}
Maybe I need to add additional quotes or something. - This didn't help.
I'm attempting to connect to a Ventus VRB device. It's used for remote reboots.


r/zabbix Jun 23 '26

Question Zabbix Grafana Dashboards are really slow for me

12 Upvotes

Helll everyone,

I have 10s of thousands of hosts on Zabbix, I have some Grafana dashboards created to visualize some metrics concerning my hosts. My dashboards take a really long time to display information, considering it has to go through 100s of thousands of items via the Zabbix API (connected as a data source in Grafana) to get the info I need.

What are some ways have you employed to get data to be quickly visualized on your Grafana dashboard, considering the amount of hosts, and items per host that I have?

I was thinking of adding some cache layer between the Zabbix API, and Grafana, but I’m not sure that may be a viable solution as well.

Your responses would be much appreciated!


r/zabbix Jun 23 '26

Question Expression for calculating utilization? Zabbix 7.4.11

5 Upvotes

I have searched and searched. I am trying to show circuit utilization % on a map. Hoping for some help. Any is appreciated. I don't know what I am getting wrong in the expression. Either it doesn't work or it just shows the current speed and doesn't do the division or multiplication.

(300Mbps/10Gbps) * 100 = 3% is what I am trying to show

The ole reliable Google AI tells me to do {?100 * last(/HostName/net.if.out[ifHCOutOctets.InterfaceNumber]) / last(/HostName/net.if.speed[ifHighSpeed.InterfaceNumber])}% but that doesn't work. (Yes I have replaced variables with my hostname and SNMP index for the interface).

Thanks.


r/zabbix Jun 22 '26

Question 1 template but with 2 different poll times?

2 Upvotes

Hello,

We have a this template that polls a certain device which can be on a fast LAN or also 4G, it's set to poll every 2mins, but we want to change this to poll the 4G devices every 10mins due to the data plan they are on.

Is this a case of cloning the template and changing the poll time or can we just maintain 1 template and do something else?

Thanks


r/zabbix Jun 22 '26

Question Zabbix ERD

7 Upvotes

Hi All,

Does anyone have an Entity Relationship Diagram (ERD) or database schema reference for Zabbix 6.4 and 7.x?

For some use cases, I find direct SQL queries more efficient than API calls, especially when correlating hosts, user groups, actions, alerts, media, and permissions.

I’m looking for:
ERD / database relationship diagrams

Table relationship documentation
Common query examples for reporting and auditing
Any guidance on which areas are safe to query directly versus using the API
I understand that direct database updates are not recommended; my intention is read-only reporting and analysis.
Any pointers, documentation links, or community resources would be greatly appreciated.
Thanks!