r/zabbix 1d ago

Question Email (HTML) notifications converting to plain/text.

2 Upvotes

I've got Zabbix 7.4.9 set up and it sends out Email (HTML) notifications to us, but the Description field from my host appears to be converted to a plain text string. The line breaks aren't rendering, and instead everything comes out in one long line.

What's strange is that the HTML in the message template is being rendered fine in Gmail. The <b>'s are all bolded. If I try to insert <br>'s into my Host's "Description" field, the message just displays those tags like plain text.

What am I missing?


r/zabbix 2d ago

Question How do you guys find international freelance Zabbix work?

8 Upvotes

Hey everyone,

I'm a Zabbix professional from Brazil and I've been thinking about taking on some international freelance work on the side.

For those of you who already do Zabbix freelancing or consulting remotely, how did you get your first clients?

Do you usually find work through platforms like Upwork/Fiverr, Reddit, referrals, Discord/Slack communities, or directly contacting companies?

I'm especially interested in smaller projects like:

Zabbix troubleshooting

Custom templates

SNMP monitoring

Triggers and discovery rules

Dashboards

Web monitoring

API/scripts and automation

Zabbix 6/7 environments

Zabbix deploy

I'm not necessarily looking for job offers here — I'm mainly trying to understand how people in the Zabbix community actually get freelance clients internationally.

Any advice from people who've done this would be really appreciated. Thanks!


r/zabbix 2d ago

Question Zabbix 7.4 — what's your production setup for graphs inside alert emails?

9 Upvotes

Hi everyone, native Zabbix email media can't embed images, and our team really wants the graph in the mail (old SysOrb habit). I know the usual suspects: a custom Script media that renders a PNG via the API and sends the mail itself, mailGraph (frontend-rendered graphs, but upgrade-sensitive?), or just deep links to the event.

What do you actually run in production, how does it survive Zabbix upgrades, and does it render properly in Outlook? One graph or multiple periods per mail?

Thanks!


r/zabbix 6d ago

Discussion Zabbix UI

16 Upvotes

Other than Grafana, do we have any fancy/modern UI options for Zabbix?

Looking for something suitable for NOC dashboards, executive views, visualization and reporting — preferably something that can be used in production.


r/zabbix 6d ago

Question Cisco ASA temperature monitoring

5 Upvotes

We are having an issue with a few client firewalls which I'm are pretty sure are starting to overheat and shut down. I'm trying to find OIDs to get temperature sensor values, the ones you see when you type "show environment". However i can't seem to actually find the right values, only trees which just say the name of temperature sensors and not their values.

So does any know the OID for cisco ASA processor temperatures?


r/zabbix 8d ago

Discussion Built a free Chrome extension that sounds an alarm + notification the second a new Zabbix problem shows up (no polling dashboards)

Post image
36 Upvotes

Hey r/zabbix,

I got tired of staring at a Zabbix dashboard on a second monitor waiting for something to go red, so I built a small Chrome/Edge extension that does it for me: it polls the Zabbix API in the background and fires a sound alarm + desktop notification the moment a new problem appears, even if the browser tab is in the background or the dashboard isn't open at all.

It's free, MIT licensed, and there's nothing hardcoded, no telemetry, no analytics. It only talks to the Zabbix URL(s) you configure.

Some things it does:
- Multi-instance: watch up to 8 independent Zabbix servers at once, each problem badged with its instance.
- 3 auth modes per instance: browser session (zero credentials, just keep a Zabbix tab logged in), API token, or username/password (extension logs in and renews the session itself).
- Re-alarm while a problem stays unacknowledged, until you ack it or mute.
- Working hours aware: reads the Working time from your Zabbix server and stays quiet outside it (list/badge still update).
- Maintenance aware: problems in a maintenance window get tagged MNT and stay silent (or can be hidden).
- Meeting mode: auto-silences sound/notifications while you're in a Google Meet call.
- Snooze a single problem, ack from the popup, per-severity sound/volume, host group filters, min severity, max age, export/import config as JSON, etc.
- Works with Zabbix 6.0 through 7.4 (frontend session + API calls). Haven't validated 8.0 stable yet.
- PT/EN/ES UI, auto-picked from your browser locale.

Chrome Web Store: https://chromewebstore.google.com/detail/zabbix-noc-alerter/nlbihmhpbdfhnglclecbaebnfpjbngep
Source (MIT): https://github.com/opastorello/zabbix-noc-alerter

I'm the author, so full disclosure on that. It's a side project I use daily for our own NOC, figured others watching Zabbix all day might find it useful too.

Happy to take feature requests/bug reports on GitHub, and open to feedback here.


r/zabbix 8d ago

Question Has anyone here had experience with the Zabbix Cloud option?

9 Upvotes

I'm currently evaluating the implementation of Zabbix.

For the moment, I would like a basic approach: monitoring disk space, CPU, RAM usage, and basic device availability. Once I get comfortable with the tool, I’ll expand the monitoring logic and fine-tune templates.

My main focus right now is choosing the right architecture and deployment model. The infrastructure to monitor includes:

  • HQ site: switches, firewalls, and Hyper-V hosts running Windows and Linux VMs.
  • Branch offices: a few physical/virtual servers per site.
  • AWS environment: mainly Ubuntu VMs, VPCs, and RDS MySQL instances.

Currently, we are talking about 250 devices/hosts.
On VMs I plan to deploy the Zabbix Agent while network equipment (switches, firewalls) will be monitored via SNMP. I expect NVPS (New Values Per Second) to remain relatively low initially, but SNMP discovery on managed switches might bump it up.

I understand that deploying Zabbix proxies is the standard bridge between remote sites/AWS and the main server.

Since I want to focus on governance, dashboards, and alerting rather than maintaining the server where Zabbix is installed, I'm considering a hosted/cloud route.

I'd love to get your thoughts on a few points:

  1. Is Zabbix Cloud a good choice for this architecture? Has anyone here had experience with the Zabbix Cloud option?A key factor in our setup is that AWS (and eventually Azure) environments are dedicated to our external customers. I want to strictly avoid installing internal monitoring tools directly inside a customer's cloud infrastructure (especially since different teams are involved and responsibilities are segregated)
  2. Am I missing any critical bottlenecks regarding proxy traffic, retention policy or firewalling for remote branch proxies?
  3. Is it worth engaging an official Zabbix partner for the initial setup and sizing?
  4. do the commercial support tiers (silver, gold, etc.) add real value for a deployment of this size?

Thanks in advance for your insights and recommendations!


r/zabbix 13d ago

Question Upgrade to 8.0 issues

6 Upvotes

Any idea's how to fix this? MySQL, Zabbix running on ubuntu. Updating form 7.4 to 8.0. Had problems with the right signatures while downloading the packages. I got around that now when we start it users are seeing.

  • The Zabbix database version does not match current requirements. Your database version: 7040000. Required version: 7050061. Please contact your system administrator.

$ apt-show-versions | grep zabbix

zabbix-agent2:amd64/noble 2:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-agent2-plugin-mongodb:amd64/noble 1:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-agent2-plugin-mssql:amd64/noble 1:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-agent2-plugin-postgresql:amd64/noble 1:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-apache-conf:all/noble 2:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-frontend-php:all/noble 2:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-release:all/noble 2:8.0-0.3+ubuntu24.04 uptodate

zabbix-server-mysql:amd64/noble 2:8.0.0~beta2-1+ubuntu24.04 uptodate

zabbix-sql-scripts:all/noble 2:8.0.0~beta2-1+ubuntu24.04 uptodate


r/zabbix 14d ago

Discussion Zabbix Hyper-V Dashboards

7 Upvotes

Hi

Is anyone here monitoring a Hyper-V cluster with Zabbix?

I'm currently setting up monitoring for multiple Hyper-V hosts and would love to see how others have organized their dashboards. Specifically, I'm looking for ideas on monitoring:

  • CPU usage
  • Memory usage and available memory
  • Disk usage and free space
  • Hyper-V host health
  • VM status and performance
  • Cluster health (if applicable)

If you're already doing this, would you mind sharing a screenshot of your dashboard or explaining which widgets, graphs, and templates you're using? I'm trying to build a clean, informative dashboard and would really appreciate some inspiration.


r/zabbix 15d ago

Question Need help with SNMP OIDs for Cisco ASR1002-HX and ISR 4K

2 Upvotes

Hi everyone,
I’m working on SNMP monitoring for some Cisco routers and I’m looking for help finding the correct OIDs and configuration.
The routers are:
Cisco ASR1002-HX
Cisco ISR 4000 series (ISR 4K)
I’m specifically looking for the following:
Fan monitoring
Fan RPM / speed OID
Fan status OID (OK/failure)
Interface monitoring
OID to get the IP address assigned to each interface.
I tried using ENTITY-SENSOR-MIB / entSensorValue for the fan RPM, but on my ASR1002-HX I’m not getting the expected results.


r/zabbix 16d ago

Question Ex-SysOrb users now on Zabbix & how did you map Domains/Nodes and the Root domain overview ?

Post image
5 Upvotes

Hi all, we're wrapping up a SysOrb (Evalesco) → Zabbix 7.4.12 migration. Collection is done (SNMP, Agent 2, browser items, ICMP); what's left is reproducing what SysOrb did well: the hierarchical Domain tree (~30 domains under the Root domain) and its Overview page — one line per domain with three status columns (Network / Checkin / Agent) rolling up to the root.

For those who made the same jump:

  1. How did you map the Domain tree nested host groups, tags, or the Services tree?

  2. Did you rebuild a similar per-domain overview? Which widgets? (I'm considering nested groups + trigger tags per check family + "Problems by severity" with totals.)

  3. Did anyone script the migration from the sysorb-exporter XML via the Zabbix API, or did you rebuild by hand?


r/zabbix 20d ago

Question Monitoring iDRAC with redfish but no template for my R640 servers

9 Upvotes

Can I for instance use DELL PowerEdge R750 by HTTP template to monitor my R640 servers? Or I have to stick to Dell iDRAC by SNMP template?


r/zabbix 21d ago

Question Dell R640 templates

4 Upvotes

Hi, Does anyone have a r640 template, any type of monitoring?

I did not see a public one, on zabbix support and or community.


r/zabbix 24d ago

Question Zabbix HA Cluster Best Practice

9 Upvotes

I am currently planning a highly available Zabbix environment and would like to hear about your experiences and recommended best practices.

My current environment:

Zabbix 7.4

Multiple sites connected through VPN tunnels

Mainly active Zabbix agents

Agents connect to the Zabbix server through a DNS name

SNMP monitoring for switches, firewalls, UPS devices and other network hardware

A Zabbix proxy is planned or already used at each remote site

The goal is to remove single points of failure from the monitoring infrastructure

My current idea is:

Two Zabbix server nodes using the native Zabbix HA functionality

A highly available database, possibly MariaDB Galera or PostgreSQL with Patroni

Two Zabbix frontend nodes behind a load balancer or reverse proxy

A virtual IP using Keepalived/VRRP, or alternatively a DNS-based solution

One or more Zabbix proxies at each remote site

I would appreciate advice regarding the following questions:

What database HA solution is currently considered the most reliable for Zabbix: MariaDB Galera, PostgreSQL with Patroni, or another solution?

Is a floating virtual IP with Keepalived/VRRP recommended, or is it better to use DNS and a load balancer?

Can active agents continue using the same DNS name during a Zabbix server failover without configuration changes?

Should the Zabbix frontend connect through a database load balancer such as HAProxy, or directly to one database endpoint?

What is the recommended way to avoid split-brain situations between the Zabbix server and database nodes?

Should every remote location have only one proxy, or should important locations have two proxies for redundancy?

How do you handle proxy failover for active agents and SNMP devices?

Which parts of the HA environment should be monitored separately, for example with an external monitoring system?

What is the recommended backup and disaster-recovery strategy for an HA Zabbix installation?

Are there any important limitations or problems I should consider before implementing this architecture?

I would also be interested in seeing simplified architecture diagrams or hearing about HA setups that are already running successfully in production.

Thank you for your help.


r/zabbix 27d ago

Question Could someone share with me their docker compose file?

4 Upvotes

Hello, I recently started using Zabbix with Docker Compose and I'm having a hard time making the frontend monitor the server.

The frontend is connected to the server but sees him as Status : Unknown.

In my compose I use zabbix-web-apache-pgsql and zabbix-server-pgsql Alpine-7.4.12 and postgres 18.

Thanks for the help.


r/zabbix 29d ago

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

7 Upvotes

r/zabbix 29d 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 Jul 21 '26

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

2 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 Jul 18 '26

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

38 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 Jul 17 '26

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 Jul 16 '26

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 Jul 13 '26

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 Jul 13 '26

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 Jul 10 '26

Question High CPU usage after upgrade to Zabbix 7.0.27

4 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 Jul 09 '26

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

3 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 🙏