[ZBXNEXT-8724] Improve confusing error messages when proxy configuration file contains unexpected values Created: 2023 Sep 25  Updated: 2024 Apr 10  Resolved: 2024 Jan 02

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 7.0.0alpha5
Fix Version/s: 7.0.0beta1, 7.0 (plan)

Type: Change Request Priority: Trivial
Reporter: dimir Assignee: dimir
Resolution: Fixed Votes: 0
Labels: configuration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File ZBXNEXT-8724-7.0.0alpha5.patch    
Team: Team A
Team: Team A
Sprint: Sprint 104 (Sep 2023), Sprint 105 (Oct 2023), Sprint 106 (Nov 2023), Sprint 107 (Dec 2023)
Story Points: 1.5

 Description   

I have spent a lot of time on this myself at least twice. I hope this can also help others.

Imagine that you decide to change your proxy from active to passive. Edit proxy configuration file and change the mode.

--- /etc/zabbix/zabbix_proxy.conf.bak   2023-09-25 17:15:56.614060919 +0300
+++ /etc/zabbix/zabbix_proxy.conf       2023-09-25 16:25:56.203630575 +0300

 # 0 == active, 1 == passive
-ProxyMode=0
+ProxyMode=1 

You don't want to change anything else, so you restart your proxy:

$ sbin/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf 
zabbix_proxy [2179126]: Warning: ServerPort parameter is deprecated, please specify port in Server parameter separated by ':' instead

Let's check my server parameters:

$ grep '^Server' /etc/zabbix/zabbix_proxy.conf
Server=127.0.0.1
ServerPort=10052 

OK, let's do exactly as suggested:

$ grep '^Server' /etc/zabbix/zabbix_proxy.conf 
Server=127.0.0.1:10052 

Now try again:

$ sbin/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf
zabbix_proxy [2179169]: ERROR: invalid entry in "Server" configuration parameter: "127.0.0.1:10052"

What? I just did what I was told to!

Finally I realized that Server parameter does not need port when proxy is passive, but it's not clear from the error messages at all.

I propose to add 1 new and change 1 log messages. First, when ServerPort is specified, add this one:

$ sbin/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf
zabbix_proxy [2207881]: ServerPort parameter is deprecated, besides, it is ignored in passive proxy mode

And second, when Server contains port, change existing to:

$ sbin/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf
zabbix_proxy [2208075]: ERROR: unexpected "Server" configuration parameter value "127.0.0.1:10052", in passive mode it can only contain comma-separated list of peers

The patch is really trivial one, attached.



 Comments   
Comment by dimir [ 2023 Dec 05 ]

Fixed in development branch: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Ffeature%2FZBXNEXT-8724-6.5

Comment by dimir [ 2023 Dec 05 ]

PR:

Comment by dimir [ 2023 Dec 22 ]

Overview

This introduced 2 new warning messages and 1 error message that Zabbix proxy produces when starting up.

  • Passive proxy and ServerPort is specified in zabbix_proxy.conf (warning):
    NOTE: ServerPort parameter is ignored for passive proxy and is also deprecated 
  • Active proxy and ServerPort is specified in zabbix_proxy.conf (warning):
    NOTE: ServerPort parameter is deprecated, please specify port in Server parameter (e.g. 127.0.0.1:10052)
  • Passive proxy and invalid Server entry in zabbix_proxy.conf (error):
    unexpected Server parameter <VALUE>; for passive proxy, please specify address or list of comma delimited addresses 

Fixed in





[ZBXNEXT-8357] Proxy housekeeping Created: 2023 Mar 22  Updated: 2024 Apr 10  Resolved: 2023 May 21

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 6.0.14, 6.4.0
Fix Version/s: 6.0.18rc1, 6.4.3rc1, 7.0.0alpha1, 7.0 (plan)

Type: Change Request Priority: Medium
Reporter: Elina Kuzyutkina (Inactive) Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 2
Labels: housekeeper, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
Sub-task
Team: Team A
Team: Team A
Sprint: Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), Sprint 100 (May 2023)
Story Points: 0.5

 Description   

Current proxy houskeeper logic:
Check if we have min(clock) older now-OfflineBufer*1h
If we have -> delete all such data and finish the housekeeping cycle
If we have min(clock) newer now-OfflineBufer*1h we delete 4 housekeepr periods at a time
* provided that this data was transferred to the server (<id from ids table for the proxy_history)

This logic creates a problem when the proxy for some reason receives data from the past. In the most negative case, the database can "grow" to "OfflineBuffer" period of data and never get less (untill truncate proxy_history and ids tables)

We can delete data older than offline buffer first and then checking minclock and deleting 4*Housekeeper period of data. That should be done in one query or at least in one transaction (in case if proxy receive another data from the past - it should be deleted after it is sent to zabbix server)



 Comments   
Comment by Vladislavs Sokurenko [ 2023 May 15 ]

Implemented in 

Comment by Arturs Dancis [ 2023 May 19 ]

Documentation updated:

  • Introduction > What's new in Zabbix (6.0.18, 6.4.3)
  • Installation > Upgrade notes (6.0.18, 6.4.3)
  • Appendixes > Process configuration > Zabbix proxy (6.0, 6.4, 7.0)




[ZBXNEXT-8337] Proxy should be attribute of host interface, not the host Created: 2023 Mar 08  Updated: 2023 Mar 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: 6.2.7, 6.4.0
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Norbert Püschel Assignee: Andris Zeila
Resolution: Unresolved Votes: 0
Labels: interfaces, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Server; Proxy



 Description   

Currently, the proxy settings is attached to the host. But it should be an attribute of the interface. Example: I have an environment, where we also check the reachability of WAN routers. In order to do that form both sides of the connection, we currently need to create two hosts with different proxy settings. But logically it should be one host with two interfaces and different proxies for the interfaces.






[ZBXNEXT-8186] Build zabbix-proxy-sqlite3 docker image without using shared memory for MikroTik Created: 2023 Jan 01  Updated: 2024 Feb 14  Resolved: 2024 Feb 14

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 6.0.12
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Martin Vancl Assignee: Andris Zeila
Resolution: Fixed Votes: 2
Labels: docker, mikrotik, proxy, routeros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

MikroTik RouterOS 7.6


Attachments: PNG File image-2023-11-18-20-58-09-335.png    

 Description   

Mikrotik in version 7 supports Docker. It would be great to run a zabbix proxy on a $79 router.

I tried running "zabbix/zabbix-proxy-sqlite3:alpine-6.0-latest" docker image on router MikroTik hAP ac².

The container starts without any problem but finally crashes with this error:

"zabbix_proxy [2]: cannot create locks: cannot allocate shared memory for locks"

I looked it up, and it's a MikroTik "bug/missing feature": https://forum.mikrotik.com/viewtopic.php?t=178342#p886791

Shared Memory (SHM) is not enabled and (/dev/shm) is missing

Link to the official documentation: https://help.mikrotik.com/docs/display/ROS/Container

Is it possible to create zabbix-proxy-sqlite3 docker image without using shared memory?

 

[mikrotik] > /disk/format-drive 0 file-system=ext4 partition-table=yes label=flashdrive
  formatted: 100%

[mikrotik] > /disk/print
Flags: M, r - RAID-MEMBER; p - PARTITION
Columns: SLOT, MODEL, SERIAL, INTERFACE, NAME, FS, LABEL
#    SLOT        MODEL                  SERIAL                 INTERFACE         NAME   FS    LABEL
0    usb1         USB  SanDisk 3.2Gen1  050.....7bd7  USB 2.10 480Mbps       1 Mp usb1-part1                                                                                                                                                                     disk3  ext4  flashdrive
[mikrotik] > 

[mikrotik] > /interface/veth/add name=veth1 address=10.70.3.2/24 gateway=10.70.3.1
[mikrotik] > /interface/bridge/add name=dockers
[mikrotik] > /ip/address/add address=10.70.3.1/24 interface=dockers
[mikrotik] > /interface/bridge/port add bridge=dockers interface=veth1
[mikrotik] > /ip/firewall/nat/add chain=srcnat action=masquerade src-address=10.70.3.0/24

[mikrotik] > /container/config/set ram-high=32M

[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_HOSTNAME value="mikrotik.example.net"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_SERVER_HOST value="zabbix.example.net"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_TIMEOUT value="15"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_STARTPOLLERS value="2"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_STARTTRAPPERS value="1"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_CONFIGFREQUENCY value="30"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_TLSPSKIDENTITY value="mikrotik.example.net"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_TLSPSKFILE value="/etc/zabbix/zabbix_proxy.psk"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_TLSCONNECT value="psk"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_TLSACCEPT value="psk"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_CACHESIZE value="2M"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_HISTORYCACHESIZE value="4M"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_HISTORYINDEXCACHESIZE value="2M"
[mikrotik] > /container/envs/add name=zabbixproxy_envs key=ZBX_VMWARECACHESIZE value="1M"

[mikrotik] > /container/mounts/add name=zabbixproxy_psk src=disk3/zabbixproxy.psk dst=/etc/zabbix/zabbix_proxy.psk

[mikrotik] > /container/config/set registry-url=https://registry-1.docker.io tmpdir=disk3/pull

[mikrotik] > /container/add remote-image="zabbix/zabbix-proxy-sqlite3:alpine-6.0-latest" interface=veth1 root-dir="disk3/zabbixproxy" mounts=zabbixproxy_psk envlist=zabbixproxy_envs hostname="mikrotik.example.net"

[mikrotik] > /container/print
 0 name="40ecd139-4104-46b4-8daf-05824001ef89" tag="zabbix/zabbix-proxy-sqlite3:alpine-6.0-latest" os="linux" arch="arm" interface=veth1 envlist="zabbixproxy_envs" root-dir=disk3/zabbixproxy
   mounts=zabbixproxy_psk dns="" hostname="mikrotik.example.net" workdir="/var/lib/zabbix" logging=yes status=stopped
[mikrotik] > 
 

 



 Comments   
Comment by Jay Motetris [ 2023 Feb 12 ]

The WISP industry would love Zabbix-Proxy to be able to run in Mikrotik Container.  I get the same error when running the container - 

"zabbix_proxy [2]: cannot create locks: cannot allocate shared memory for locks"

Comment by Martin Vancl [ 2023 Nov 18 ]

I have great news!

Running zabbix proxy 6.0.1 without encryption on MikroTik hAP ac²:

I have problem with new images, so I used 6.0.1. I have problem with encryption too.

/disk/format-drive 0 file-system=ext4 partition-table=yes label=flashdrive
/disk/print
Flags: B - BLOCK-DEVICE; M - MOUNTED; p - PARTITION
Columns: SLOT, MODEL, SERIAL, INTERFACE, SIZE, FREE, FS
#     SLOT        MODEL                SERIAL          INTERFACE                   SIZE            FREE  FS  
0 B   usb1        USB SanDisk 3.2Gen1  05019xxxxx7bd7  USB 2.10 480Mbps  15 376 318 464                 
1 BMp usb1-part1  @512-15'376'318'464                                    15 376 317 952  15 187 513 344  ext4

/interface/veth/add name=veth1 address=10.70.3.2/24 gateway=10.70.3.1
/interface/bridge/add name=dockers
/ip/address/add address=10.70.3.1/24 interface=dockers
/interface/bridge/port add bridge=dockers interface=veth1
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=10.70.3.0/24

/container/envs/add name=zabbixproxy_envs key=ZBX_HOSTNAME value="mikrotik.test.cz"
/container/envs/add name=zabbixproxy_envs key=ZBX_SERVER_HOST value="zabbix.test.net"
/container/envs/add name=zabbixproxy_envs key=ZBX_TIMEOUT value="15"
/container/envs/add name=zabbixproxy_envs key=ZBX_STARTPOLLERS value="2"
/container/envs/add name=zabbixproxy_envs key=ZBX_STARTTRAPPERS value="1"
/container/envs/add name=zabbixproxy_envs key=ZBX_CONFIGFREQUENCY value="30"
/container/envs/add name=zabbixproxy_envs key=ZBX_CACHESIZE value="2M"
/container/envs/add name=zabbixproxy_envs key=ZBX_HISTORYCACHESIZE value="4M"
/container/envs/add name=zabbixproxy_envs key=ZBX_HISTORYINDEXCACHESIZE value="2M"
/container/envs/add name=zabbixproxy_envs key=ZBX_VMWARECACHESIZE value="1M"

/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk3/pull
/container/config/set ram-high=32M

/container/add remote-image="zabbix/zabbix-proxy-sqlite3:alpine-6.0.1" interface=veth1 root-dir="disk3/zabbixproxy" envlist=zabbixproxy_envs hostname="mikrotik.test.cz" logging=yes status=stopped
/container/set 0 logging=yes
/container/start 0
Comment by Martin Vancl [ 2024 Feb 14 ]

I tried it yesterday and it works on RouterOS 7.13.4.





[ZBXNEXT-7709] IETF QUIC protocol for Server/Proxy/Agent communication Created: 2022 May 12  Updated: 2022 May 12

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Edgar Akhmetshin Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Agent, IETF, PROXY, QUIC, Server, communication
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Just and idea for:

  • Reduce latency (distributed networks, more precise data gathering timing for complex triggers formula, etc...)
  • Less data
  • Reduce "chatty" behaviour for SD-WAN networks





[ZBXNEXT-7558] Better evidence/notification of Zabbix Proxy failure linked to hosts Created: 2022 Mar 17  Updated: 2022 Mar 23

Status: Confirmed
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Proxy (P)
Affects Version/s: 6.0.2
Fix Version/s: None

Type: Change Request Priority: Medium
Reporter: Dimitri Bellini Assignee: Valdis Murzins
Resolution: Unresolved Votes: 3
Labels: alerts, frontend, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File conf_hosts_assigned_to_proxy.jpg     JPEG File host_wihtout_data.jpg     PNG File image-2022-03-23-13-17-42-931.png    

 Description   

I know we have a dedicated Web Page called Administration->Proxy in which we can find a lot of good information of the Proxies state but nothing is correlated to the linked host...

My yesterday real use case... A customer show me an host without any kind of "Item Errors" and without "Availability" errors,so no highlights of a possible failure but the "latest page" showed all the items without values from few days...
So I have start to dig around with "Item test" and we receive a "Timeout error" but why no errors on Configuration->Items page?
Why the Host Availability icons was all "blank"?
After 10 minutes I have discovered that this host is assigned to a Proxy... and looking to Administration->Proxy page I seen that "Last access" was 2 days ago....

I know it's to find a fix and create a trigger based on "fuzzytime" or in some other ways but I would like to point the Dev Team to this consideration.
At the moment Zabbix is not only used by Opensource Geeks or Zabbix enthusiast but we are growing very fast also on Big Enterprise companies or we install Zabbix to "payed customers".
This kind of customers would like to see more "out-of-the-box" strong self healing systems and put efforts on their business and not to check all the Zabbix Server Internal/components status.

I would like to suggest to implement some default "Availability trigger" inside the official "Template Zabbix App Proxy" and more "visible" evidence of a Proxy fault on Monitoring->Hosts and Configuration-Hosts page. At the moment is NOT easy to understand if the underlying proxy in healthy state or not...

Thanks so much



 Comments   
Comment by Shane Arnold [ 2022 Mar 23 ]

fuzzytime is exactly how I addressed this, but I second the idea of this being visible in frontend as a built-in check.





[ZBXNEXT-6181] Zabbix Proxy should drop SQLite Database, if a version mismatch or error occurs. Created: 2020 Sep 03  Updated: 2024 Apr 10  Resolved: 2022 Sep 12

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 5.0.3
Fix Version/s: 6.4.0alpha1, 6.4 (plan)

Type: New Feature Request Priority: High
Reporter: Marco Hofmann Assignee: Sergey Simonenko (Inactive)
Resolution: Fixed Votes: 6
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian 10 Buster amd64
Zabbix 5.0.3


Issue Links:
Duplicate
is duplicated by ZBX-8307 zabbix proxy sqlite / db upgrade 2.0 ... Closed
is duplicated by ZBX-10669 proxy sqlite db upgrade is actually n... Closed
Team: Team B
Team: Team B
Sprint: Sprint 91 (Aug 2022), Sprint 92 (Sep 2022)
Story Points: 1

 Description   

Zabbix proxy with SQLite does not support Database upgrade, if a major version upgrade occurs. 4.2 - 4.4 - 5.0. That is normal and expected, see the docs:--

https://www.zabbix.com/documentation/current/manual/installation/upgrade/packages/debian_ubuntu

To enhance the administrative experience, Zabbix Proxy should be able to drop/remove the SQLite DB file, as soon as a version mismatch gets detected. Zabbix proxy is already able to detect this mismatch. The file becomes obsolete as soon as the version mismatch is happening.

Instead of the admin manually deleting that file, Zabbix proxy should do that.

There was also a proposal in the Telegram group, that Zabbix Proxy should also delete the SQLite DB file, as soon as it detects other problems besides a version mismatch. That could be a further enhancement.



 Comments   
Comment by Ronald Rood [ 2020 Sep 03 ]

Since there are no recoveries possible on the sqlite file when there is a problem, I do think it should be deleted and re-created when any problem with it occurs. It is always better to have a running proxy then one that is complaining about a corrupt or out of version proxy database.
We are not always in control of the machines running the proxies so sometimes those boxes/vm's get terminated a bit database unfriendly. An Oracle/postgres database can handle that, sqlite not.

So thanks for creating this zbxnext, I really hope that a re-create of the database will be done on any problem.

<ssimonenko>: Hi, Ronald! We have implemented the functionality to drop outdated SQLite3 database. You might test latest master.

Comment by Sergey Simonenko (Inactive) [ 2022 Sep 06 ]

Available in versions:

Comment by Ronald Rood [ 2022 Sep 06 ]

Thanks!

Comment by Marco Hofmann [ 2022 Sep 06 ]

Thank you so much ssimonenko for implementing this feature request!

Comment by Natalija Burisina (Inactive) [ 2022 Sep 08 ]

Documentation updated:

Comment by Sergey Simonenko (Inactive) [ 2022 Sep 12 ]

Thank you for kind words, starko.





[ZBXNEXT-6144] Zabbix Proxy history handling without 'history on disk' priority Created: 2020 Aug 19  Updated: 2024 Apr 10  Resolved: 2024 Feb 28

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 3.0.31, 4.0.24rc2, 5.0.3rc2, 5.2.0alpha1
Fix Version/s: 7.0.0alpha3, 7.0 (plan)

Type: Change Request Priority: Trivial
Reporter: Edgar Akhmetshin Assignee: Andris Zeila
Resolution: Fixed Votes: 9
Labels: MySQL, Oracle, PROXY, PostgreSQL, partitioning
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Attachments: PNG File Screenshot 2022-06-24 at 20.45.54.png     PNG File image-2023-07-12-13-06-47-681.png     PNG File screenshot-1.png    
Issue Links:
Causes
causes ZBX-23896 Proxy complaining about unexpected fi... Closed
Duplicate
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-8568 Update template to support changes Change Request (Sub-task) Closed Denis Rasikhov  
Epic Link: Zabbix 7.0
Team: Team A
Team: Team A
Sprint: Sprint 100 (May 2023), Sprint 101 (Jun 2023), Sprint 102 (Jul 2023), Sprint 103 (Aug 2023), Sprint 104 (Sep 2023), Sprint 105 (Oct 2023), Sprint 106 (Nov 2023)
Story Points: 10

 Description   

Current Proxies clones Server behaviour:

  • get value in buffer
  • store value in database
  • read value
  • sync value
  • delete value

The problem:

  • DELETE .. IN () .. - happens with a housekeeper - making proxy stuck on receiving new values;

Feature request:

  • get value in cache;
  • sync value;
  • drop value from cache if sync is successful;
  • store value if sync failed up to offline buffer max;
  • store value if online buffer is activated;
  • backlog sync on network recovery with further drop of the database partitions used to store backlog;

Or even simplier - dump json files which can be uploaded back and removed as needed for offline buffer.



 Comments   
Comment by Vladislavs Sokurenko [ 2020 Aug 20 ]

It is not related to housekeeping but receiving of new configuration where lots of items got deleted:

delete from items where (itemid in (4445395,4445396,4445397,4445398,4445399,4445401,4445402,4445403,4445404,4445405,4445406,4445407,4445408,4445409,4445410,4445411,4

Could you please provide more information on what is happening, are you trying to remove lots of items from Zabbix proxy ?

Perhaps bulk deletion should be implemented to avoid huge queries.

Could be caused by ZBX-13266, see recommended limits

Comment by Vladislavs Sokurenko [ 2023 Apr 25 ]

What kind of queries are slow ?

Comment by Vladislavs Sokurenko [ 2023 Jul 14 ]

Implemented in:

  • 7.0.0alpha3 (master) 55d41231c96
  • pre-7.0.0beta2 22783668d31, 9f0d95d1f12
Comment by Martins Valkovskis [ 2023 Jul 19 ]

Updated documentation:

Comment by LivreAcesso.Pro [ 2023 Jul 31 ]

Please, backport this to 6.0.x versions.





[ZBXNEXT-6039] Add support of proxy authentication in Webhook mediatypes Created: 2020 Jun 30  Updated: 2020 Jun 30

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: None
Affects Version/s: 4.0.21, 5.0.0, 5.0.1, 5.2.0alpha1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Vjaceslavs Bogdanovs Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: authentication, proxy, webhook
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently, there is no support of proxy authentication in Webhook media types. There should be an option to specify authentication credentials (https://curl.haxx.se/libcurl/c/CURLOPT_PROXYUSERPWD.html).






[ZBXNEXT-5911] Automatically distribute hosts between proxies Created: 2020 Apr 23  Updated: 2024 Apr 18

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Alexey Pustovalov Assignee: Valdis Murzins
Resolution: Unresolved Votes: 92
Labels: backup, cloud, load, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File zabbix multi dc example.jpg    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-2963 Running a "federated cloud" of Zabbix... Open
is duplicated by ZBXNEXT-6473 Automated redistribution of hosts to ... Closed
is duplicated by ZBX-23416 Proxy logs 'cannot find requested PSL... Closed

 Description   

It would be great to have an action for unavailable proxies to switch hosts monitored by these proxies to other proxies.

For example:
1. ProxyA is not available;
2. Zabbix knows that fact;
3. Execute some action to choose another proxy for hosts monitored by proxyA
3.1. Distribute these hosts between multiple proxies (for example, using dynamic calculated max nvps per proxy)
3.2. Switch all hosts from ProxyA to one different proxy
4. When ProxyA became available, choose behaviour:
4.1. Switch hosts back
4.2. Using sticky policy - leave hosts on current proxy
5. Groups for proxies, like, it is possible to choose "backup" proxy only from dedicated group.
6. Weight of proxies to choose the best one, for example, with minimal load.

In this case we can say the proxy after it became available, your hosts currently under monitoring by different proxy(ies) - remove your historical data if you have something to send.

The feature could be very useful in Cloud environments along with proxies auto-registration.



 Comments   
Comment by Aigars Kadikis [ 2020 Apr 24 ]

This is good for SNMP polling and agent passive checks. What about Zabbix agent active checks and agent-autoregistration?

Comment by Glebs Ivanovskis [ 2020 Apr 25 ]

Sounds a bit like ZBXNEXT-2963. Zabbix proxy is often advertised as a way to do "distributed monitoring", but it is not really a distributed system if you need a human in the loop to do "distributing". I would replace "proxy" in the Description with "Zabbix server node".

Comment by user185953 [ 2023 Jun 09 ]

I wish a proxy could also signal the server "I am going down, please assign my work to somebody else" so there is no gap in my data.
Then I can shut proxies down for maintenance without reconfiguring Zabbix first and that will be help even on smaller installations.

PS: I suggest changing

we can say the proxy after it became available: Your hosts currently under monitoring by different proxy(ies) - remove your historical data if you have something to send.

to

Your hosts are monitored by different proxy(ies) since 2023-06-09T07:35:50.000Z - please send whatever you have up to this date, but you may forget the rest.

 

Comment by Julien Leboeuf [ 2023 Jun 20 ]

Actually, it is already possible to achieve automatic failover from one proxy to another, but you need something like an haproxy between agent and proxies (I use that method since 6/7 years).

The drawback is that you no longer have any control on which proxy you want for your host, it's haproxy that chooses it for you – you can change it from zabbix UI but it will change back after a short while.

And, it only works with hosts with zabbix-agent (and active checks)

 

Anyway, I look forward to the future native failover function

Comment by Nathan Liefting [ 2023 Oct 05 ]

6. Weight of proxies to choose the best one, for example, with minimal load.

One thing to keep in mind is that proxies might be in different (further away) location, but still be part of the same pool. It should be possible to add our own weight as well, so we can state which proxies out of the pool to prefer. This is to keep things like timeout settings to a minimum per proxy.

This will be important for performance and maintenance/upkeep cost.

Comment by atpk [ 2023 Oct 18 ]

Hi, I would like to add some of my inputs/design ideas for this proxy ha feature:

1) Unlike the server ha behaviour (server processes started upon timeout/failover), the proxy processes should always run in all proxy servers of the pool.

2) The agents should always be in active mode and send data to all proxies.

3) The primary proxy must be determined by zabbix server (do whatever logic needed here for electing proxy from pool). Only primary proxy should send collected data to zabbix server, standby proxies should discard received data. LLDs and passive checks should be run by the primary proxy server elected by zabbix server. Active check refreshes will also needs to be handled by primary proxy elected by zabbix server.

4) Zabbix server (frontend) should have option to define timeout for electing new proxy from the pool (example: 10 seconds). All the proxy servers in the pool should store defined timeout old data (example: only discard data older than 10 seconds) and forward this data to zabbix server when it becomes primary proxy. This is to ensure no data loss.

5) For multi DC environments, the zabbix server (frontend) should have an option for defining proxy pools/groups for each DC environment.

6) The frontend needs relevant changes like support for multi DC environments. There should be a facility to segregate and display hosts based on DC environments (do not club all hosts in all environments into one single view). The problems view should be equipped with relevant DC filters as well.

I believe this makes a true proxy ha. Please improvise/add more detail if you feel I missed something.

Comment by Alexei Vladishev [ 2023 Nov 16 ]

We are very close to the final design of Proxy HA and load balancing. There are just a few minor technical issues that need to be resolved before v1.0 of the document. We need approximately a week to finalise the design. I will share it here once ready so we all can get a better understanding how it will work. And of course any feedback is highly appreciated!

Comment by Dimitri Bellini [ 2023 Nov 16 ]

@Alexei Great news! I will check it as soon as you will publish the first draft
Thanks os much

Comment by krishan [ 2023 Dec 17 ]

@Alexei by when this feature is planned to be made live in alpha release

Comment by Alexei Vladishev [ 2023 Dec 18 ]

[email protected] , it will be ready when it is ready, then we will release it in one of the alpha releases. The design is about to be finalized now and I think that the functionality will be ready for test use in mid-February.

Comment by songxwn [ 2024 Feb 08 ]

Looking forward to the launch of this feature

Comment by songxwn [ 2024 Mar 23 ]

May I ask which specific version implements it?

Comment by Alexei Vladishev [ 2024 Mar 25 ]

songxwn, It is coming in 7.0.0. First preview of this functionality will likely be available in 7.0.0beta3.

Comment by Jaroslav Vrbicky [ 2024 Apr 18 ]

Looks like it is not mentioned in 7.0.0beta3 release notes. What's the current status, please ?

Comment by Alexei Vladishev [ 2024 Apr 18 ]

jvrbicky , this functionality is coming in 7.0.0RC1, most likely at the very beginning of May. 

Comment by Dimitri Bellini [ 2024 Apr 18 ]

Great news, Thanks Alexei!





[ZBXNEXT-5882] New proxy auto-registration Created: 2020 Apr 08  Updated: 2020 Apr 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Alexey Pustovalov Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 11
Labels: autodiscovery, autoregistration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Zabbix has great feature which allows active Zabbix agents automatic registration and monitoring. It would be great to have the same feature for Zabbix proxies. It can simplify life for cloud environments monitoring.






[ZBXNEXT-5777] Ability to switch (on/off) preprocessing by Zabbix Proxy Created: 2020 Feb 25  Updated: 2024 Apr 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 4.2.8, 4.4.6, 5.0.0alpha2
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Alexander Khudushin Assignee: Andris Zeila
Resolution: Unresolved Votes: 7
Labels: preprocessing, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File feature_req.PNG    
Issue Links:
Sub-task

 Description   

Target

  1. Offload Zabbix Proxy running within a slow hardware.
  2. Ease custom proxy development on top of server-proxy data exchange protocol.

Solution

  1. Add preprocessing switch into proxy configuration tab (see attachment).
  2. Turn it on by default (for backwards compatibility).


 Comments   
Comment by dimir [ 2021 Nov 05 ]

I suppose if turned off on proxy the pre-processing should happen on server.

Comment by dimir [ 2024 Feb 15 ]

This could work like this. The values are sent with a new "preprocessed" flag with possible values yes/no. Yes, this means a change in communication protocol.

In the frontend, proxy configuration there will be a "checkbox" showing where should the preprocessing be taking place: server or proxy.

Normal operation

When a proxy or server needs to decide if it should preprocess the collected value or not it follows the logic:

Proxy:

  • if "checkbox" set to "proxy"
    • preprocess and set "preprocessed=yes"
  • otherwise
    • set "preprocessed=no"

Server:

  • if item value has "preprocessed=no"
    • preprocess
  • otherwise
    • do not preprocess

As you can see server does not even care about the "checkbox" state.

When the "switch" is toggled

This is a tricky case and there might be a situation when a party (server or proxy) needs to preprocess but hasn't the preprocessing rules in cache yet.

Proxy:

  • if "checkbox" set to "proxy" and item has preprocessing rules (cached)
    • preprocess
  • otherwise
    • skip preprocessing

Server:

  • if item value has "preprocessed=no" and item has preprocessing rules (cached)
    • preprocess
  • otherwise
    • skip preprocessing

For server, optionally it could pick up the missing preprocessing rules from the database on demand. This way, even if proxy "forgot" to do it (because of the recent switch) server will perform the job for it. The downside is that this is too much work with potential problems (quoting wiper). And to me, with little benefit.

I believe there is a very rare case when someone starts toggling the switch in a production environment and if still this is the case it is expected to have a couple of unpreprocessed values. We can document this "side effect" of "switching" and user can survive with 1 or 2 unpreprocessed values (rather possible 1, thinking of "instant" config sync in 7.0).

To be decided for server: pick up not cached yet tasks on demand or leave values unpreprocessed





[ZBXNEXT-5334] Huge memory use on proxy docker container restart Created: 2019 Jul 25  Updated: 2019 Dec 09  Resolved: 2019 Dec 09

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 4.2.4
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Outscale Monitoring Team Assignee: Andris Zeila
Resolution: Duplicate Votes: 0
Labels: docker, meory, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Centos7


Issue Links:
Duplicate
duplicates ZBX-9084 Zabbix Proxy allocates more memory th... Closed

 Description   

Hello,

When you create a container using this image: zabbix-proxy-sqlite3:centos-4.2.4 and you want to restart the container. Each process of the zabbix_proxy use 1% of the memory and we can reach 6Go used whereas on the fist launch it use 2Go approximately.

Environnement:

Docker:
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:03 2018
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:29 2018
OS/Arch: linux/amd64
Experimental: false

Environnement variables (/etc/zabbix/docker/env.list):

ZBX_HOSTNAME=zabbix-proxy
ZBX_SERVER_HOST=XXX.XX.XX.XXX
ZBX_TIMEOUT=30
ZBX_CACHESIZE=1G
ZBX_SERVER_PORT=10051
ZBX_HISTORYCACHESIZE=300M
ZBX_HISTORYINDEXCACHESIZE=1G
ZBX_STARTDBSYNCERS=10
ZBX_STARTDISCOVERERS=10
ZBX_CONFIGFREQUENCY=1200
ZBX_LOGSLOWQUERIES=3000
ZBX_STARTTRAPPERS=20
ZBX_STARTPOLLERS=10
ZBX_STARTPOLLERSUNREACHABLE=10
ZBX_STARTPINGERS=10
ZBX_TLSCONNECT=psk
ZBX_TLSPSKFILE=zabbix_proxy.psk
ZBX_TLSPSKIDENTITY=PSK

Command to start the container:

Unable to find source-code formatter for language: bash. Available languages are: actionscript, html, java, javascript, none, sql, xhtml, xml/usr/bin/docker run --log-driver syslog --log-opt syslog-address=udp://127.0.0.1:514 --log-opt tag={{.DaemonName}}-{{.Name}}-{{.ID}} --name zabbix-proxy --mount type=tmpfs,destination=/var/lib/database,tmpfs-mode=777 --env-file /etc/zabbix/docker/env.list -p 10051:10051 -v /etc/zabbix/docker:/var/lib/zabbix/enc zabbix/zabbix-proxy-sqlite3:centos-4.2.4

When I want to restart the container with the command below:
docker restart zabbix-proxy

The zabbix_proxy processes use too much memory and the container is OOM kill (approx: 4Go used instead of 2Go on the first launch)

The problem doesn't appear when I use the option "--rm" in the docker run command line.

I have also try with docker-compose. No problem with the "docker-compose up -d" and the "docker-compose down" and  "docker-compose up -d" but the problem is identical with "docker-compose up -d" and "docker-compose restart".

I think the zabbix_proxy doesn't clean correctly its memory.

Thanks



 Comments   
Comment by Vladislavs Sokurenko [ 2019 Dec 09 ]

Thank you for your report, this will be fixed under ZBX-9084





[ZBXNEXT-5106] Make "proxy" stand out more in frontend Created: 2019 Mar 13  Updated: 2019 Mar 13

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
Affects Version/s: 4.0.5
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Frank Assignee: Valdis Murzins
Resolution: Unresolved Votes: 0
Labels: proxy, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In some of the frontend pages the proxy name could be made more clear. For instance, by making it a label (like the tags on the problem page).

Pages:

  • Administration > Queue (Column Host)
  • Configuration > Hosts  (editing a host, in the navbar beside Enabled | ZBX Agent status, etc)





[ZBXNEXT-5075] Cached data processing order Created: 2019 Feb 27  Updated: 2020 Dec 03

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Arturs Lontons Assignee: Andris Zeila
Resolution: Unresolved Votes: 2
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sub-task

 Description   

Currently, in a situation when a connection is restored between Zabbix server and a Zabbix proxy, the Server starts processing the data that has been received from the Proxy beginning with the oldest data and eventually catching up to the latest data.

There are some situations, when it is critical to avoid monitoring delays that are caused by the Server processing the older data first – actual data should be processed and displayed ASAP, especially when we have sensitive triggers using last() function.



 Comments   
Comment by richlv [ 2019 Feb 27 ]

That seems to be a link to a customer issue, not accessible for the general public.

Comment by Glebs Ivanovskis [ 2019 Feb 27 ]

Zabbix triggers aren't stateless, you cannot process item values out of order without side effects.

  1. There is {TRIGGER.VALUE} macro and Recovery expression, you can't calculate trigger value at time t without knowing its value at time t-1.
  2. There are trigger dependencies. Dependent trigger shouldn't be calculated at all if a more important trigger is in PROBLEM state.
  3. There are trigger tags and correlation.
Comment by Oleksii Zagorskyi [ 2019 Feb 28 ]

It's similar to ZBXNEXT-2168
And closed as won't fix ZBXNEXT-409

Comment by Тимур Алишерович Нормурадов [ 2019 Feb 28 ]

@Gleb Ivanovskis

I agree that there will be errors in the processing logic of the triggers.
If we set priorities between errors in logic and the actual status of the enterprise system that we are monitoring, the choice is obvious.

I think every user of the ENTERPRISE MONITORING SYSTEM ZABBIX wants to see immediately the current status of the monitoring object, and the metrics that are calculated from the historical data always wait.

We have a big installation of Zabbix and we lose a lot of time to stop the Zabbix server, start and get relevant information when setting up the system or updating. On average, this is 2-3 hours, which is unacceptable for the ENTERPRISE SYSTEM.

Comment by Andris Zeila [ 2019 Feb 28 ]

It certainly cannot be an universal solution, because it depends on what's being monitored and how. Log monitoring can be really messed up if the data are not sent in historical order.

For example user wants to detect service state by monitoring service up/down records in a log file. If service went down for some time and the values are sent in reverse order, then Zabbix would first receive 'service up' log record, do nothing (as the service was already up), then receive 'service down' log record and generate a problem, which would not go away until the service goes down/up again.

Comment by richlv [ 2019 Feb 28 ]

What Glebs and Andris said is a very big hurdle to change this. Event generation (even without the recovery expression) is the first and probably the biggest problem.
If somebody does not have triggers, things become much easier, of course. Perhaps Zabbix could stuff the most recent value somewhere and recalculate delayed events once proxy data is up to date, but that seems way too overcomplicated.

A variation of it could be taking the last n minutes of data from proxies that are behind, and then ingesting the historical values. For historical values, the only events that would be processed would be problem events that would still be active based on more recent data. Still, complicated, and historical data in the end might not match events.

Timur, do you have concrete/specific suggestions on how to resolve this? If your proxies are hours behind, do you care about historical events - or even data?

Comment by Andris Mednis [ 2019 Feb 28 ]

For log-items there is a maxdelay parameter, which can be used to skip over old data (ignore them) to get sooner to the current data.

Maybe it could be generalized to other situations to give a user ability to choose between impatiently waiting while server catches up and skipping the old data in favour of actual data? E.g. "take only last 5 min of data". Obviously, disabled by default, but available if user decides so.

Comment by Glebs Ivanovskis [ 2019 Feb 28 ]

I agree that there will be errors in the processing logic of the triggers.
If we set priorities between errors in logic and the actual status of the enterprise system that we are monitoring, the choice is obvious.

Potentially wrong results now or correct results a bit later? Hm, I'd probably wait.


We have a big installation of Zabbix and we lose a lot of time to stop the Zabbix server, start and get relevant information when setting up the system or updating.

It is difficult to give you advice without knowing your setup and your priorities. Is it so slow because of poor DB performance? Is it slow because of complex triggers? Do you care about loosing some outdated data?

Comment by Тимур Алишерович Нормурадов [ 2019 Mar 01 ]

Of course you need to consider different types of data separately.
How do I present this decision:

Numeric.
Actual data from the proxy server comes as a priority. If we did not have an hour of availability, we form first of all the actual data sending. In based, triggers based on numeric metrics are the state status of the component and are tied to the last function, so there should be no logic errors. Triggers and aitems that use historical data will be in the "unsupported" state until all data is available for calculation. Analyzing the situation on the example of the agent status, we see that the availability trigger will immediately become active and disappear before the actual data arrives. This message misleads administrators until the actual data is received and processed by the trigger. These triggers, which show the status of industrial software, also show incorrect status, which destroys the credibility of the monitoring system.

Text.
Text data can be processed in order, because basically information from log files is additional to the status of the service. Although it is also possible to come up with mechanisms for obtaining relevant data first.

There is another idea that requires additional thought.
Process triggers on Proxy servers, thus we will unload Zabbix-Server, Zabbix-Server will synchronize information between Proxy servers and perform global correlation. If we follow this path, then at the start of Zabbix-Server Proxy servers will immediately throw off the list of current triggers, and load buffered data in the background.

Comment by Ilya Kruchinin [ 2019 Mar 07 ]

Oh no.

Totally disagree that "numeric" data can be processed out-of-order.

Most of my triggers for "numeric" data use "avg", last(1)-last(N), or "forecast" functions.

Knowing the latest values without knowing the preceding ones will break the trigger evaluation.

Comment by Тимур Алишерович Нормурадов [ 2019 Mar 12 ]

If we calculate the average value for 3 minutes, Zabbix will wait for these three values and calculate. Also with other triggers

In this case, we will get close to the actual status. What are we going to mislead their users old data





[ZBXNEXT-4998] Make ZBX_TASK_UPDATE_FREQUENCY configurable Created: 2019 Feb 01  Updated: 2023 Nov 17

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 4.0.4rc2
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Andris Mednis Assignee: Andris Zeila
Resolution: Unresolved Votes: 14
Labels: configuration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File TaskUpdateFrequency.patch    
Issue Links:
Duplicate
is duplicated by ZBX-18958 huge network sessions for proxy Closed

 Description   

Currently 3 parameters for active proxy are configurable:

  • HeartbeatFrequency,
  • ConfigFrequency,
  • DataSenderFrequency.

However the 4th parameter, internally named ZBX_TASK_UPDATE_FREQUENCY, is hardcoded to 1 sec and cannot be configured by user.

This results in connections from proxy every second, which might not be desirable for all users.
Initially this issue was raised in ZBX-15442.



 Comments   
Comment by Jacek Konieczny [ 2020 Jul 08 ]

I am one of the users. Proxy making a TCP connection to the server every second is very undesirable for me.

I am trying to use Zabbix to monitor a battery-powered Raspberry-pi device in a remote location. The plan was to have a proxy and an agent running on the device, so the proxy would gather data over some time and then connect to the Zabbix server to upload that.  Uploading once every 10 minutes or even once an hour would be enough. Sometimes the connection could be unavailable for days, still ok, as long as the proxy can buffer the data.

Unfortunately currently Zabbix proxy would make a new TCP connection to the server every second, keeping my expensive LTE connection always-on. Not even sending or receiving any useful data!

Comment by Thomas [ 2022 Nov 01 ]

We also have this problem. We have metered connections over satellite (Inmarsat) to all of our customer sites.

Sending every second a keep alive is really unnecessary and causing unwanted traffic. For LAN connections it does not matter, but over costly satellite links it does.

We need the possibility to adjust this value again. Please add it back.

Best regards

Thomas

 

Comment by Vladislavs Sokurenko [ 2022 Nov 03 ]

It could be better if active proxy would keep persistent connection to Zabbix server and Zabbix server would notify Zabbix proxy only when it actually needs to check task.

wiper: It would need to be optional. There might be thousands of proxies.

Comment by Jacek konieczny [ 2022 Nov 03 ]

It could be better if active proxy would keep persistent connection to Zabbix server and Zabbix server would notify Zabbix proxy only when it actually needs to check task.

Not really better for the scenarios of remote monitoring via unreliable/expensive link, that we are talking about here. Zabbix proxy is great for this purpose as it can cache gathered data for long time and send it only in configured (long) intervals and when the link is available. Making connections every half or every few hours for sending batch of data will be cheaper and more reliable than trying to keep a long-running connection alive.

Comment by Thomas [ 2022 Nov 14 ]

I have done further tests now and got some statistics via netflow.

We are a shipping company and monitor the IT on container ships over satellite link. The links are very expensive.

Traffic from Server to the proxy is about 20 MB in 24 hours. Traffic from Proxy is about 30 MB in 24 hours. This will be around 1.5GB traffic per month.

We really need to lower the interval in order to go forward with the rollout of Zabbix.

wiper, can you point me in a direction in the source code to increase the second interval?

I have read already trough datasender.c but it is not clear for me where the heartbeat is created.

Maybe it is possible to insert a sleep somewhere as a workaround?

Is there any chance that this feature gets implemented again officially?

Comment by Glebs Ivanovskis [ 2022 Nov 14 ]

Dear ThomasHH!

Can you point me in a direction in the source code to increase the second interval?

Simply change the value here if you don't mind recompiling server and proxy every time you need to change interval. Exposing this setting in config file is not too difficult as well.

Comment by Andris Zeila [ 2022 Nov 14 ]

include/zbxtasks.h

#define ZBX_TASK_UPDATE_FREQUENCY	1
Comment by Thomas [ 2022 Nov 14 ]

Many thanks,

it took a while to get all the dependencies, but finally i compiled only the proxy with the changes (60 sec) and it works as expected.

I will now look into how to expose it to config file.

Comment by Thomas [ 2022 Nov 14 ]

i need some hint again to make this value available in the configfile.

i used TaskUpdateFrequency=30 in the config file and made these changes :

i added in proxy.c

int ZBX_TASK_UPDATE_FREQUENCY = 60; 

in function zbx_load_config

{"TaskUpdateFrequency",       &ZBX_TASK_UPDATE_FREQUENCY,     TYPE_INT,            PARM_OPT,   1,          3600},           

in function zbx_set_defaults

if (NULL == ZBX_TASK_UPDATE_FREQUENCY)        ZBX_TASK_UPDATE_FREQUENCY = 60; 

However, the values of ZBX_TASK_UPDATE_FREQUENCY seems not to be set or recognized properly either from config file or from set_default function, as the interval is now faster than a second

Is there anything else, i need to change

Comment by Glebs Ivanovskis [ 2022 Nov 14 ]

Have you removed (or commented out) this?

#define ZBX_TASK_UPDATE_FREQUENCY	1

If code does not compile after this change, fix compilation errors by adding

extern int ZBX_TASK_UPDATE_FREQUENCY;

Overall I think you are on the right track.

Comment by Thomas [ 2022 Nov 14 ]

Great, Many Thanks!!

it is working now also from config file.

Do you see a possibility to get this change in the official version?

best regards

Thomas

Comment by Glebs Ivanovskis [ 2022 Nov 15 ]

Dear ThomasHH, I am happy to hear that you got it working!

As to including this feature into "official version", please take my further words with a grain of salt, because I am not affiliated with Zabbix SIA. As of today, the only way Zabbix accepts code contributions mentioned on their website is via Agent 2 plugins. De jure Zabbix has never admitted that patches are not welcome (i.e. have very little chance of being accepted), but de facto it is what it is. The usual explanation is that "patches are low quality and need rework anyway", but realistically even I as a former Zabbix employee struggle to get tiniest changes through (see ZBX-15677 for example). Getting everyone you know to register in Zabbix JIRA and vote for this ticket can help, but this is not a guarantee.

If you have a working proof-of-concept, I would still encourage you to attach a patch file to this ticket and/or push it to community maintained patches repo on GitHub. This way other users can discover and use your results.

Comment by Thomas [ 2022 Nov 15 ]

OK, I see. Then i need to compile the proxy part after each update.

I am not an developer, but i will see if i manage to create an patch file to upload for others.

Anyhow many thanks for your support!

Comment by Thomas [ 2022 Nov 15 ]

This patch was tested on Zabbix version 6.2.4.

This brings in a new config parameter "TaskUpdateFrequency"

You can use it in the zabbix proxy config file like

TaskUpdateFrequency=60

this will change the heartbeat to every minute instead of every second.

TaskUpdateFrequency.patch

 

Comment by bunkzilla [ 2022 Dec 13 ]

I saw this ticket got created, not sure if it's relevant

ZBXNEXT-7931 - Active proxy heartbeats removed in 6.4 (ignored by server since).

Comment by johan hotek [ 2023 Jan 16 ]

In a similar situation as the poster. Have bandwidth constrained pipes and the non-configurable heartbeat is simply saturating them. I would be more than happy to simply turn off the heartbeat and have the only time my servers check in be when the active check timer goes off. At least that way I have control over the amount of traffic being sent. Even worse is attempting to use TLS, which causes a full TLS session to be built every second. Not sure who possibly thought this was a good idea, but it's a very bad idea in any moderate sized network.

 

It appears that Zabbix agent 3.0 supports the argument, but that's very old. I'd love to use zabbix but I do not want to be in the game of custom patching my environment for any release. Here's to hoping someone on the zabbix team decides to take it seriously. Until then I guess it's back to nagios for me.

Comment by tbsky [ 2023 Nov 07 ]

Hi:

   anyone know if the problem is resolved at 6.4/7.0? I am currently use 6.0 with passive proxy. I need to recompile every time to reduce 90% useless network traffic.

Comment by Ivan Labáth [ 2023 Nov 07 ]

Don't know, but for our case, we setup a limit via firewall - not ideal, but so far works reasonably good.

ip6tables -t filter -A output_tun_xyz -p tcp --dport 10051 --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 5/hour -j ACCEPT
ip6tables -t filter -A output_tun_xyz -p tcp --dport 10051 --tcp-flags SYN,ACK,FIN,RST SYN -j DROP

New GO zabbix agent should have persistent storage I think, so we shouldn't need satelite proxies anymore, but it would be useful in cases where we do.

Comment by dimir [ 2023 Nov 07 ]

First of all, this not being configurable - is there for a reason. We have things that depend on this being sent frequently:

  • remote command execution with active proxy
  • the Execute now functionality
  • determine Agent interface status

The impact on making this configurable should definitely be measured first.

Comment by Dawid [ 2023 Nov 08 ]

There is too much traffic generated and not used by the server nor the proxy.

I shall be able to configure delay of the remote execution with active proxies and determine Agent interface status.

 

Is there any possibility in Proxy or Server version 6.4 (or 7.0) to change ZBX_TASK_UPDATE_FREQUENCY without recompiling server/proxy?

 

Eventually, do you know, how to do that in the Docker containers?

Comment by dimir [ 2023 Nov 08 ]

Quoting from here: https://www.zabbix.com/documentation/current/en/manual/appendix/protocols/server_proxy#data-request-1

Note that active proxy will still poll Zabbix server every second for remote command tasks (with an empty proxy data request).

So, no, currently it is not configurable. I think it won't hurt if we allow this parameter to be configured with not too big higher limit:

### Option: TaskUpdateFrequency
#       How often proxy requests/sends task information from/to Zabbix Server in seconds.
#       For a proxy in the passive mode this parameter will be ignored.
#
# Mandatory: no
# Range: 1-15
# Default:
# TaskUpdateFrequency=1

4 requests a minute shouldn't be an issue?

Comment by Jacek Konieczny [ 2023 Nov 08 ]

4 request a minute may definitely be an issue for a system that otherwise could get online only once an hour. There is no need for the proxy to connect to the server more often when it is explicitly configured to upload data only once an hour or so.

Comment by Dawid [ 2023 Nov 09 ]

Agree with longer periods between contact to the server.

Again it should be configurable, if we like to check new configurations from the server or send keepalive.

There are systems, which never be reconfigurable and are not real-time monitored. And what is real time exactly for different systems. It could be 1 sec, but also 15 minutes or 1 hour.

And I still don't understand, why there is no option to configure ZBX_TASK_UPDATE_FREQUENCY.

Comment by Ivan Labáth [ 2023 Nov 14 ]

IMO, dimir has a point, that changing the update frequency does have follow on consequences and they should be understood. Especially if one subsequently asks for support from zabbix.

OTOH, I believe it would be beneficial, if the interval was freely configurable, with a warning note, that it has impact on responsiveness and checks for (1st thing, second ..). Many people do not in fact use or require any of those things and have a non-negotiable requirement for reduced data usage. There will always be innumerable ways to misconfigure a server.

Comment by dimir [ 2023 Nov 16 ]

I think it makes sense to allow users to set the option to the value they need, with warning that setting it to too high value might result in delays in task execution and active agent availability in UI.

Comment by tbsky [ 2023 Nov 17 ]

Yes. Please let uses set the option to the value they need. "1-15" is not enough. please check ZBX-18958.  my environment only use passive proxy. value "60" reduce 90% network traffic. and now I am using value "150"  which is working fine.





[ZBXNEXT-4889] LLD host prototype could be able to assign different Zabbix Proxy Created: 2018 Nov 28  Updated: 2024 Feb 21

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Daniel Daniel Assignee: Unassigned
Resolution: Unresolved Votes: 7
Labels: LLD,, host, prototype,, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

There could be an option to choose a different Zabbix Proxy in LLD's host prototype.
Something like a checkbox combined with a dropdown box.
If checkbox ain't checked, then LLD's host proxy option will be used by default.
If checked, then a dropdown menu with list of available Zabbix proxies should become available to select a different one for that particular LLD.



 Comments   
Comment by Morten [ 2024 Feb 21 ]

Why is this not already implemented. It should not be that different from a normal host added?





[ZBXNEXT-4574] Zabbix Sender as Proxy with TLS support Created: 2018 May 28  Updated: 2018 May 29

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 3.4.8
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Onno Steenbergen Assignee: Andris Zeila
Resolution: Unresolved Votes: 1
Labels: encryption, proxy, sender
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently zabbix_sender with TLS requires you to set PSK/CA on each host. For proxies you are allowed to configure a single PSK/CA as they execute instructions received from the server.

As a feature request I would like zabbix_sender to have an option to act like a proxy (single psk/ca for the machine sending the data)

Detailed use-case:

We are running a configuration system which also gathers statistics and uploads them to a customer specific zabbix installation. If device A of customer A reports its statistics it gets uploaded via zabbix_sender to zabbix instance A, if device B of customer B it goes to zabbix B, etc.

To enable TLS for this communication would require all hosts to have the PSK/CA set to the same value at least on the same server. Assigning each host a unique value will require complex a complex administration system (more than 100.000 hosts on less than 100 servers)



 Comments   
Comment by Onno Steenbergen [ 2018 May 29 ]

I build a proof-of-concept version of zabbix_sender that uses the proxy "history data" call and the TLS part works. I could share a patch file if needed, however the PoC version didn't solve my use-case.

A proxy can only add data to specific hosts and must execute all items. One a hosts is marked as monitored by a proxy the server will not execute checks like icmpping.

So the feature request would require a server change to allow a 'trapper proxy' to be able to write to all hosts without requiring all proxy features.

In summary: I would like to be able to use Zabbix Sender as I currently do but with TLS without hosts specific configuration.





[ZBXNEXT-4531] Proxy: ability to configure items to be monitored out of proxy (directly by Zabbix Server) Created: 2018 Apr 28  Updated: 2020 Jan 17

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Werneck Bezerra Costa Assignee: Michael Veksler
Resolution: Unresolved Votes: 16
Labels: hosts, items, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Undefined



 Description   

When a host is configured to be monitored by proxy, it's impossible to get some items directly by server. Today it's is the normal situation, but is simple to think in a different way when some items need to be monitored by another part (in this case, directly by the server). It can be viewed as client's point of view.

Today, if i want this view, i need to:

  1. duplicate the host
  2. "unlink and clear" the template
  3. create items (in this case, tcp tests or icmp tests)

In my opinion, Zabbbix could have a manner to choose the monitoring way at item level, like, the host is monitored by proxy, but some items aren't.



 Comments   
Comment by Werneck Bezerra Costa [ 2019 Oct 08 ]

Hello again.

I would like to know if it's in the planing for new features.





[ZBXNEXT-4410] Clear zabbix proxy queue Created: 2018 Mar 06  Updated: 2018 Mar 06  Resolved: 2018 Mar 06

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 3.0.15
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: ashokvalakatla Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

cloud
cent os 7


Attachments: PNG File queue.PNG    

 Description   

Please check the attachment and how to clear queue



 Comments   
Comment by Raymond Kuiper [ 2018 Mar 06 ]

The queue is actually not really a queue but just a list of items that should have been updated by now, but haven't for some reason.
Usually this is related to performance issues.

Please refer to https://zabbix.org/wiki/Getting_help for ways of getting help from Zabbix company or the Zabbix community.
I would suggest raising your question on the Zabbix IRC channel first, as there are usually community members available to help you.





[ZBXNEXT-4207] Redundant HeartbeatFrequency Parameter Created: 2017 Oct 26  Updated: 2024 Apr 10  Resolved: 2022 Sep 20

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.4.3
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Vladislavs Sokurenko Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: heartbeat, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
part of ZBX-12934 result of a script (external check) e... Closed
Epic Link: DEV-591
Team: Team B
Team: Team B
Sprint: Sprint 20, Sprint 21, Sprint 22, Sprint 23
Story Points: 0.5

 Description   

Now when remote command execution on proxy is implemented, tasks are updated each second (hardcoded) this makes heart beat redundant.

HeartbeatFrequency should be removed or at least new behaviour should be documented.



 Comments   
Comment by Rostislav Palivoda [ 2017 Oct 26 ]

Do you agree? wiper

Comment by Andris Zeila [ 2017 Oct 26 ]

I would seem so.

Comment by Rostislav Palivoda [ 2017 Oct 26 ]

Require confirmation from sasha

Comment by Glebs Ivanovskis (Inactive) [ 2017 Oct 26 ]

Distantly related. Users are wondering why and what server sends something to passive proxy every second.

Comment by richlv [ 2017 Oct 26 ]

some exponential backoff from passive proxies might have been useful... but that's partially offtopic here as well

Comment by Vladislavs Sokurenko [ 2017 Nov 01 ]

related task ZBX-12936

Comment by Rostislav Palivoda [ 2017 Nov 02 ]

Postponed because of low value for end user.

Comment by Juris Lambda [ 2022 Sep 20 ]

This was eventually implemented as ZBXNEXT-7931. Closing.





[ZBXNEXT-4181] Zabbix proxy should check server ip in passive mode Created: 2011 Aug 30  Updated: 2024 Apr 10  Resolved: 2017 Oct 16

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: 4.0.0alpha1, 4.0 (plan)

Type: New Feature Request Priority: Major
Reporter: Ghozlane TOUMI Assignee: Unassigned
Resolution: Fixed Votes: 5
Labels: passiveproxy, proxy
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Sub-task
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-4508 Document zabbix proxy should check se... Documentation (Sub-task) Closed Vladislavs Sokurenko  
Team: Team A
Team: Team A
Sprint: Sprint 18, Sprint 32
Story Points: 0

 Description   

According to the documentation, the configuration parameter 'server' is not used by the proxy in passive mode.
It should behave like the agent, the parameter containing a list of valid server IPs for passive mode, and the active mode using the first one.

I didn't check the source, so it may be a simple documentation error. (in the wiki and default proxy config)



 Comments   
Comment by Aleksandrs Saveljevs [ 2011 Nov 07 ]

Could you please link to the documentation page that seems suspicious for you?

For instance, http://www.zabbix.com/documentation/2.0/manual/appendix/config/zabbix_proxy says the following about "Server" configuration parameter, which looks alright to me:

"IP address (or hostname) of Zabbix server. Active Proxy will get configuration data from the server. For a proxy in the passive mode this parameter will be ignored."

Comment by richlv [ 2011 Nov 07 ]

as i understood this, issue is about passive proxy working same as other daemons and only accepting connections from addresses, specified in the "Server" parameter.
i suppose documentation was only mentioned because it seemed strange to ignore that parameter.

Comment by Ghozlane TOUMI [ 2011 Nov 08 ]

Correct,
As stated in the description, I think the proxy should use the Server parameter in passive mode the same way the agent does , by filtering by IP the servers allowed to connect.
If this is already the case, the documentation should be fixed...

Comment by Aleksandrs Saveljevs [ 2011 Nov 08 ]

Thanks! Currently, passive proxy does not check server IP address. Reopening.

Comment by richlv [ 2012 Mar 02 ]

ZBXNEXT-866 asks to print out ip of the server we got the config from

Comment by Glebs Ivanovskis (Inactive) [ 2017 Mar 29 ]

ZBXNEXT-1486 is related.

Comment by Vladislavs Sokurenko [ 2017 Oct 13 ]

Fixed in:

  • 4.0.0alpha1 (trunk) r73528
Comment by Volker Fröhlich [ 2018 Apr 17 ]

I think this is the issue that CVE is about: https://talosintelligence.com/vulnerability_reports/TALOS-2017-0327

Do you consider backporting this?

vso please consider using encryption, there is no vulnerability in that case. As far as I know it is not planned to backport because it requires database changes.

Comment by richlv [ 2018 Apr 17 ]

interestingly enough, neither this issue, nor the spec actually talk about limiting what active proxies can request from the server, but the changelog has :

A.F....PS. ZBXNEXT-4181 fixed Zabbix server to accept active Zabbix proxy requests only from allowed address if specified (Sasha, vso)

Comment by richlv [ 2018 Apr 17 ]

(1) server limiting active proxies is not mentioned in the upgrade notes.

this is important, as it will break things for people who use scripts on the server to send data for hosts, monitored by a proxy.

...but it looks like this is optional and documented in whatsnew instead.

the development is confusing and does not match the specification.

vso this was old specification, removed comment to avoid confussion, Won't Fix

<richlv> There's a specification link in the issue description. Is that the specification that was used?

What about the new active proxy limitation missing from the upgrade notes?

vso new active proxy limitation is optional, so it's missing from upgrade notes as nothing to worry about. No this specification was not used.

<richlv> Thank you for the answer. Previously the Server parameter was ignored, thus for somebody who had it specified an upgrade would change the behaviour. Is that correct?
Also, could it please be possible to modify the description to say that the linked specification was not used in the end?

vso I yes, please see following link:
https://www.zabbix.com/documentation/4.0/manual/introduction/whatsnew400#more_secure_connections_for_proxies
I have also deleted obsolete spec from issue description.

<richlv> Thank you for the description update.
I was also wrong the on the update topic, the field was not there in the older versions of Zabbix.

CLOSED





[ZBXNEXT-4004] offload LLD data processing from trappers and proxy pollers (critical for monitoring by proxies) Created: 2017 Feb 07  Updated: 2024 Apr 10  Resolved: 2019 Jun 17

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Critical
Reporter: Oleksii Zagorskyi Assignee: Zabbix Development Team
Resolution: Duplicate Votes: 18
Labels: lld, proxy, synchronization
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PDF File Oleg_Ivanivskyi-Zabbix_Internals.pdf     File zabbix_server.log.debug.1.7z     PNG File zabdebug3.png    
Issue Links:
Causes
Duplicate
duplicates ZBXNEXT-4087 Allow preprocessing in LLD rules Closed
Sub-task
part of ZBXNEXT-4087 Allow preprocessing in LLD rules Closed
part of ZBXNEXT-3205 Add support for wildcards and / or gl... Closed
Team: Team A
Team: Team A
Sprint: Sprint 53 (Jun 2019)
Story Points: 6

 Description   

Active proxy:
If zabbix server gets LLD data from active proxy - it processes the data in the same time, TCP connection stays opened, proxy's data sender is waiting a reply from server.
All this time history is not synchronized during a few minutes and many nodata() triggers on server gets PROBLEMS.
For example 3 LLD rules send ~300KB json data in one (or in a few consecutive) connection(s). Proxy's data sender is 100% for 3-4 minutes, while usually the data sender is just 4% busy.

Passive proxy:
A 1 hour maintenance of DB server is performed (backup), but it does not not affect zabbix server in general meaning, except of:
server's proxy poller gets 1000 (=ZBX_MAX_HRECORDS) values (2MB data, multiple LLD rules data), and spends 7 seconds to process it. Without exiting from a loop, it ask more history again (ZBX_PROTO_VALUE_HISTORY_DATA) and again gets 1000 vales (10MB data this time) and processes it 30+ seconds (how much exactly - unknown) and so on.
As we know there is an internal queue for proxy pollers (info from wiper), so only one proxy poller will be working with the proxy.
Discovered issue: history sync will be delayed AND configuration synchronization of the proxy is not performed at all during the period!

To resolve all the issues - LLD data processing should be offloaded from current proxy<->server communication.



 Comments   
Comment by zhang [ 2017 Aug 25 ]

I like this idea.

Comment by Backoffice Team [ 2019 Apr 16 ]

As per Oleg presentation, LLD rules are processed directly into DB (attached, also here: https://assets.zabbix.com/files/zabsummit2018/Oleg_Ivanivskyi-Zabbix_Internals.pdf).

It would be even better than initial request if LLD rules were processed into `configuration cache`, and then `configuration syncer` would write changes only it into the database. This way we can easy off some of the DB pressure and also speed up the LLD update process, since proxies would (depending on sync times) have items sooner.

The MVP is indeed what the ticket asks: we need is to sync LLD data in a asynchronous way (without blocking the whole proxy<=>server communication until it ends).

Comment by Vladislavs Sokurenko [ 2019 Jun 12 ]

I am sorry but it might be implemented already under ZBXNEXT-4087 is the feature still actual ?

https://www.zabbix.com/documentation/4.2/manual/introduction/whatsnew420#preprocessing_and_custom_macros_in_low-level_discovery

Separate processing for low-level discovery

Processing low-level discovery rules has been split from data gathering processes into its own processing, consisting of a configurable number of low-level discovery workers and a low-level discovery manager. This change greatly reduces low-level discovery impact on data gathering (poller, trapper processes) and proxy communications (trapper, proxypoller processes). Before data gathering could be delayed because the corresponding data gathering processes were busy with low-level discovery.

Comment by Vladislavs Sokurenko [ 2019 Jun 13 ]

LLD worker and LLD manager process was introduced and it will handle LLD in background, to simplify, for example Zabbix proxy sends data to server and disconnects, then LLD worker on Zabbix server performs discovery.

Comment by Vladislavs Sokurenko [ 2019 Jun 17 ]

This feature request was implemented as part of ZBXNEXT-4087 in pre-4.2.0alpha4, closing as duplicate





[ZBXNEXT-3561] Allow auto registration when using encryption Created: 2016 Nov 21  Updated: 2016 Nov 21  Resolved: 2016 Nov 21

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: 3.0.4, 3.0.5, 3.2.0, 3.2.1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: finalbeta Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: agent, autoregistration, encryption, proxy, tls
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Any


Issue Links:
Duplicate
duplicates ZBXNEXT-3497 auto-registration with TLS (PSK) Closed

 Description   

I would like to suggest a method to allow auto registration when using encryption. I'm starting this after talking about it on IRC and I'm hoping to start a discussion.

Background: I am using a encrypted connection between my server and my proxys. I would also like to use an encrypted connection between my agents and my proxy. I would like that system admins, that hold no rights to my Zabbix installation are able to run an installer and add a host to zabbix. (without requiring manual actions) (or automated agent installs would be able to auto register/use encryption)

I am using a single PSK (this could be a cert) for all agents behind the same Proxy

Current:
Agents need to connect to their proxy/server without encryption to be able to auto register. After that, one has to set the psk options in the server side and change the agents config.

Suggestion:
Allow a PSK or certificate to be set on the proxy for agent communications. A new agent, connecting to the proxy with the PSK or certificate would be accepted and would follow the normal auto registration. (the PSK or certificate could also be specifically set at that point).

Allowing me to do it this way would mean that I can make an parameterised installer that after running it, has auto registered and is using encryption.
The only downside I see is that all agents behind the same proxy would be using the same PSK or certificate. (for me personally that is not a direct issue).
Perhaps this idea can be build upon.



 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Nov 21 ]

Looks like a duplicate of ZBXNEXT-3497.





[ZBXNEXT-3207] Add proxy last seen item in proxy default template Created: 2016 Mar 21  Updated: 2023 Mar 30

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Templates (T)
Affects Version/s: 2.4.7, 3.0.1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Ingus Vilnis Assignee: Unassigned
Resolution: Unresolved Votes: 9
Labels: proxy, template
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screenshot 2023-03-29 at 15.00.54.png     PNG File Screenshot 2023-03-29 at 15.01.57.png     PNG File Screenshot 2023-03-29 at 15.04.14.png     PNG File image-2023-03-28-15-00-40-189.png     PNG File image-2023-03-28-15-00-57-240.png     PNG File image-2023-03-28-16-41-53-051.png     PNG File screenshot-1.png    

 Description   

Add internal item and corresponding trigger for proxy monitoring in default Template App Zabbix Proxy at least in a disabled status.

zabbix[proxy,{HOST.HOST},lastaccess]

Understandable that this will not work if the proxy will be added and configured with a different name than the hostname but then again the item will be already there and user just has to modify one setting in key rather than creating whole item and trigger from scratch.



 Comments   
Comment by Faustin [ 2020 Nov 25 ]

More on this https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/12275-feature-request-howto-trigger-on-last-seen-interval-of-proxies

Comment by bunkzilla [ 2023 Mar 27 ]

So with changes that hosts behind downed proxies won't alert, we need this now more than ever.   We have no way of knowing when a proxy is no longer functioning.   

Comment by Marco Hofmann [ 2023 Mar 28 ]

bunkzilla I agree with you, that this should be part of the official Zabbix proxy template, but what hinders you from adding that item/trigger yourself? Since the addition of nodata being sensitive to proxies, we add this to our proxy template, which tells us reliably if a Zabbix proxy is down.

Comment by Faustin [ 2023 Mar 28 ]

@starko could you describe with more details how you handle this problem (which item/trigger did you add to the official template)?

Comment by Marco Hofmann [ 2023 Mar 28 ]

Faust Yes, no problem, this is our config:

Item

Trigger

Comment by Faustin [ 2023 Mar 28 ]

@starko Very much appreciated, thanks!

Comment by Mickael Martin (Cyres) [ 2023 Mar 28 ]

Great idea! On our side, we use this trigger on the "internal" proxy monitoring (the remote contains {HOST.HOST}) :

Comment by Brian van Baekel [ 2023 Mar 29 ]

So, i might be a bit ignorant here, but.... https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/zabbix_server it's there, in this template?
What are you guys exactly missing at this point?

Comment by Mickael Martin (Cyres) [ 2023 Mar 29 ]

Hey! I missed this way. Maybe the best way (you cannot forget a proxy)

Comment by Ingus Vilnis [ 2023 Mar 29 ]

Brian, great find, but your approach is since 6.4 only, and by looking at the template it has a completely different approach in proxy monitoring. Proxies are not created as hosts but as items on Zabbix server host. It's not the same if you have a proxy where both physical (e.g. Linux) metrics are monitored together with Zabbix internal stats.

Comment by Brian van Baekel [ 2023 Mar 29 ]

ingus.vilnis I agree the approach is different, yet sufficient.
With the default template you get a heads-up if there is a problem with the proxy, regarding it's availability:

and:

So that makes this ZBXNEXT obsolete i think.

I do see another issue though, as this will not work:

(new host is not assigned to the proxy itself) so that remains manual work, or some custom scripting.

Comment by Faustin [ 2023 Mar 30 ]

Thanks Brian! Indeed this seems to be a perfectly valid approach but as Ingus said, it's only in 6.4 (since commit 3b13bad9ef547293a69697c99547d5c2b4797116 if I am correct). So, I am not sure if this could be backported to 5.0 or 6.0 templates? But we need a solution for those LTS version too.

Comment by Ingus Vilnis [ 2023 Mar 30 ]

Faustin, for all other versions set it up as Marco has brilliantly displayed. It works perfectly. 

Comment by Faustin [ 2023 Mar 30 ]

Yep that's already in prod on my zabbix instances





[ZBXNEXT-3066] Validate time stamps when receiving data from active agent/proxy, sender Created: 2015 Dec 08  Updated: 2015 Dec 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Glebs Ivanovskis (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: proxy, sender, server, trapper, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Sending in item values and their collection times via Zabbix sender is a cool feature. But Unix time stamp format is a bit tricky for human beings and it is easy to get it all wrong.

Currently Zabbix server uses standard atoi() function to convert received time stamp strings to int. This function does not check for any kind of error.

My suggestion is to validate received time stamps stricter. At least we may want to assure that received clock

  • is a valid numeric value,
  • is not negative,
  • does not overflow int type we use in zbx_timestamp_t,
  • does not correspond to a time moment from (distant) future.

Maybe we should make validation rules even stricter (let say, server should reject items from distant past) but user should be able to override these extra checks with a special flag to Zabbix sender.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Dec 08 ]

Initially it was discussed in ZBXNEXT-3055.





[ZBXNEXT-2973] cannot add a host to be monitored by proxy Created: 2015 Sep 18  Updated: 2017 May 31  Resolved: 2015 Sep 19

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
Affects Version/s: 3.0.0alpha2
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Bezaleel Ramos Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 3.0
Zabbix Proxy 3.0
Centos 6
Mysql 5.1


Attachments: PNG File ZABBIX PROXY ADD HOST.PNG     PNG File ZABBIX PROXY ADD HOST2.PNG    
Issue Links:
Duplicate
duplicates ZBX-9883 Hosts assignment issue for proxy crea... Closed

 Description   

Hello,

I'm trying to add a host in proxy through Administration> proxy.

And when I click update host does not appear in the proxy interface.

Follows the screenshot.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Sep 19 ]

I can confirm it for latest rev 55626

Comment by Oleksii Zagorskyi [ 2015 Sep 19 ]

Interesting point is that possible to remove a host but not possible to add.

Comment by richlv [ 2015 Sep 19 ]

seems to be a duplicate of ZBX-9883, closing





[ZBXNEXT-2939] New Item-Type Local checks Created: 2015 Sep 03  Updated: 2016 Jan 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F), Server (S)
Affects Version/s: 2.4.6
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Kay Schroeder Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Hello,

I'm working in a distributed environment where I have one server and several proxies. Unfortunately the proxies are'nt allowed to access the server due to security-reasons.

But when I have an external script that requires the API, because it needs to get several existing items and do a check based on these items the script will fails as it will not connect to the server.

Will it be possible to get like it is possible with global scripts to run an external check locally on the server and not on the proxy-device?

It don't needs a new Item-type, a decision where it runs (local/remote) would also be fine.

Kind Regards,
Kay



 Comments   
Comment by richlv [ 2015 Sep 03 ]

this sounds like monitoring some items on proxies, and some on the server.

are those items needed on all proxied hosts ? if only on few, maybe a separate host can be created only for that purpose ?

Comment by Marc [ 2015 Sep 03 ]

Reminds me distantly of ZBXNEXT-1285.

Comment by Kay Schroeder [ 2015 Sep 04 ]

@richlv
A separated host is a Workaround that provides me successfull checks, but I cannot use Triggers/Graphs that work with items from one host and another within templates. I have to manually created everything or build a Framework behind zabbix with the API. As we are talking about 30 of our 90 Hosts and our important and fast increasing type of devices this will become a huge mess for us.

@Marc
Yes saw this, but did not completely think this will solve our issue. Also found ZBXNEXT-1411 but in our Environment we ware working with 100% of templated items and so I cannot differ between two SNMP-Interfaces. If ZBXNEXT-1411 is resolved I could add an Agent-Interface facing the Server to each device and run These scripts as remote-commands. Unfortunately without the Option to disable the Proxy for a specific Interface or item I did not find any Approach to solve my issue.

Comment by richlv [ 2015 Sep 04 ]

well, the only option that i can think of (and hold on, it's very hackish still) is to have templated trapper or active agent items, then run the script on the server and send in the values faking the proxy protocol. yes, i have done that for customers when there was no other, simpler option

Comment by Kay Schroeder [ 2016 Jan 08 ]

Hi Rich,
yes I'm doing it in this way. I have written a script that collects all Trapper items from database and use this in a lld-discovery on the Server. I'm adding a [<interval>] to the key of the element. Then I create an external check with a small script, that reads and explodes the command line from the original item->key_ and then executing this script and sends the data to the Proxy. It's working fine by now, but still would be nice to have the Feature implemented in the future.





[ZBXNEXT-2936] a way to disable proxies Created: 2015 Aug 31  Updated: 2015 Sep 01

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: 2.5.0
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Aleksandrs Saveljevs Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: logging, proxy, status
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Suppose we have a passive proxy that we do not currently need and which does not have any hosts assigned to it. Still, the server tries to connect to it every second and spams the log file with lines like the following:

  2216:20150831:175410.012 cannot connect to proxy "currently-unused-proxy": cannot connect to [[127.0.0.1]:20003]: [111] Connection refused

It would be nice to have a way to disable the proxy, so that the log file is clean.



 Comments   
Comment by richlv [ 2015 Aug 31 ]

it might be a bit more complicated with active proxies - we might not want to send empty config to them, as the next refresh rate could be in an hour or more. would be great to have them keep the config but stop collecting/sending in the values, and check that status every heartbeat cycle...





[ZBXNEXT-2847] Support for multiple proxies for passive checks Created: 2015 Jun 11  Updated: 2018 Feb 16

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Lee303 Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be extremely useful to support multiple proxies per host when using Passive checks, either on a per application/item or interface basis



 Comments   
Comment by Aleksandrs Saveljevs [ 2015 Jun 11 ]

Could you please provide a use case where that would be useful?

Comment by Lee303 [ 2015 Jun 16 ]

This would allow for monitoring from multiple locations/datacenters for a particular host within the same Zabbix interface, without having to utilise multiple hosts/Zabbix instances. Additionally, this would also allow for the flexibility to perform passive checks from particular proxies for particular items, such as grouping SNMP checks. This would allow for us to implement SNMP monitoring for thousands of servers without the requirement for updating the SNMP service on each host with an additional monitoring IP address.





[ZBXNEXT-2644] Zabbix server should inform user, if proxy major version differs from server's version Created: 2014 Dec 17  Updated: 2017 Feb 26

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Filipp Sudanov (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: proxy, troubleshooting, upgrade, version
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Currently Zabbix server allows older/newer proxies to connect and work without any warnings. Also some advanced users might want to do this intentionally, normally this would mean that the user does not realize that proxy's major version should match server's.

Zabbix should inform user about this sitiation, at least in server's (and proxy?) log files, better also in proxy list in the front-end.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Sep 16 ]

I'm thinking about new item keys for internal monitoring like zabbix[version] similarly a we have currently agent.version for agent.
For proxies we could extend existing key with additional value for 3rd param - zabbix[proxy,<name>,version].
But the same key for zabbix and proxy - looks better desition for me.

Then compare received values with regexp() trigger function for the same/several global regexp.

Note that we support already such a key for java proxies - zabbix[java,,version]

https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/internal

Comment by Oleksii Zagorskyi [ 2015 Oct 28 ]

cross reference - ZBXNEXT-2805

Comment by Marc [ 2017 Feb 26 ]

Could be (also) nice to have a "Version" column in Administration -> Proxies.





[ZBXNEXT-2603] Allow max length of user macros to 2048 (server side) Created: 2014 Nov 19  Updated: 2024 Apr 10  Resolved: 2020 Aug 30

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: 2.4.2
Fix Version/s: 5.2.0alpha2, 5.2 (plan)

Type: Change Request Priority: Trivial
Reporter: Jan Garaj Assignee: Artjoms Rimdjonoks
Resolution: Fixed Votes: 23
Labels: db, macros, proxy, server, webmonitoring
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Attachments: PNG File Import.png     PNG File Screen Shot 2020-04-14 at 6.46.40 PM.png     PNG File image-2020-05-19-15-12-17-093.png    
Issue Links:
Sub-task
part of ZBXNEXT-6108 Front-end changes to allow max length... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-6108 Front-end changes to allow max length... Change Request (Sub-task) Closed Andrejs Griščenko  
Team: Team C
Team: Team C
Sprint: Sprint 67 (Aug 2020)
Story Points: 0.25

 Description   

I would like to use user macro for host specific URL, which will be used in web monitoring template. This URL is long (~650chars) and it's truncated to 256 chars, what is limit for user macro. So I can't use user macro for web monitoring URL.

It'll be fine if you increase maximum length of user macro and it'll be same as maximum allowed length of URL (2048 chars). It make sense, if I can use user macro in monitored URL.



 Comments   
Comment by Jan Garaj [ 2014 Nov 19 ]

I've found workaround and my URL is now:

https://{HOST.HOST}{$LONG_URL_PART1}{$LONG_URL_PART2}{$LONG_URL_PART3}
Comment by Dimitri Bellini [ 2019 Mar 25 ]

As we discussed on ZBX-15816 we suggest to extend the User Macro characters to something like 1024 or more because is very useful for "HTTP Agent" Check when we need to use Token.

Comment by Dimitri Bellini [ 2019 Sep 19 ]

I have tested the latest 4.4alpha3 but the size of MACRO input box is still 256, please extend to 1024 characters.
Thanks

Comment by Yauheni_Skavarodkin [ 2020 Jan 21 ]

Any updates in scope of this issue ? 

 

Comment by Tomáš Heřmánek [ 2020 Apr 14 ]

I have same problem with official template for windows i need more space for all services. Vote +1

Comment by Roman [ 2020 May 19 ]

I have a problem with the official Windows template: it is not possible to specify all the necessary exceptions for autodiscovering services...

Comment by Marco Hofmann [ 2020 May 19 ]

I do that since 3.0 with a Global Regular Expressions and never had any problems. I have over 50 exceptions or so.

Comment by Tomáš Heřmánek [ 2020 May 19 ]

Hi Marco,

but this is not nice solution all in one. You need import regular and template each.

Tom

 

Comment by Roman [ 2020 May 19 ]

Hi Marco,

I can easily use a workaround, but I want to have a solution to the problem that will remove the stupid limitation and allow me to simply use the standard templates without changes.

Quote from the Template Guideline (https://www.zabbix.com/documentation/guidelines/thosts):

1.1.4 Avoid global macros

If user macros are used, define them in the template itself instead of using global macros - that way users get either the default values or an example of what the macro names are. If global macros are used, they are not exported along with the template.

1.1.5 Avoid global regexes

Avoid using global regexes in templates if possible, as they are not exported with the template. If global regex is used, document in the README what global regex with what values must be used with the template.

Comment by Artjoms Rimdjonoks [ 2020 Aug 19 ]

Available in versions:

Comment by Andrejs Griščenko [ 2020 Aug 26 ]

Documentation updated:

Comment by Nikolay Kulikov [ 2020 Oct 07 ]

will it applied to 5.0.xx version?

Comment by Michael Veksler [ 2020 Oct 07 ]

We are not changing DB schema for existing version.





[ZBXNEXT-2559] Zabbix Proxy monitoring is not clear and has limitation Created: 2014 Nov 03  Updated: 2015 Oct 07

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 2.4.1
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: James Tutton Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: internalmonitoring, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Large scale enviroment where there needs to be seperation between core infurstucture and services monitored via proxy.



 Description   

Hi Zabbix Team, Im currently designing and proofing out an ISP monitoring enviroment and have come across an issue with Proxy statistics that were not clear and now I understand the issues are a limiting factor that i would expect are easily addressed.

In the proposed setup we have an core enviroment and a customer enviroment. In the customer enviroment are a number of proxies nodes that grant access to customer services to be monitored. Each of the proxy nodes has an agent installed and this agent is added as a host in both the core and customer servers. As the core enviroment is where we want to monitor our infurstucture it was hopped we could add a proxy template and get back stats for the proxy proceess on the customer proxies. But it seems that when we do this we actually get the internal items for the core server. The only way to get the proxy stats is to use the proxy when connecting to the agent. The issue is the proxy is for the customer enviroment not the core enviroment.

Hopefully the above makes sence. In a nutshell the ability to gather proxy statistics should be indepentant from the proxy itself. The same applies for server statistics. I can see many uses where it would be good to gather stats about a zabbix server enviroment via the agent from a seperate enviroment.



 Comments   
Comment by Chris Christensen [ 2015 Sep 30 ]

I can echo these concerns (the confusion of knowing assignment is not obvious) and I believe there are some fundamental items that cannot be reported via the zabbix-proxy itself to maintain proxy monitoring integrity.

Example: (ref: ZBX-6036) The proxy sqlite db is corrupt and there is a need for an internal metric (perhaps a PRAGMA integrity_check) - by the nature of this type of problem the proxy cannot forward metrics to the server. Another symptom detection would be to use the NVPS from the proxy; however, the metrics again flow through the proxy itself, which means the server never recieves updated metrics.

I believe some of this was forseen in the original spec: ZBXNEXT-1098 - https://www.zabbix.org/wiki/Docs/specs/ZBXNEXT-1098

Possibility of sending internal metrics as part of heart beat messages

Comment by Chris Christensen [ 2015 Sep 30 ]

Additionally, the only access to internal metrics (proxy or server) are through internal items. It would make sense to expose these in a log or a process interface such that they could be queried via multiple means. xref: ZBXNEXT-401





[ZBXNEXT-2548] Low level discovery of the proxies Created: 2014 Oct 27  Updated: 2017 Sep 21

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Alexander Vladishev Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: lld, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBXNEXT-4106 zabbix proxies LLD. Closed

 Description   

Moved from comment in ZBXNEXT-2279

I think that new zabbix should provide special key which will generate json string which can be used on add monitoring of zabbix[proxy,<proxy_name>,lastaccess] over LLD .. if something like this is not implemented yet.
Without this probably will be quite hard to maintain proxies availability monitoring in environments where set of proxies is not static.



 Comments   
Comment by Aleksandrs Saveljevs [ 2015 Jan 15 ]

ZBXNEXT-2321 introduces support for low-level discovery through ODBC SQL queries and https://www.zabbix.com/documentation/3.0/manual/discovery/low_level_discovery#discovery_using_odbc_sql_queries documents a way to use that feature to solve this problem.





[ZBXNEXT-2485] Single out ODBC pollers in special poller type Created: 2014 Sep 29  Updated: 2022 Jan 25  Resolved: 2022 Jan 25

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D), Proxy (P), Server (S)
Affects Version/s: 2.2.6, 2.4.0
Fix Version/s: 6.0.0beta2, 6.0 (plan)

Type: Change Request Priority: Major
Reporter: Vadim Nesterov Assignee: Dmitrijs Goloscapovs
Resolution: Fixed Votes: 30
Labels: database, odbc, oracle, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

UnixODBC


Issue Links:
Duplicate
Sprint: Sprint 84 (Jan 2022)
Story Points: 1

 Description   

The problem is: ODBC checks works in usual poller process, so if we have 50 pollers and a lot of ODBC checks, 50 connections to database can be created. DBAs are very unhappy about this situation.

To solve:
1. single out odbc pollers in separate type of poller processes such as snmp, http, ipmi pollers.
2. Add to config number of ODBC pollers, timeout connection setting for a DSN

The connection to database by default must be open if process is running or
timeout is not expired, because there are can be very rare db checks, it is cheaper to open a new connection, than hold it.

Connection must supported on DSN string, one DSN = one opened connection pointer.

For example Oracle ODBC driver for Linux doesn't support shared connections, ODBC Pooling = yes and CPTimeout, zabbix crashes with these settings.

So the connection persistence must be realized on process level.

db.select[select_name,dsn,persistence=yes]

persistence=yes - by default this parameter is yes, and poller uses opened connection to db. If db.select[,,no] - poller must open new connection and close it after query.

It is needed rarely, but for special session queries.



 Comments   
Comment by Aleksandrs Saveljevs [ 2014 Sep 29 ]

A slightly related issue might be ZBXNEXT-2200, which talks about having a configuration parameter which specifies how many pollers may access a given host at any given time.

Comment by Marc [ 2014 Sep 29 ]

I can also think of pooling SQL queries to be issued over a single TCP connection.

Btw, for now, when it comes to serious database monitoring, which means doing significantly more than a couple of queries, then DBforBIX could be your (and probably your DBAs) friend.
You loose some flexibility and comfort since it works autonomous and makes use of Zabbix trapper protocol. On the other hand it allows to avoid putting credentials into Zabbix or on Zabbix server/proxy host which then could, under certain circumstances, be exposed pretty easy (ZBX-8464, ZBX-4916, ...)
Depending on implementation ZBXNEXT-1660 might help but is not expected to happen sooner or later

Comment by Vadim Nesterov [ 2014 Sep 29 ]

Marc, thanks but DBforBIX is terrible, yes as you mention for its trapper type, and the main thing - it is difficult to do LLD, we have hundreds of tables and jobs, and I don't want to generate such config for DBforBIX.
ODBC persistence should be realized right in zabbix, I think it is good way. What about securing connection - it is not problem you may do this in different way: vpn, ssh and so on.

Comment by Marc [ 2014 Sep 29 ]

I see. My concerns regarding security are not about the connectivity, since there are as already mentioned by you ways to work around that.
Anyhow, I totally agree that improving Zabbix its database monitoring capabilities is the way to go The recently added ODBC discovery function is a first step.

Since I don't believe there will be session pooling for any connection type in the future (everything is about trapping or polling but not about persistent connections), Zabbix can't reach efficiency of applications like DBforBIX in that domain.

Although that might possibly not be necessary, even when planning to monitor thousands of database (instances).
Pooling of queries and querying them in a bulk should do. At least I hope so, otherwise we're still bound to 3rd party products like DBforBIX or Oracle Enterprise Manager, what is not my preference

Comment by Vadim Nesterov [ 2014 Sep 29 ]

Let's wait for developers thoughts

Comment by Vadim Nesterov [ 2014 Nov 12 ]

Any comment from developers? Can be this feature planned to 2.5 version?

Comment by Marc [ 2015 Aug 13 ]

ZBXNEXT-2902 asks for persistent sessions in context of loadable modules support of alerter process.

@nucleusv
It seams not to be on the road map yet but there is always the fast lane over (co-)sponsoring development.

Comment by Marc [ 2016 Mar 10 ]

ZBXNEXT-3188 is similar but more general minded.

Comment by Vadim Nesterov [ 2016 Mar 15 ]

@Marc, ZBX's which you've provided I think they it is another story...

Comment by Aleksandrs Saveljevs [ 2016 Apr 12 ]

Related request: ZBXNEXT-3239.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Jul 01 ]

Dear nucleusv, can you suggest some more reading on this statement?

For example Oracle ODBC driver for Linux doesn't support shared connections, ODBC Pooling = yes and CPTimeout, zabbix crashes with these settings.

Comment by Vadim Nesterov [ 2016 Jul 02 ]

Glebs, what do you mean some more reading ?

Comment by Glebs Ivanovskis (Inactive) [ 2016 Jul 04 ]

I mean... Is there a related piece of Oracle documentation or some expert's blog/article/paper/presentation covering this topic (this one I've already seen )? Please point me to it. Or is it, perhaps, a well known fact among Oracle administrators?

Comment by Anton Alekseev [ 2016 Sep 05 ]

glebs.ivanovskis, maybe I can help on this matter.

As of release 2.0.0 of unixODBC the driver supports connection pooling.
It works on per-process basis by leaving connection open so application process may reuse the connection on the next try.
Details can be found at http://www.unixodbc.org/doc/conn_pool.html

There are couple of problems on using ODBC Pooling with Zabbix:
1. As it has already been said, it works on per-process basis. So if Zabbix server once asked ODBC for connection to DB #1 via poller #1 and the next time it asks ODBC for connection to DB #1 via poller #2, unixODBC will open new connection, since pollers #1 and #2 are different processes. So at the worst case we will have (count of zabbix_server pollers) connections open on every monitored DB. It makes (count of monitored DB) x (count of zabbix_server pollers) open connections, which are a lot!
2. As Vadim Nesterov has said, Oracle ODBC driver doesn't support pooling.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Sep 05 ]

akint, thank you for response! Unfortunately, very little new information for me. What I can't understand is if pooling is done on UnixODBC side why Oracle driver needs to support pooling too? Or do you mean that combination "Zabbix + Oracle driver + pooling" leads to crashes?

Comment by Vadim Nesterov [ 2016 Sep 05 ]

@Anton Alekseev,

> So at the worst case we will have (count of zabbix_server pollers) connections open on every monitored DB. It makes (count of monitored DB) x (count of zabbix_server pollers) open connections, which are a lot!

I don't suggest to go this way. I suggest to make a special process type -> DB poller (number of such processes are set up in config), like snmp pollers and etc.

> Or do you mean that combination "Zabbix + Oracle driver + pooling" leads to crashes?
When I worked with this this issue, I had Oracle 11 drivers, they didn't support pooling and it was zabbix crashing.

Comment by Anton Alekseev [ 2016 Sep 06 ]

glebs.ivanovskis, when you enable ODBC Pooling for Oracle driver by setting non-zero CPTimeout, any application, which uses this driver, crashes with segmentation fault.
I have tested it with the every combination of:

  • drivers: Oracle 11 and 12
  • unixODBC: 2.2.14 (default in EL6) and 2.3.4 (most recent, compiled from source).
  • applications: zabbix_server and simple Python script using pyodbc.

nucleusv I'm agree on your proposal, I have just tried to point out that using unixODBC Pooling would be inefficient even if it worked. =)

Comment by Fabian van der Hoeven [ 2018 Jan 16 ]

I would love something like connection pooling in the zabbix-server. I've written a sort of proxy (between zabbix-server/proxy and zabbix-agent) to catch DB requests and provide connection pooling. It forwards every other request to the normal zabbix-agent.
(if you're interested: https://github.com/Fabian1976/mios-agent)
I haven't updated or used it in a while, so I don't know if it still functions in Zabbix 3.2 or higher.

Comment by Marc [ 2018 Jan 16 ]

Since having made good experience by installing PgBouncer alongside the Zabbix frontend to pool its database connections, I'm seriously thinking of using PgBouncer alongside Zabbix proxies for pooling ODBC connections too.

Possibly, using a 3rd party pooling application could be a option too, if such kind of pooling software exists for all supported RDBMS platforms, of course. This may come at the expense of having another configuration to maintain. On the other hand, the odbci.ini has to be configured anyway. Last but not least, tailored pooling software promises to provide the best implementation for the respective RDBMS.

Comment by Dmitrijs Goloscapovs [ 2022 Jan 07 ]

Available in versions:
  - pre-6.0.0beta2 - 56f98dcb04, 023f240bae3

Documentation updated:

Comment by Alexei Vladishev [ 2022 Jan 11 ]

This functionality is coming in Zabbix 6.0 LTS in a few weeks. Meanwhile you may preview it in the latest beta or RC releases.





[ZBXNEXT-2339] Proxy cascading Created: 2014 Jun 10  Updated: 2021 Mar 17

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 2.2.3
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Andreas Franke Assignee: Unassigned
Resolution: Unresolved Votes: 16
Labels: dm-nextgen, nested, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-3898 Proxy to proxy communication Closed
duplicates ZBX-16466 2 proxies between Zabbix and the agent Closed
is duplicated by ZBXNEXT-6518 does zabbix support two levels zabbix... Closed

 Description   

it would to be nice, when i could cascading proxys:

ZBX Server -> ZBX Proxy active -> ZBX Proxy passive -> DMZ Host XYZ



 Comments   
Comment by richlv [ 2014 Jun 10 ]

"next gen dm" would be a better fit for this functionality, but i can't find an issue about it right now - if it's found, this should be closed as a duplicate

Comment by Oleksii Zagorskyi [ 2014 Jun 11 ]

I don't recall already existing issues about "next gen dm".

Probably it's time to create and use new label
I think "dm-nextgen" should be ok.

Comment by Christian Anton [ 2017 Apr 06 ]

Actually, this would be an absolute killer feature! I often stumble over desired setups where it would be very benefitial to have, say a Zabbix server in a natted network, a proxy having a public fixed IP address and then other proxies, again behind NAT devices. Also, larger organization structures with networks spread over the world would benefit from this feature quite a lot.

Comment by Marc [ 2017 Apr 06 ]

I'm a bit concerned about the increased delay by DataSenderFrequency resp. ProxyDataFrequency of each proxy in the chain.

When it's just about breaking the TCP connection, then this can likely justified by a reverse proxy like HAProxy:

Zabbix server --> HAProxy --> Zabbix proxy <--> Zabbix agent
Zabbix server <-- HAProxy <-- Zabbix proxy <--> Zabbix agent

When it's on the other hand about a connection direction change, then there's indeed something new required. Something that may act like a configuration cache and data queue or data transceiver, depending on the proxy mode:

Zabbix server --> Queue       <-- Zabbix proxy <--> Zabbix agent
Zabbix server <-- Transceiver --> Zabbix proxy <--> Zabbix agent

Where I'd actually limit it to the latter, the Zabbix transceiver. But I think now I'm slightly off-topic

Edit: Transceiver does not appear appropriate. Mediator is possibly a better term.

Comment by Christian Anton [ 2017 Apr 06 ]

Yes, it's usually the second setup that I see a need for, and the "Queue" and "Tansceiver" is actually exactly what the Proxy does, but unfortunately not in such a chain. Sure you would have to set your DataSenderFrequency accordingly, but it should be OK to just take a little longer until agent configuration drops through the chain of proxies.
Btw for the first of the scenarios (with HAProxy), do you have an example config on how this could look like on the HAProxy side?

Comment by Andrew [ 2017 Sep 06 ]

I have some hosts that are in a remote DC and have some nodes connected via a VPN to those hosts. I monitor the remote hosts via a proxy and want to start monitoring the far nodes but don't have a direct connection to them (so would like to connect

zabbix server -> DC proxy -> system (with zabbix-proxy) ->
remote vpn nodes with no direct route (zabbix-agent)

Comment by Fred Blaise [ 2017 Nov 17 ]

Hi all,

I stumbled upon that, and as a matter of fact, I always thought that chaining proxies in any way was not supported. Currently running 3.2.7.

However, I have a setup that's like this:

zabbix agent <-- zabbix proxy in DMZ (passive) <-- zabbix proxy internal network (passive) <-- zabbix master

It seems I am getting values for all, no error. Everything looks fine.

Am I just getting lucky? Or that configuration is actually supported?

Thank you.

Comment by Tomasz Zieliński [ 2018 Jul 20 ]

@Fred, as far i understand Zabbix Master sends configuration to zabbix proxy internal, so you setup it on zabbix gui,  but in what way zabbix proxy in DMZ receive configuration from proxy Internal ? How do you setup it ? can you share some config ?

 

Comment by Marcos Machado [ 2021 Feb 28 ]

My main take on this one is regarding security. Zabbix server often has lots of key to many kingdoms (e.g. ssh keys for remote commands) and creeps me out letting its server port opened to the world. One single vulnerability in a publicly available 10051 could be a catastrophe.

A passive proxy in a DMZ consolidating all the data from agents and other proxies could avoid exposing the server to the world entirely.

                ,-------------,
ZBX server ---> | ZBX passive | <--- ZBX remote active proxy <---> ZBX active/passive agents
                |   proxy     | <--- ZBX active agents
                `-------------`

My approach so far is to restrict access to the zabbix server based on source IPs of the proxies, but this is cumbersome, specially in environments where active proxy resides behind failovers and can arrive from many source IPs (some backup links are dynamic)

 





[ZBXNEXT-2282] Monitoring Host Items by different proxys Created: 2014 Apr 27  Updated: 2014 Apr 30

Status: Confirmed
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: 2.2.3
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Vadim Nesterov Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I have vmware cluster in datacenter. I use LLD to discover VMs. I get IP of Guest OS using VMWare Perl SDK. Zabbix Host is located in the datacenter too. But I need to monitor PING to every VM outside datacenter. Sure I can use proxy outside datacenter. But I don't want to monitor all VM keys by proxy.
So, it will be great if you add monitor not only host by proxy, but every item can be monitor by different proxy.






[ZBXNEXT-2279] zabbix[proxy,,lastaccess] internal item should be always performed by server Created: 2014 Apr 23  Updated: 2018 Jan 11  Resolved: 2014 Jul 17

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.2.3
Fix Version/s: 2.3.3

Type: New Feature Request Priority: Minor
Reporter: Gabriele Armao Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: internalmonitoring, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sub-task

 Description   

it would be very useful if the zabbix[proxy,,lastaccess] internal item would always be performed by Zabbix Server even if the item is configured on a host monitored by a Zabbix Proxy, in this way, it would be trivial to add to the existing Zabbix Proxy Template an item that checks if the Zabbix Proxy is reporting correctly to the Server.
In this case, the second parameter (Proxy Name) should be omitted and automatically replaced with the proxy used by the host that is using the item.



 Comments   
Comment by richlv [ 2014 Jul 16 ]

this will most likely be solved in ZBXNEXT-1848

Comment by Alexander Vladishev [ 2014 Jul 17 ]

Available in pre-2.3.3 (trunk) r47422.

Comment by Martins Valkovskis [ 2014 Jul 18 ]

Documented with ZBXNEXT-1848

sasha CLOSED

Comment by OFN Team [ 2014 Jul 31 ]

I think that new zabbix should provide special key which will generate json string which can be used on add monitoring of zabbix[proxy,<proxy_name>,lastaccess] over LLD .. if something like this is not implemented yet.

Without this probably will be quite hard to maintain proxies availability monitoring in environments where set of proxies is not static.

sasha Moved to ZBXNEXT-2548.

Comment by Oleksii Zagorskyi [ 2015 Mar 10 ]

It worth to mention that the proxy name (2nd item key param) is still required.
So Gabriele's request to do it optional - was ignored.

But ZBX-8898 suggests a workaround.





[ZBXNEXT-2168] Proxy data (history) sending prioritization Created: 2014 Feb 19  Updated: 2019 Aug 20

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: 2.2.2
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: proxy, synchronization
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

It would be extremely helpful for Proxies to be able to prioritize the sending of some types of data. It'd be pretty cool if the server could have a way to tell a proxy "Hey, this item has a trigger associated with it" and then the proxy could prioritize sending that data over something else that doesn't have a trigger at all. This would prevent problems where huge data backlogs can cause triggers to be missed for long periods of time because data that doesn't matter to triggers is sent in the same priority as data that DOES matter.

Another option to this would be to instead allow each item to have a configured priority. That data could be sent to the proxies instead and the proxy could be sure to send that data first and only send data in a priority order.



 Comments   
Comment by richlv [ 2014 May 22 ]

as discussed today, this would be a great feature (especially for the proxy internal monitoring items).

at least one edge case, though... if proxy has some config and then triggers are added/changed on the server, proxy will not know about that for a while, thus data sequence - triggers/events would be messed up. while not a frequent situation, edge cases are the most annoying to debug

per-item prioritisation would be a bit too much of a micro-management, imho

Comment by Marc [ 2016 Apr 22 ]

ZBXNEXT-409 appears distantly related.

Comment by Oleksii Zagorskyi [ 2019 Feb 28 ]

See also ZBXNEXT-5075





[ZBXNEXT-1946] Probably wrong queue calculation for items behind proxies Created: 2013 Oct 03  Updated: 2017 May 31  Resolved: 2014 Sep 04

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Server (S)
Affects Version/s: 2.0.8
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Marc Assignee: Unassigned
Resolution: Won't fix Votes: 2
Labels: calculation, flexibleintervals, proxy, queue
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-8656 Incorrect queue calculation when item... Closed

 Description   

It's probably rather a request for improvement than a bug.

When using items with flexible intervals only (regular interval set to 0) behind proxies then the calculation of delayed items is not correct.
As soon as the time window of the flexible interval ends (5mins/day) the corresponding item gets calculated as delayed.

A quick investigation shows that flexible intervals are not taken into account behind proxies:

  1. sed -n '933,934p' src/libs/zbxdbhigh/db.c
    if (0 != proxy_hostid)
    nextcheck = lastclock + effective_delay;
  1. grep -A1 "!= \$row['proxy_hostid']" frontends/php/queue.php
    if(0 != $row['proxy_hostid']){
    $res['nextcheck'] = $row['lastclock'] + $res['delay'];

    if(0 != $row['proxy_hostid']){
    $res['nextcheck'] = $row['lastclock'] + $res['delay'];

    if(0 != $row['proxy_hostid']){
    $res['nextcheck'] = $row['lastclock'] + $res['delay'];

I'm sure there was a good reason for this. But is it intended to work this way for above mentioned scenarios?



 Comments   
Comment by richlv [ 2014 May 13 ]

ZBX-8202 could be related

Comment by Filipe Paternot [ 2014 May 13 ]

ZBX-8035 could be related too?

Comment by Aleksandrs Saveljevs [ 2014 Sep 04 ]

It was probably done that way to workaround the case where server and proxy clock are not synchronized.

In the latest Zabbix 2.2, where delayed item queue is calculated by the server (rather than the frontend, as in 2.0), this problem is not present (excepting the soon-to-be-fixed ZBX-8476).

So we decided not to fix it in Zabbix 2.0, which would be hard to fix in the frontend alone. For this reason, closing as "Won't fix".

Comment by Marc [ 2014 Sep 04 ]

Sounds reasonable to me.
Thanks for the explanation.





[ZBXNEXT-1884] A way to send values for every (proxied) host from one source Created: 2013 Aug 31  Updated: 2013 Aug 31  Resolved: 2013 Aug 31

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.0.7
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: distributedmonitoring, newitemtype, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-1285 Trap receiving on main server instead... Open

 Description   

Currently item values have to be send to server/proxy according to 'Monitored by proxy' setting in respective host configuration.
It would be really nice if there is a way to feed suitable host items (e.g. trappers or a new item type) from one source/host (via one proxy) regardless of target host's proxy setting.

This functionality might be valuable in environments where hosts with different setting for 'Monitored by proxy' exist.
Wherever one can evaluate data for many hosts and want them be located in their corresponding Zabbix hosts , this functionality could help.

A use case for example might be a computer backup system that can be queried to list the last backup status for every host.
Now if one wants to send this status to an item belonging to its corresponding host in Zabbix, one has to send data according to the host's 'Monitored by proxy' setting.
This can be acceptable up to a few proxies but is out of question having lots of them - beside the fact that the sending host has to be able/allowed to access every proxy

I have absolutely no idea how this should be implemented (at leeast without deep cuts).



 Comments   
Comment by richlv [ 2013 Aug 31 ]

i believe the main goal is the same as ZBXNEXT-1285, marking as dupe

Comment by Marc [ 2013 Aug 31 ]

nope, it doesn't. But it could





[ZBXNEXT-1788] Multi location monitoring voting members Created: 2013 Jun 11  Updated: 2022 May 25  Resolved: 2022 May 25

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Frank Assignee: Unassigned
Resolution: Declined Votes: 4
Labels: dm, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The current implementation of Distributed Monitoring (DM / Proxy) is not very optimal.

  • Proxy: The primary Zabbix server is the SPOF. If it fails, the proxy cannot send data to the master and does not have the ability to notify anyone about problems
  • DM: They individually check & report when there are issues, which means this can lead to duplicated reports or false positives/negatives when one of the servers detects a failure (which might be due to network issues on the Zabbix server's end)

It would be better if the DM setup would be more like a voting system where a master could be selected which takes care of reporting and the nodes only report the status.
When the primary elected node fails, the voting system kicks in and picks a different server.
This would make the Zabbix monitoring infrastructure more resilient and would only have one server responsible for sending reports at any given time to prevent duplicated reports.

MongoDB uses a similar approach to elect a new master, this might be a valuable improvement to Zabbix' distributed monitoring.



 Comments   
Comment by yayo [ 2013 Jun 14 ]

also, we need a clear description of distributed monitoring in HA: in the classic distributed zabbix monitoring every point is a SPOF because if one proxy goes down every server looks at this proxy fails to send data (or metrics are lost). If the Master fails every proxy loss data without any alert (can be mitigated using a failover cluster configuration)

Comment by Oleksii Zagorskyi [ 2022 May 25 ]

In 6.0 things are very different now, so this is not actual anymore -> Closing.





[ZBXNEXT-1581] ability to reload passive proxy config from the frontend Created: 2013 Jan 18  Updated: 2022 Jul 10  Resolved: 2022 Jul 10

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Fixed Votes: 3
Labels: passiveproxy, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

would be useful to expose a button or similar control in administration -> dm -> proxies to reload passive proxy config data from the server.

this depends on ZBXNEXT-1580



 Comments   
Comment by Alexei Vladishev [ 2022 Jul 10 ]

It was implemented under ZBXNEXT-1580 in Zabbix 6.2.





[ZBXNEXT-1580] ability to reload passive proxy config data Created: 2013 Jan 18  Updated: 2024 Apr 10  Resolved: 2022 May 10

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: 6.2.0alpha1, 6.2 (plan)

Type: New Feature Request Priority: Major
Reporter: richlv Assignee: Dmitrijs Goloscapovs
Resolution: Fixed Votes: 20
Labels: passiveproxy, proxy
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-7073 Ability to send the configuration to ... Closed
Sub-task
depends on ZBXNEXT-7570 Server should know if active proxy's ... Open
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-7455 Frontend changes to reload passive pr... Change Request (Sub-task) Closed Andrejs Verza  
Team: Team A
Team: Team A
Sprint: Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022)
Story Points: 4

 Description   

active proxies may be forced to reload their configuration data. would be useful to tell zabbix server to re-send configuration data to passive proxies as well



 Comments   
Comment by richlv [ 2013 Jan 18 ]

this should be available both as a commandline option and as something server accepts as a command on it's trapper port to support ZBXNEXT-1581

security should be considered so that only superadmins could do this

Comment by Filipe Paternot [ 2014 Apr 15 ]

Maybe force after a server reload (config_cache_reload) so it would sync to its proxies as well.

+1 for this

Comment by Michael Wright [ 2019 Jan 31 ]

I think really the proxy should be able to ask the server to send it its config, and proxies should (by default probably, but according to config) then make this request when the server connects for the first time after build/init.

This way new proxies which are built and put into service on a continuous deployment basis don't need operator intervention.

Comment by dimir [ 2021 Oct 14 ]

Re-loading the list of user parameters without Agent restart was implemented in ZBXNEXT-6936 

Comment by Alexei Vladishev [ 2022 Apr 08 ]

Just a quick update. This functionality is in QA currently, will be available in one of alphas of Zabbix 6.2 for early preview.

Comment by Andrejs Verza [ 2022 Apr 13 ]

Implemented in 6.2.0alpha1 (master) c959efd343a

User documentation updated:

Comment by Gustavo Guido [ 2022 Apr 29 ]

In the online help it says

zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2

Will this work besides the proxy being active or passive ?

Comment by Alexei Vladishev [ 2022 May 02 ]

[email protected] , it works for all active and passive proxies.





[ZBXNEXT-1411] ZABBIX-Proxy per host interface Created: 2012 Sep 07  Updated: 2018 Feb 16

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Server (S)
Affects Version/s: 2.0.2
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 11
Labels: host, interface, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux, CentOS-6, PostgreSQL 9.1.4, Apache HTTPD-2.2.15, PHP-5.3.3



 Description   

I'm evaluating ZABBIX again since version 2.0 was released.

Our servers are equipped with remote management adapters. The networks of these adapters differ from the networks where the hosts reside.
Because a ZABBIX-Proxy can only be assigned globally per host, we can not put such RMAs to their corresponding hosts.

Is there any chance to get the option to choosse a ZABBIX-Proxy per host interface?



 Comments   
Comment by Justin McNutt [ 2013 May 22 ]

I would like to see a feature like this as well. My management would like me to be able to provide "perspectives" on a network device. That is, they want me to be able to show whether a switch is reachable not only locally (from a "primary" proxy) but also remotely (from a proxy farther away).

This is especially important when monitoring services like DNS, where it is extremely useful to be able to show that a service was up and running, since the local proxy could reach it, but that there was a network problem somewhere because the external proxy was unable to reach it.

Suggestion:

Make it so that a single Host can have multiple Interfaces, defined by the (IP/DNS, proxy) tuple, where "proxy" can be NULL when that Interface is monitored by the Zabbix host itself.

One problem I see is that this may confuse how Items work. Would ALL Items be re-tested per Interface/Proxy? Or just certain ones? Some more thought needs to be given to this to make it feasible.

Comment by Raymond Kuiper [ 2014 Aug 27 ]

Another reason why this should be implemented is ZBXNEXT-1285.
This would allow us to send traps from zabbix_sender to the main Zabbix server for hosts that are monitored by proxies.

Comment by Raymond Kuiper [ 2014 Aug 27 ]

ZBXNEXT-735 would be needed to effectively use this new functionality.

Comment by Raymond Kuiper [ 2015 Feb 16 ]

I also have the need to use external checks for some proxied hosts that need to run on the central zabbix server instead of on the proxies. This might allow that functionality as well.

Comment by Philipp Jakubowski [ 2015 Jul 09 ]

This feature is needed in multiple ways for us...

Comment by Timo Reimann [ 2018 Feb 16 ]

This feature would be very useful for our deployment, too. I think it would be best to select the Zabbix proxy on interface basis. Using this setup, we could use some kind of production proxy for Zabbix agent checks and a Out-of-band management proxy for SNMP checks against the servers lights-out management card.

Currently we need to create two hosts for each server: one host for checks against Zabbix agent and another one to check the server hardware using SNMP in a dedicated Out-of-band management network.





[ZBXNEXT-1382] Restrict Proxy Access by User Group Created: 2012 Aug 27  Updated: 2024 Feb 29

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.0.0
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Jiann-Ming Su Assignee: Unassigned
Resolution: Unresolved Votes: 13
Labels: access, permissions, proxy, usergroups
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RedHat el6


Issue Links:
Duplicate
is duplicated by ZBX-11067 Host Proxy selection based on user pe... Closed

 Description   

It may be useful in a shared zabbix environment to restrict proxy access by user groups. A certain group may want to stand up their own zabbix proxy and restrict usage to only admins in their user group.



 Comments   
Comment by Raymond Kuiper [ 2012 Oct 15 ]

Like it, might help ease the path to the new DM model as well.

Comment by Antti Hurme [ 2016 Aug 22 ]

Vote from here as well, will help with a multi-user environment.

Comment by Matteo Lobbiani [ 2016 Dec 29 ]

An user can use discovery system to discover host from a proxy connected in a network that he doesn't have access.

Comment by Marc [ 2017 Mar 27 ]

Should it be implemented by selecting permitted proxies on User group level or by selecting permitted User groups on proxy configuration level? Or something else?

Comment by Antti Hurme [ 2017 Mar 31 ]

As we already have users and groups, it would be good to either add users and groups to a proxy, or add the proxy to a host group to inherit that host group permissions.

Comment by Martin Hajducik [ 2021 May 20 ]

Hello, I would like to revive this topic. After checking latest documentation (version 5.4 at this time) and also after checking web user interface function is not there yet. 

As it was mentioned by other community members, functionality of restricting certain users or roles to particular proxy would be appreciated. 

I don't want other users (lets say not so skilled or even unauthorized) to choose or experiment with proxies which are not belong under their scope.

It would be great feature to to basically set some kind of permissions on specific proxy to avoid unauthorized manipulation.  

Maybe this can be also treated as security feature enhancement.

 

Thank you

Wish you a great day

Your community fan Martin

 

 

Comment by Rodrigo P [ 2023 Jul 19 ]

Hi.

One more vote from here. We really need this feature in a multi tenant environment.

Thank you.





[ZBXNEXT-1290] Support of proxy in GUI Scripts Created: 2012 Jun 25  Updated: 2014 Jan 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
Affects Version/s: 1.8.13, 2.0.0
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Laurent SEROR Assignee: Unassigned
Resolution: Unresolved Votes: 7
Labels: globalscripts, gui, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Web Frontend (GUI)


Issue Links:
Duplicate
is duplicated by ZBX-600 Can not ping from map Closed

 Description   

GUI Scripts do not use the proxy when the host is monitored by the proxy. Usually, when there is a proxy, the host is not reachable from them. Ping script by example will fail even if the host is up. We need to be able to use the script (by example ping) from the proxy.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Jul 09 ]

ZBXNEXT-1276 is a bit related





[ZBXNEXT-1267] discovery uniqueness and proxies Created: 2012 May 31  Updated: 2014 Sep 16  Resolved: 2013 Sep 18

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: 2.1.5

Type: New Feature Request Priority: Major
Reporter: Ghozlane TOUMI Assignee: Unassigned
Resolution: Fixed Votes: 2
Labels: networkdiscovery, proxy, uniqueness
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File 1hi13.png     PNG File Tfgjo.png     File ZBXNEXT-1267_2.0.8.patch     PNG File ZbbjV.png     PNG File b4E8n.png     PNG File ipkAt.png     PNG File l2mTl.png     PNG File nByLV.png     PNG File oRwBG.png     PNG File oiwnk.png    
Issue Links:
Duplicate
is duplicated by ZBX-6924 zabbix agents with the same IP moving... Closed

 Description   

I'm in a situation where 2 client have the same range of IP.
I have setup discovery on the deployed proxies, with "Device uniqueness criteria" set to IP address as it the only data I'm sure to get.
Unfortunately the associated hosts are mixed up between the 2 proxies.

I think IP "uniqueness criteria" should include the proxy, or at least give us the option of using the proxy as part of the uniqueness algorithm.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Nov 22 ]

I'd consider this feature as most critical if we will concern the "uniqueness" limitations, so I'm linking in this comment related issues.

A bit related issue - ZBXNEXT-1495
Related issue ZBXNEXT-213

Comment by Oleksii Zagorskyi [ 2012 Nov 23 ]

Some technical details available here: http://www.zabbix.com/documentation/2.0/manual/config/notifications/action/operation/other

I've performed several experiments with and without proxies (all are ~2.0.4rc1).
I used two discovery rules (1st(id=10) - zabbix agent check "system.uname", 2nd(id=11) - snmp check "SNMPv2-MIB::sysName.0") with identical short IP range.

In each discovery rule I used NOT IP address uniqueness criteria but different ones - zabbix and snmp respectively.
Returned values for particular host were different for agent and snmp checks.

Without proxies the result I've received was as expected:
snmp interfaces have been added to existing hosts (already with zabbix agent interfaces)
It's actually described in documentation bottom of a page http://www.zabbix.com/documentation/2.0/manual/discovery/network_discovery.
There hard to complain for zabbix server because a server executing it has single routing table.
But ... there still could be an option to control this - create new host or add new interface.

But WITH proxies received results were as not intuitively expected.
I had hosts (with zabbix interfaces) created by 1st drule DISCOVERED by a 1st proxy,
then I disabled 1st drule and enabled 2nd drule performed on another 2nd proxy.

IPs from 2nd proxy have been added as snmp-interfaces to hosts previously created by 1st discovery from 1st proxy.

We know that zabbix server is responsible to process results of network discovery from proxies.
But in this case I would expect that zabbix server will take care that results of discovery returned from ANOTHER 2nd proxy.

So zabbix anyhow is not ready to perform discovery of identical IP ranges.

Comment by Adrian Lewis [ 2013 Aug 23 ]

I don't suppose there's any way to extend this to cover situations where you may want two proxies to monitor the same device for redundancy purposes. While the redundancy aspect may not be a current feature, designing the uniqueness to account for this would be good architecturally. Perhaps have some form of metadata attached to the proxy that would define whether the devices are in fact on the same IP network or not. In the use-case of an IT service provider monitoring clients, the metadata would clearly be the customer name or ID.

I'm just mentioning this as it seems that this feature is currently under development so it would be a shame not to mention it now. If it requires more funding I would consider helping on this front.

Comment by Oleksii Zagorskyi [ 2013 Aug 23 ]

No, this feature is not under development currently (status=open).

I wanted to add some technical details.
In a function "add_discovered_host" (operations.c#190) for both (network discovery and autoregistration) events server will update "monitored by proxy" host field:

else
			{
				if (host_proxy_hostid != proxy_hostid)
				{
					DBexecute("update hosts"
							" set proxy_hostid=%s"
							" where hostid=" ZBX_FS_UI64,
							DBsql_id_ins(proxy_hostid), hostid);
				}

				DBadd_interface(hostid, interface_type, 1, row[2], row[3], port);
			}

if discovered|autoregistered host by|from another proxy and the host already exists.

Comment by Michael Brown [ 2013 Aug 23 ]

Screenshots of my configuration causing the issue

Comment by Adrian Lewis [ 2013 Aug 26 ]

According to http://www.zabbix.com/development_services.php this is under development. Is that not correct?

Comment by Oleksii Zagorskyi [ 2013 Aug 27 ]

hmm, god catch Adrian
I didn't know about that.

I'm not sure is it indeed under development at the moment.

Comment by Michael Brown [ 2013 Aug 30 ]

Any update on the development progress of this feature? This is a showstopper for us fully implementing Zabbix.

Comment by Michael Brown [ 2013 Sep 13 ]

I see that Andris Zeila was assigned to this task.

Hello Andris! Does this mean that you are working on this feature?

How far along is the development? We are eagerly awaiting this feature as this is a showstopper for our Zabbix implementation.

Comment by Adrian Lewis [ 2013 Sep 13 ]

Hi Andris - just want to say pretty much the same as what Michael has said. Obviously I can read that the details on this issue do not have a "Fix Version" set but do you know at this early stage if this is likely to end up in 2.2 or are we probably going to have to wait for 2.2.1 or even 2.4?

Comment by Andris Zeila [ 2013 Sep 16 ]

Hi, I just started to work on it and yes, it should be done for 2.2

Comment by Andris Zeila [ 2013 Sep 16 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-1267

Comment by richlv [ 2013 Sep 16 ]

(1) let's have a spec on .org

wiper as it was decided to nod create an option for this the changes are quite trivial. I don't think we need to write a spec on such changes.

<richlv> as could be seen by other changes, we do - but i guess it's too late for this one, CLOSED

Comment by Alexei Vladishev [ 2013 Sep 18 ]

I just discussed it with sasha. We decided to implement it as initially suggested, i.e. hosts discovered by different proxies are considered to be different. There will be no options to control it.

Note that current implementation allows several physical hosts (having same IP) to be treated as a single one in Zabbix, it should not be allowed by design.

Comment by Andris Zeila [ 2013 Sep 18 ]

In that case I'm setting it as resolved - the current fix (r38521) covers the initial suggestion (considering hosts discovered by different proxies to be different).

Comment by Michael Brown [ 2013 Sep 18 ]

Andris,

Does this feature depend on anything in 2.2? Or will we be able to backport it to 2.0?

Comment by Michael Brown [ 2013 Sep 18 ]

Untested backport of ZBXNEXT-1267 to 2.0.8

Comment by Andris Zeila [ 2013 Sep 19 ]

If there were no real problems in backporting this patch (missing fields or something like), then it should work. At least I can't think about any dependencies offhand.

Comment by Alexander Vladishev [ 2013 Sep 19 ]

Successfully tested!

Please review my changes in r38620.

Comment by Andris Zeila [ 2013 Sep 19 ]

Updated documentation, please review:

sasha CLOSED

Comment by Michael Brown [ 2013 Sep 19 ]

I've been running on 2.0.8 using the backported patch with no issues - much better, thanks!

Comment by Adrian Lewis [ 2013 Sep 19 ]

Thank you for all this work - you've made me very happy. Just one last question - when is it likely that we'll see this in a full release. Do you think we'll see it first as 2.0.9 or as 2.2 and are there any projected dates, even vague? I'm really not comfortable patching 2.0.8 or running pre-release 2.2 code.

Comment by Alexander Vladishev [ 2013 Sep 23 ]

Available in version pre-2.1.5 (trunk) r38622.

Comment by richlv [ 2014 Feb 03 ]

this seems to work incorrectly with uniqueness criteria other than ip - see ZBX-7744





[ZBXNEXT-1112] Updated API Proxy methods Created: 2012 Feb 09  Updated: 2013 Dec 29  Resolved: 2013 Dec 28

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 1.8.10
Fix Version/s: 2.0.0

Type: New Feature Request Priority: Minor
Reporter: Ryan Assignee: Alexei Vladishev
Resolution: Fixed Votes: 0
Labels: patch, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS PHP5.2


Attachments: File class.cproxy.php.patch    

 Description   

Proxy API only support the get() method. This patch include support for create() and update() as well. It has been tested on 1.8.4, 1.8.6 and 1.8.10.



 Comments   
Comment by richlv [ 2013 Dec 28 ]

this was added in zabbix 2.0, but i can't find which exact issue handled that





[ZBXNEXT-1098] internal checks for Zabbix proxy Created: 2012 Jan 30  Updated: 2013 Dec 08  Resolved: 2013 Jul 25

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P)
Affects Version/s: None
Fix Version/s: 2.1.2

Type: Change Request Priority: Major
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Fixed Votes: 29
Labels: internalmonitoring, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: XML File Template App Zabbix Proxy.xml     Text File zbxnext-1098.patch    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-646 Add proxy argument to queue item to t... Closed
is duplicated by ZBXNEXT-234 Required a method for monitoring heal... Closed

 Description   

Internal checks for Zabbix proxy is useful for checking performance of the Proxy

  • proxy[log]
  • proxy[process] (internal process busy rates)
  • proxy[queue] (same as server queue)
  • proxy queue (amount of values, not synced to the server yet)
  • proxy[requiredperformance]
  • proxy[wcache]
  • proxy[rcache]
  • amount of hosts monitored (calculated by the server)
  • amount of items monitored (calculated by the server)


 Comments   
Comment by richlv [ 2012 Jan 31 ]

related to ZBXNEXT-234

Comment by Pavel Vavilov [ 2012 Aug 03 ]

I think that is not trivial feature. It most important feature. This feature could help in troubleshooting on a large proxy-based environments and help to prevent capacity bottlenecks.

Comment by richlv [ 2012 Sep 05 ]

other internal checks that would be needed for a proxy :
— moved into the issue summary —

Comment by Łukasz Jernaś [ 2012 Sep 05 ]

Also checks for Java Gateway availability would be a great thing to have (not to mention that the GW itself would need a few more checks)

Comment by richlv [ 2012 Sep 05 ]

java gateway should be handled in separate issue[s]

Comment by richlv [ 2012 Sep 12 ]

kodai, is proxy[process] the busy/free rates of internal processes ?

<kodai> yes, it means proxy[process,<type>,<mode>,<state>] like zabbix[process,<type>,<mode>,<state>]

<richlv> thanks, clarified in my comment above

Comment by Alexey Pustovalov [ 2013 Mar 19 ]

just a small patch with Template for 2.0.6

Comment by richlv [ 2013 Mar 23 ]

note that proxy would need two "queue" items :
a) same as queue on server;
dotneft exists in the patch
b) queue of information to be sent to the server (amount of values)
dotneft need to implement

Comment by Andris Zeila [ 2013 Jul 18 ]

Specifications - https://www.zabbix.org/wiki/Docs/specs/ZBXNEXT-1098

Comment by Andris Zeila [ 2013 Jul 22 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-1098

Comment by Andris Zeila [ 2013 Jul 22 ]

(1) documentation update

Internal item descriptions - https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/internal?&#supported_checks
Upgrade notes - https://www.zabbix.com/documentation/2.2/manual/installation/upgrade_notes_220
What's new - https://www.zabbix.com/documentation/2.2/manual/introduction/whatsnew220

Please review

sasha REOPENED

  • zabbix[host,...] - whatsnew220 and "Internal item description" should be updated
zabbix[items]               Number of monitored items             => Number of enabled and not supported items

zabbix[items_unsupported]   Number of unsupported items           => Number of not supported items

zabbix[requiredperformance] Required performance of the Zabbix    => ... Zabbix server or Zabbix proxy ...
                            server, in new values per second
                            expected.

zabbix[triggers]            Number of triggers in Zabbix database => Number of active triggers

wiper RESOLVED

sasha CLOSED

Also, I changed description of zabbix[uptime], zabbix[boottime], zabbix[queue,...] and zabbix[wcache,values,all] items. Please review.

Comment by Volker Fröhlich [ 2013 Jul 22 ]

Number of monitored hosts was asked for in https://support.zabbix.com/browse/ZBXNEXT-1244

Comment by Alexander Vladishev [ 2013 Jul 24 ]

(2) [S] zabbix[hosts] returns number of monitored hosts and proxies. Only number of monitored hosts should be.

wiper RESOLVED in r37269

sasha CLOSED

Comment by Alexander Vladishev [ 2013 Jul 24 ]

(3) [P] zabbix[host,*,available] should be supported by proxy. Specification is changed.

wiper RESOLVED in r37270

sasha CLOSED

Comment by Alexander Vladishev [ 2013 Jul 24 ]

(4) [P] proxy_get_history_count(): "count" can be uninitialized in this function

wiper RESOLVED in r37273

sasha CLOSED

Comment by Alexander Vladishev [ 2013 Jul 24 ]

(5) [I] Compilation warnings

checks_internal.c: In function ‘get_value_internal’:
checks_internal.c:516:3: warning: implicit declaration of function ‘proxy_get_history_count’ [-Wimplicit-function-declaration]

wiper RESOLVED in 37275

sasha CLOSED

Comment by Alexander Vladishev [ 2013 Jul 24 ]

(6) Please review my changes in r37274

wiper reviewed and CLOSED

Comment by Alexander Vladishev [ 2013 Jul 24 ]

(7) [I] Triggers are not added for items:

  • zabbix[process,heartbeat sender,avg,busy]
  • zabbix[process,data sender,avg,busy]

These items are not added to "Zabbix internal process busy %" graph

Units (%) are not set for some items:

  • zabbix[wcache,text,pfree]
  • zabbix[wcache,history,pfree]
  • zabbix[rcache,buffer,pfree]
  • zabbix[process,data sender,avg,busy]

Graph should be renamed:

  • Zabbix server performance => Zabbix proxy performance

Screen should be renamed:

  • Zabbix server health => Zabbix proxy health

wiper RESOLVED in r37278

sasha CLOSED

Comment by Alexander Vladishev [ 2013 Jul 25 ]

Successfully tested!

Comment by Andris Zeila [ 2013 Jul 25 ]

Released in:
pre-2.1.2 r37302





Server: performance improvements (ZBXNEXT-318)

[ZBXNEXT-409] Fair priority for proxy and server data Created: 2010 Jun 14  Updated: 2017 Jun 29  Resolved: 2017 Jun 29

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Change Request (Sub-task) Priority: Major
Reporter: Alexei Vladishev Assignee: Unassigned
Resolution: Won't fix Votes: 1
Labels: performance, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Alexei Vladishev [ 2010 Jun 14 ]

When proxy recovers after a lengthy downtime (say 1-2 days) it kills performance of Zabbix Server making it process his own checks much much slower.

It happens because historical buffer is full.

The logic must be improved so that proxies or server must not be allowed to consume all buffer space. There must be a clear separation, say 50% for data coming from proxies, 50% for server data itself.

I think that we may come up with a better solution. The hardcoded 50% is also not a perfect solution in some cases (like 99% of data comes from proxies).

Comment by Marc [ 2016 Apr 22 ]

How about maintaining a metric in Zabbix server of average history cache footprint over all Zabbix proxies ,well and possibly also Zabbix server?

If overall history cache is utilized above a certain threshold, Zabbix server refuses to accept data from a Zabbix proxy, if cache utilization for that proxy is above the average threshold at that time.

An extended implementation of ZBXNEXT-2449 may additionally provide the proxy from which the values in history cache are coming from. By this one could derive the average metric as well as the current utilization per proxy.

Edit:
I could also think of deriving the cache-footprint-per-proxy metric from the respective expected NVPS - or even a combination of both approaches.

Edit:
ZBXNEXT-2168 appears distantly related.





[ZBXNEXT-187] sorting proxies by member count and last seen Created: 2009 Dec 22  Updated: 2013 Mar 04

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: proxy, usability, widget
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

when having many proxies, it would be useful to sort their list by member count and by last seen time

also sorting by mode (active/passive) and nvps would be useful - especially when having lots of proxies and trying to find out which ones have most nvps






[ZBXNEXT-171] if proxy is doing discovery, hostname lookup should be performed by it Created: 2009 Dec 11  Updated: 2017 May 31  Resolved: 2014 Mar 14

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: networkdiscovery, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-630 Automatic filling of DNS name for dis... Closed
is duplicated by ZBXNEXT-405 Auto Discovery automatic resolve Closed

 Description   

if a proxy is doing network discovery, it should perform hostname lookup, not zabbix server.
lookup result should be passed to the server.



 Comments   
Comment by Alexander Vladishev [ 2014 Mar 14 ]

Already implemented in version 1.9.2 under ZBXNEXT-630.





[ZBX-24363] Proxy is ignored when testing the item Created: 2024 Apr 17  Updated: 2024 Apr 18

Status: In Progress
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: 7.0.0beta3, 7.0 (plan)
Fix Version/s: 7.0.0rc1 (master), 7.0 (plan)

Type: Problem report Priority: Critical
Reporter: Nikita Gogolevs Assignee: Konstantins Prutkovs
Resolution: Unresolved Votes: 0
Labels: item, itemtest, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File proxy-trapper-log.txt     GIF File testing-item-offline-proxy.gif    
Issue Links:
Causes
caused by ZBXNEXT-8682 Item test should limit the returned v... Manual Test Failed
Team: Team C
Sprint: Sprint candidates
Story Points: 1

 Description   

Steps to reproduce:

It is possible to successfully complete the testing of an item using offline proxy / non-existing proxy on the frontend. No data about item test is appearing in the proxy log in case of testing via online proxy.
 
Precondition: create proxy

  1. Start server, agent and proxy
  2. Open Data collection -> Hosts -> Zabbix server
  3. Open any item that has Test option (for example: Linux available memory)
  4. Open Test window
  5. Select proxy for testing
  6. Click Get Value and test
  7. Review the result
  8. Turn off the proxy
  9. Repeat same steps with testing same item
  10. Review the results
  11. Check the proxy log

Result:
Results on the frontend are not affected by proxy status. 
Data about tested item  is not present in the proxy log file.

Log file with testing Linux available memory item using passive proxy (increased trapper debug level): proxy-trapper-log.txt

See video (testing item with offline proxy):

Expected:
In cases when proxy is offline - testing by proxy should not be possible.
Testing via online proxy should work correctly.






[ZBX-24290] Running a virus scan of the Zabbix Proxy docker images results in a malware alert Created: 2024 Apr 02  Updated: 2024 Apr 03

Status: Confirmed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.4.12, 6.4.13
Fix Version/s: None

Type: Defect (Security) Priority: Trivial
Reporter: Henrik Jessen Egholm Assignee: Alexey Pustovalov
Resolution: Unresolved Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

docker image zabbix/zabbix-proxy-sqlite3:alpine-6.4.13


Attachments: PNG File Screenshot 2024-04-03 at 12.02.33.png     PNG File image-2024-04-03-08-15-12-744.png    

 Description   

docker pull zabbix/zabbix-proxy-sqlite3:alpine-6.4.13

docker save /tmp/zabbix-proxy-sqlite3-6.4.13 

submit to https://www.virustotal.com/ Result : https://www.virustotal.com/gui/file/418ae0447fd17871e6d1390e437f89a7797c4ca2129158e8ed0001ca552982d0?nocache=1



 Comments   
Comment by Edgar Akhmetshin [ 2024 Apr 02 ]

Dear Henrik,

Could you please provide more information on a vulnurable part of image you are referring. 

According to https://www.virustotal.com/  portal it's not clear which part of the image is infected by malware. 

Also I have made same steps and uploaded the image:
https://www.virustotal.com/gui/file/9964741ff7cfceeec0510615bccd899d29d3159ee9f94a1dbf31c087aca3c4cf?nocache=1

docker pull zabbix/zabbix-proxy-sqlite3:alpine-6.4.13
alpine-6.4.13: Pulling from zabbix/zabbix-proxy-sqlite3
bca4290a9639: Already exists 
99a0dddffc2c: Pull complete 
144f2e3bcbce: Pull complete 
d36b9ec1c317: Pull complete 
93d192765e2a: Pull complete 
7fd7abae63dc: Pull complete 
4f4fb700ef54: Pull complete 
1ae684915b6e: Pull complete 
Digest: sha256:1f0fb2892f6682b48187024d8d0a187e797bc91d4925e5e74416dd8367f4b203
Status: Downloaded newer image for zabbix/zabbix-proxy-sqlite3:alpine-6.4.13
docker.io/zabbix/zabbix-proxy-sqlite3:alpine-6.4.13
docker save zabbix/zabbix-proxy-sqlite3:alpine-6.4.13 > ~/Downloads/zabbix-proxy-sqlite3-6.4.13

Please check your system for viruses/malware/etc...

Cannot reproduce.

Regards,
Edgar

 

Comment by Henrik Jessen Egholm [ 2024 Apr 03 ]

Hi Edgar

I have testet on multiple machines now, same result. So i doubt its malisious software on my end..

I did a docker image inspect, if you do the same we can compare:

 

// [
    {
        "Id": "sha256:82b04fe5beb1262b8e9885a96bc4237d6edbde2f95e222cc007ef9bc9f5e7a26",
        "RepoTags": [
            "zabbix/zabbix-proxy-sqlite3:latest"
        ],
        "RepoDigests": [
            "zabbix/zabbix-proxy-sqlite3@sha256:118d0d53d6e6c24924c7de76e6646020fa5ae56e84bf145b4f9b1a83bb1de6da"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2023-11-01T16:49:26.601779081Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "1997",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "10051/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "TERM=xterm",
                "ZBX_VERSION=6.4.8",
                "ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git",
                "MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs",
                "MIBS=+ALL"
            ],
            "Cmd": [
                "/usr/sbin/zabbix_proxy",
                "--foreground",
                "-c",
                "/etc/zabbix/zabbix_proxy.conf"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": {
                "/var/lib/zabbix/snmptraps": {}
            },
            "WorkingDir": "/var/lib/zabbix",
            "Entrypoint": [
                "/sbin/tini",
                "--",
                "/usr/bin/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "org.opencontainers.image.authors": "Alexey Pustovalov <[email protected]>",
                "org.opencontainers.image.created": "2023-11-01T16:47:54.637Z",
                "org.opencontainers.image.description": "Zabbix proxy with SQLite3 database support",
                "org.opencontainers.image.documentation": "https://www.zabbix.com/documentation/6.4/manual/installation/containers",
                "org.opencontainers.image.licenses": "GPL v2.0",
                "org.opencontainers.image.revision": "f67b49d04ef805698a6e56fc0755bfceb7908651",
                "org.opencontainers.image.source": "https://git.zabbix.com/scm/zbx/zabbix.git",
                "org.opencontainers.image.title": "Zabbix proxy (SQLite3)",
                "org.opencontainers.image.url": "https://zabbix.com/",
                "org.opencontainers.image.vendor": "Zabbix LLC",
                "org.opencontainers.image.version": "6.4.8"
            },
            "StopSignal": "SIGTERM"
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 48850709,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/536e6dab68a38513a98005d28826d3d0915a8f3a8664d234a27d7fb786f2f26e/diff:/var/lib/docker/overlay2/21152cb5499011aa7e7300c9468765f3b3e5bae56b22e298317e52f8eee51e1f/diff:/var/lib/docker/overlay2/b27b1567bdda2f5d3ecc9ffd8ef8bb7f82fa7d9dc23426d0b0ee94816681e209/diff:/var/lib/docker/overlay2/7b8886a52a9137695b37ac8a1ea976fe4a42a846d064956b665b1894fbf314ca/diff:/var/lib/docker/overlay2/5a84401ec6c304fd6a9adccbca5d14263dd89426b21561095ad5b65f79f25168/diff:/var/lib/docker/overlay2/e72ed5a5c7253a0510682918842863fd9ac00e8eec627ccb79f89bc6b6468967/diff:/var/lib/docker/overlay2/4a6e82b2b0b268331eedbdc7de9f69497c79c22b9e4b253f8648d0b460594825/diff",
                "MergedDir": "/var/lib/docker/overlay2/874be7c715f796f0641cdefb2a120d3337cde5120ab9f3e206030808fc5ec176/merged",
                "UpperDir": "/var/lib/docker/overlay2/874be7c715f796f0641cdefb2a120d3337cde5120ab9f3e206030808fc5ec176/diff",
                "WorkDir": "/var/lib/docker/overlay2/874be7c715f796f0641cdefb2a120d3337cde5120ab9f3e206030808fc5ec176/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:36b50b131297b8860da51b2d2b24bb4c08dfbdf2789b08e3cc0f187c98637a19",
                "sha256:520348355cf92101cf5cd1288790c58313ddfd581ecbb43b2dccca4110c633f4",
                "sha256:329bacefe2b66f10ea98f24faf0b98ff2f41e03d566e7650260c8f051da2ed5b",
                "sha256:f4b94fa65fa4b0ed7195bdbbe553c8f34cebd5969fe3a235f9302a375ec5135f",
                "sha256:de97434a06f350eeab9c21302e3508c047bc1b4edc1ce2a267498fb39230416b",
                "sha256:2a7c01a846f70fda7b68999c5ff720a9d84f779730d4f142e48b08dcdd0c59c1",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:eb8d05dd946fb43b8f031762a20b436aeed61847d99a6eefbdad1bffc9c2e17b"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]
 
Comment by Edgar Akhmetshin [ 2024 Apr 03 ]

6.4.13 as stated in the issue, not 6.4.8 like yours.

From the link provided by you https://www.virustotal.com/gui/file/418ae0447fd17871e6d1390e437f89a7797c4ca2129158e8ed0001ca552982d0?nocache=1 it's not clear what is the issue, since no details given.

Provide details or we are going to close as Cannot reproduce, since we are not able to repeat the issue.

docker inspect zabbix/zabbix-proxy-sqlite3:alpine-6.4-latest
[
    {
        "Id": "sha256:8250871245a2b5988cae1d987ad7ddf05005657ff02368ef3783943995eebafb",
        "RepoTags": [
            "zabbix/zabbix-proxy-sqlite3:alpine-6.4-latest"
        ],
        "RepoDigests": [
            "zabbix/zabbix-proxy-sqlite3@sha256:894dde297b786ae64857f36d349abe234de4086d0292443199a7068e31095f57"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2024-03-25T19:32:28.085938184Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "1997",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "10051/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "TERM=xterm",
                "ZBX_VERSION=6.4.13",
                "ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git",
                "MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs",
                "MIBS=+ALL",
                "NMAP_PRIVILEGED="
            ],
            "Cmd": [
                "/usr/sbin/zabbix_proxy",
                "--foreground",
                "-c",
                "/etc/zabbix/zabbix_proxy.conf"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": {
                "/var/lib/zabbix/snmptraps": {}
            },
            "WorkingDir": "/var/lib/zabbix",
            "Entrypoint": [
                "/sbin/tini",
                "--",
                "/usr/bin/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "org.opencontainers.image.authors": "Alexey Pustovalov <[email protected]>",
                "org.opencontainers.image.created": "2024-03-25T19:31:30.129Z",
                "org.opencontainers.image.description": "Zabbix proxy with SQLite3 database support",
                "org.opencontainers.image.documentation": "https://www.zabbix.com/documentation/6.4/manual/installation/containers",
                "org.opencontainers.image.licenses": "GPL v2.0",
                "org.opencontainers.image.revision": "6b85028331f30dcd3440888d846babd12eb01ae2",
                "org.opencontainers.image.source": "https://git.zabbix.com/scm/zbx/zabbix.git",
                "org.opencontainers.image.title": "Zabbix proxy (SQLite3)",
                "org.opencontainers.image.url": "https://zabbix.com/",
                "org.opencontainers.image.vendor": "Zabbix LLC",
                "org.opencontainers.image.version": "6.4.13"
            },
            "StopSignal": "SIGTERM"
        },
        "Architecture": "arm64",
        "Os": "linux",
        "Size": 57883698,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/801d17c977eff86df9d17d34430d96c3a16f0724c7df40a9ec97c60e06682db5/diff:/var/lib/docker/overlay2/c0d1b9917e21aeaadabcb87aed0f58dae791b0fbabacd45e60bf680328492ea2/diff:/var/lib/docker/overlay2/50efeced6a88fc4c0f2ff6718b66fc24e9be24155a256a4b46fb302c0c84f06b/diff:/var/lib/docker/overlay2/6155b00bb7689c948089cae4984fe8c4cecd37d1d3e426abd29c5d65edce9c1a/diff:/var/lib/docker/overlay2/e1097069af1160abe525697a1321ff0fbf2246e038f8d5725c66252e8fd4fbce/diff:/var/lib/docker/overlay2/f369e0020da36d0be7e0a2a8bd87c6c058d1a667027dd119c603cc99f60b30e0/diff:/var/lib/docker/overlay2/6b700c6ef0352ae6d34903a37301c3e10c99c9145776d75c6657a3e5629351c4/diff",
                "MergedDir": "/var/lib/docker/overlay2/19adcc0afa47e95420e7788e01c1f01d791e40b2cef8550577361113b998b2f4/merged",
                "UpperDir": "/var/lib/docker/overlay2/19adcc0afa47e95420e7788e01c1f01d791e40b2cef8550577361113b998b2f4/diff",
                "WorkDir": "/var/lib/docker/overlay2/19adcc0afa47e95420e7788e01c1f01d791e40b2cef8550577361113b998b2f4/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:b09314aec293bcd9a8ee5e643539437b3846f9e5e55f79e282e5f67e3026de5e",
                "sha256:3fc4faee24520134b1774b9d64c4735de263e0e043f6609897d05002c319c42a",
                "sha256:e1cdcd5ac1263081749cf0190bfc1c0ed9c39fa0c47e79249530e8a18086c12f",
                "sha256:9cb48388009572cf1fb936b415d71f53c6aa6d717b6bc24075f45d17601ae3e8",
                "sha256:ac23823325a52a6523d2d52896f6762776f6f03b87e79f10b4edeb318129e801",
                "sha256:60fd60f69253aeaa3767ff31562570453c164cdc6c506261134016a186e5f7ae",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:5206971b7aa73bc15148101df4cec74bf85065e20cab8d7311e905ba05107488"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]
Comment by Henrik Jessen Egholm [ 2024 Apr 03 ]

Sorry i inspected the wrong image, here is the correct one:

[hje@legion5 test]$ docker image inspect zabbix/zabbix-proxy-sqlite3:alpine-6.4.13
[
    {
        "Id": "sha256:0984689f3365ff0e5c8cd15f16ecdf01531d339d56c0ddc34225c4c9ecbc88c1",
        "RepoTags": [
            "zabbix/zabbix-proxy-sqlite3:alpine-6.4.13"
        ],
        "RepoDigests": [
            "zabbix/zabbix-proxy-sqlite3@sha256:1f0fb2892f6682b48187024d8d0a187e797bc91d4925e5e74416dd8367f4b203"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2024-03-25T19:15:03.326861911Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "1997",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "10051/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "TERM=xterm",
                "ZBX_VERSION=6.4.13",
                "ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git",
                "MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs",
                "MIBS=+ALL",
                "NMAP_PRIVILEGED="
            ],
            "Cmd": [
                "/usr/sbin/zabbix_proxy",
                "--foreground",
                "-c",
                "/etc/zabbix/zabbix_proxy.conf"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": {
                "/var/lib/zabbix/snmptraps": {}
            },
            "WorkingDir": "/var/lib/zabbix",
            "Entrypoint": [
                "/sbin/tini",
                "--",
                "/usr/bin/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "org.opencontainers.image.authors": "Alexey Pustovalov <[email protected]>",
                "org.opencontainers.image.created": "2024-03-25T19:14:13.088Z",
                "org.opencontainers.image.description": "Zabbix proxy with SQLite3 database support",
                "org.opencontainers.image.documentation": "https://www.zabbix.com/documentation/6.4/manual/installation/containers",
                "org.opencontainers.image.licenses": "GPL v2.0",
                "org.opencontainers.image.revision": "6b85028331f30dcd3440888d846babd12eb01ae2",
                "org.opencontainers.image.source": "https://git.zabbix.com/scm/zbx/zabbix.git",
                "org.opencontainers.image.title": "Zabbix proxy (SQLite3)",
                "org.opencontainers.image.url": "https://zabbix.com/",
                "org.opencontainers.image.vendor": "Zabbix LLC",
                "org.opencontainers.image.version": "6.4.13"
            },
            "StopSignal": "SIGTERM"
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 51551829,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/efa3da25a42aa19cf1c310fc01818da960b187a6f7d1ee2a0ebd30f13614387a/diff:/var/lib/docker/overlay2/ee80dabd4a6bf26906b6b9d65fc6eb887b53078cc2686e28a10ef64745e97ea7/diff:/var/lib/docker/overlay2/62cac2e266e852aab3490581e7df0e90754f779027f11abab1ee6d1303195434/diff:/var/lib/docker/overlay2/699f692012b3decf51fdeae1adb73f1d6ffdf937b4b15ffa12ba72e80305c58d/diff:/var/lib/docker/overlay2/6960034ae1176ef00d3316ac22ebfc076c6aa8c2873f3911faab01fedf63479e/diff:/var/lib/docker/overlay2/f5fd63441cb2dbefda393eb51be265431e412e19e8b9c57d97e2e4abdebc1cf3/diff:/var/lib/docker/overlay2/789506d06d61e48cb2e75cc6680635e7644f45df314eda7842bf018a1423a469/diff",
                "MergedDir": "/var/lib/docker/overlay2/5de271d6413a4f9ce53e8a9ba67a44800c4f71a2e8e0d14b8332f38cc2513748/merged",
                "UpperDir": "/var/lib/docker/overlay2/5de271d6413a4f9ce53e8a9ba67a44800c4f71a2e8e0d14b8332f38cc2513748/diff",
                "WorkDir": "/var/lib/docker/overlay2/5de271d6413a4f9ce53e8a9ba67a44800c4f71a2e8e0d14b8332f38cc2513748/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:d4fc045c9e3a848011de66f34b81f052d4f2c15a17bb196d637e526349601820",
                "sha256:9754da84522648019373734f522c9a6170a0650ef3ce6e36a79e99e4ef0f1708",
                "sha256:003055421ece2d16ffa68ebb96c79025f2e13f4b0dd45a31d6f0492789023dd8",
                "sha256:f47a5be3e01d6d335f457b454672c482edd7bc804aa6685c1cd51e143a1f90f1",
                "sha256:901ddd4cc3237b0d82fa3d577841023afe5ea66c180f531761aa7f5ad014e057",
                "sha256:39b64b507ce1e17a62b9a47cc1e0a893aafee696cd7f99f8173dd46c0b5f12c6",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:8d9ace76e6944ce1a136478b11f193452b358891f3128d6a4a765779029e0971"
            ]
        },
        "Metadata": {
            "LastTagTime": "2024-04-02T19:53:50.718509391+02:00"
        }
    }
]

And after extracting that image's blobs and submitting the files, i found it is the busybox file in the image that gives the warning:

https://www.virustotal.com/gui/file/5e0f7910dbb1dfa15c9b2993e913253a0fb43725edaba47b4bba88386436ae82/details

 

You are inspecting alpine-6.4-latest could you try with alpine-6.4.13 instead?

Comment by Mark Lahn Nykjær [ 2024 Apr 03 ]

I have pulled, saved and uploaded these versions, and they all flag up on virustotal:

zabbix-proxy-sqlite3:alpine-6.4.13 - https://www.virustotal.com/gui/file/60bae1029a80e7e17379ad8e6744ec825beb2a3ff25de89e49415c51abf5b68e?nocache=1

zabbix-proxy-sqlite3:alpine-6.4.12 - https://www.virustotal.com/gui/file/6d6e74e5e8e93be5653f2df9b80cda2fe7f8286a19a0c17e312065bcce047ab3?nocache=1

zabbix-proxy-sqlite3:alpine-6.4-latest - https://www.virustotal.com/gui/file/f82cab38eb4e9c05a1cceeb13b92336b6dde0debbcdf9f404b9fc9be53ba8081?nocache=1

zabbix-proxy-sqlite3:alpine-6.4.11 does not flag anything on VT.

 

These are pulled from DockerHub and have the following checksums:

$ docker images
REPOSITORY                            TAG                       IMAGE ID            CREATED          SIZE
zabbix/zabbix-proxy-sqlite3   alpine-6.4-latest     7c1bd1a76af4    8 days ago       51.6MB
zabbix/zabbix-proxy-sqlite3   alpine-6.4.13          0984689f3365    8 days ago       51.6MB
zabbix/zabbix-proxy-sqlite3   alpine-6.4.12          e61afd898cea    5 weeks ago     50.4MB
zabbix/zabbix-proxy-sqlite3   alpine-6.4.11          7d219d942543   2 months ago  47.1MB

Comment by Edgar Akhmetshin [ 2024 Apr 03 ]

Hello Henrik,

Found the difference, my system is arm64 and default images are arm64 (totally forgot about this ), so any arm64 is not affected by this issue.

With --platform flag for amd64 images can reproduce the issue.

Thank you for pinpointing to busybox part, since virus total shows mostly nothing about issue, just 'I don't like this'.

Regards,
Edgar

Comment by Edgar Akhmetshin [ 2024 Apr 03 ]

Probably related to some of the unresolved CVE issues of the alpine project:
https://security.alpinelinux.org/branch/3.19-main





[ZBX-24255] Interface for zabbix agent doesn't come up when added to be monitored by proxy Created: 2024 Mar 21  Updated: 2024 Mar 25  Resolved: 2024 Mar 25

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 7.0.0beta2
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Harith Al-Dabbagh Assignee: Arkadiusz Zyla
Resolution: Fixed Votes: 0
Labels: 7.0, Proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux VM


Attachments: PNG File image-2024-03-21-18-08-03-076.png    

 Description   

Steps to reproduce:

  1. Deploy Server, Frontend, Proxy (I tried 7.0.0beta2, didn't try older versions yet)
  2. Add Proxy to zabbix through frontend (Active mode)
  3. Deploy a zabbix agent on a certain host (Linux in my case)
  4. Add the host in zabbix frontend (agent interface, monitored by the proxy)

Result:
{}Interface never comes up for the host, only after restarting the proxy.
When adding the host directly to be monitored with the proxy, it works fine, and comes up instantly.

Expected:
Interface becomes available within after a short period of time.



 Comments   
Comment by Harith Al-Dabbagh [ 2024 Mar 21 ]

I should probably mention that I'm using docker for all of the components.

Comment by Harith Al-Dabbagh [ 2024 Mar 22 ]

zabbix.support Probably this is a problem report and not an incident report.

Comment by Harith Al-Dabbagh [ 2024 Mar 25 ]

Solved, forgot to set

set global log_bin_trust_function_creators = 1; 

When configuring mysql.





[ZBX-24242] Possible incorrectly discovered hosts for TCP check Created: 2024 Mar 20  Updated: 2024 Mar 27

Status: Confirmed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 7.0.0beta2, 7.0 (plan)
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Nikita Gogolevs Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: discovery, discoveryrule, proxy, server, tcp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File discovery-tcp.png    
Issue Links:
Causes
caused by ZBXNEXT-8827 Add UI error to Network Discovery rule Closed

 Description   

When using the TCP check, some hosts are getting discovered, but the host status switches to offline immediately. Necessary investigation, if hosts are discovered correctly.

Steps to reproduce:

  1. Create a discovery rule with TCP check, use any real network and default port. Use short update interval ~ 30s
  2. Run server / proxy
  3. Review the discovered hosts

Result:
Some discovered hosts have status switched to offline immediately. Possible discovery was triggered incorrectly.

See screenshot:






[ZBX-24162] unexpected field httptest.agent in proxxy version 6.4.12 Created: 2024 Feb 28  Updated: 2024 Feb 29  Resolved: 2024 Feb 29

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.4.12
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: David Stein Assignee: Zabbix Support Team
Resolution: Duplicate Votes: 1
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Docker, Debian 12


Issue Links:
Duplicate
duplicates ZBX-24161 Proxies need to be in 6.4.12, no comp... Closed

 Description   

Steps to reproduce:

  1. install zabbix to docker enviroment
  2. install zabbix proxy to clean debian and use the latest package 6.4.12
  3. connect zabbix to proxy, after few moments you start getting error "cannot process proxy onfiguration data received from server at "xxx.xxx.xxx.xxx": unexpected field "httptest.agent"

 

The problem is not at the Zabbix proxy v 6.4.11, we also pull latest docker images for dockeer. Web, Gateway also the server. 

The log from the proxy server: 

008975 sec]'
  1629:20240228:145501.677 In zbx_ipc_service_recv() timeout:1.000
  1646:20240228:145502.230 End of zbx_ipc_service_recv():2
  1646:20240228:145502.230 zbx_setproctitle() title:'availability manager #1 [queued 0, processed 0 values, idle 5.207852 sec during 5.208898 sec]'
  1646:20240228:145502.230 In zbx_ipc_service_recv() timeout:1.000
  1628:20240228:145502.257 zbx_setproctitle() title:'trapper #5 [processing data]'
  1628:20240228:145502.257 In zbx_ipc_async_socket_recv() timeout:0
  1628:20240228:145502.257 End of zbx_ipc_async_socket_recv():0
  1628:20240228:145502.257 trapper got '\{"request":"proxy config"}'
  1628:20240228:145502.257 In zbx_recv_proxyconfig()
  1628:20240228:145502.286 In zbx_proxyconfig_process()
  1628:20240228:145502.286 received configuration data from server at "109.105.43.209", datalen 15235
  1628:20240228:145502.287 End of zbx_proxyconfig_process()
  1628:20240228:145502.287 cannot process proxy onfiguration data received from server at "109.105.43.209": unexpected field "httptest.agent"
  1628:20240228:145502.287 In zbx_send_response_ext()
  1628:20240228:145502.287 zbx_send_response_ext() '\{"response":"failed","info":"unexpected field \"httptest.agent\"","version":"6.4.12"}'


 Comments   
Comment by Ilya Kruchinin [ 2024 Feb 29 ]

I'm experiencing the same issue in Docker, but based on Alpine.

237:20240229:064011.600 cannot process received configuration data from server at "zabbix-proxy.zabbix-monitoring./REDACTED/.com": unexpected field "httptest.agent"

Version 6.4.12

Updated: when reverting back to 6.4.11, the issue disappears.
It clearly is specific to v6.4.12 (official Zabbix docker image)





[ZBX-24158] Zabbix package downloads unsupported version of mysql Created: 2024 Feb 28  Updated: 2024 Apr 10  Resolved: 2024 Apr 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Packages (C), Proxy (P)
Affects Version/s: 6.4.12
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Jackson Panzer Assignee: Piotr Wegrzyn
Resolution: Cannot Reproduce Votes: 0
Labels: Debian, proxy, zabbix-server-mysql
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Raspberry pi running debian 12



 Description   

Steps to reproduce:

  1. Follow steps found here: Download and install Zabbix 6.4 for Debian 12 (Bookworm), MySQL
  2. When attempting to start the zabbix-proxy you will get an error message.  

Result:

934:20240227:211724.647 Unable to start Zabbix proxy due to unsupported MariaDB database version (10.11.03).
934:20240227:211724.647 Must not be higher than (10.10.xx).
934:20240227:211724.647 Use of supported database version is highly recommended.
934:20240227:211724.647 Override by setting AllowUnsupportedDBVersions=1 in Zabbix proxy configuration file at your own risk.

Expected:
Service started



 Comments   
Comment by Edgar Akhmetshin [ 2024 Feb 29 ]

Hello Jackson,

Could you please clarify:

  • exact Proxy version you are using: zabbix_proxy -V
  • exact MariaDB version from 'apt info mariadb-server'
  • platform and packages used: 'uname -m && apt-cache policy'

Regards,
Edgar

Comment by Jackson Panzer [ 2024 Feb 29 ]

I will look into these questions and get back to you.

Comment by Jackson Panzer [ 2024 Feb 29 ]

Zabbix_Proxy version is 6.4.1 

MariaDB: 10.11.3-1

 

While trying to test this zabbix-proxy was not being recognized as installed. So I decided to re-install it, since I am doing that I also wanted to report that everytime I try and install it I have to do 2 things.

 

  1. Manually download the SQL template because "sudo apt install zabbix-sql-scripts" says "Unable to locate package zabbix-sql-scripts"

2. Manually reset root password for MariaDB I have tried entering "zabbix", no password, and "password" but everytime it says incorrect password.

 

Comment by Jackson Panzer [ 2024 Mar 01 ]

When i do apt search zabbix this is what I get. 

 

golang-github-inexio-go-monitoringplugin-dev/stable 1.0.13-1 all
  Go lib for writing monitoring check plugins

grafana-zabbix/stable 2.5.1-1 all
  Zabbix datasource for Grafana

libzabbix-api-perl/stable 0.009-2 all
  abstraction layer over the JSON-RPC API provided by Zabbix

nagstamon/stable 3.10.1+ds1-6 all
  Nagios status monitor which takes place in systray or on desktop

pcp-export-pcp2zabbix/stable 6.0.3-1.1 armhf
  Tool for exporting data from PCP to Zabbix

pcp-export-zabbix-agent/stable 6.0.3-1.1 armhf
  Module for exporting PCP metrics to Zabbix agent

python3-protobix/stable 1.0.2-14 all
  Implementation of Zabbix Sender protocol (Python 3)

python3-pyzabbix/stable 0.8.2-1 all
  Zabbix API Python interface.

resource-agents/stable 1:4.12.0-2 armhf
  Cluster Resource Agents

uwsgi-core/stable 2.0.21-5.1 armhf
  fast, self-healing application container server (core)

yowsup-cli/stable 3.2.3-2 all
  command line tool that acts as WhatsApp client

zabbix-agent/stable 1:6.0.14+dfsg-1 armhf
  network monitoring solution - agent

zabbix-agent2/stable 1:6.0.14+dfsg-1 armhf
  Zabbix network monitoring solution - agent2

zabbix-frontend-php/stable 1:6.0.14+dfsg-1 all
  network monitoring solution - PHP front-end

zabbix-java-gateway/stable 1:6.0.14+dfsg-1 all
  network monitoring solution - Java gateway

zabbix-proxy-mysql/stable,now 1:6.0.14+dfsg-1 armhf [installed]
  network monitoring solution - proxy (using MySQL)

zabbix-proxy-pgsql/stable 1:6.0.14+dfsg-1 armhf
  network monitoring solution - proxy (using PostgreSQL)

zabbix-proxy-sqlite3/stable 1:6.0.14+dfsg-1 armhf
  network monitoring solution - proxy (using SQLite3)

zabbix-release/now 1:6.4-1+debian12 all [installed,local]
  Zabbix official repository configuration

zabbix-server-mysql/stable 1:6.0.14+dfsg-1 armhf
  network monitoring solution - server (using MySQL)

zabbix-server-pgsql/stable 1:6.0.14+dfsg-1 armhf
  network monitoring solution - server (using PostgreSQL)

zabbix-web-service/stable 1:6.0.14+dfsg-1 armhf
  Zabbix network monitoring solution - web-service

Comment by Jackson Panzer [ 2024 Mar 05 ]

Disregard I realized that the distribution I was downloading was wrong. 





[ZBX-23896] Proxy complaining about unexpected field "config.timeout_zabbix_agent" Created: 2023 Dec 28  Updated: 2024 Apr 10  Resolved: 2024 Jan 03

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 7.0.0alpha9, 7.0 (plan)
Fix Version/s: 7.0.0beta1, 7.0 (plan)

Type: Problem report Priority: Trivial
Reporter: user185953 Assignee: Alex Kalimulin
Resolution: Fixed Votes: 0
Labels: configuration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian 12


Attachments: PNG File zbx7queue.png    
Issue Links:
Causes
caused by ZBXNEXT-6144 Zabbix Proxy history handling without... Closed
Team: Team C
Team: Team C
Sprint: S2401
Story Points: 0.125

 Description   

Proxy logs:

 received configuration data from server at "192.168.1.x", datalen 31234
 cannot process received configuration data from server at "192.168.1.x": unexpected field "config.timeout_zabbix_agent"

 

This started after zabbix server upgrade to "7.0.0alpha6", but proxy stayed at "7.0.0alpha1".

Upgrading both server and proxy to "7.0.0alpha9" makes no change, but now Zabbix frontend reports "Zabbix proxy last seen more than 600 seconds ago".

 

Sorry if this is normal in alpha please just say its not relevent and close.



 Comments   
Comment by Alex Kalimulin [ 2024 Jan 03 ]

It's normal to have errors about enexpected fields, because there were protocol changes related to addition of configurable timeouts per item.

But it's strange proxies last seen not updated for the same server version. Does any data come from this proxy at all?

Comment by user185953 [ 2024 Jan 03 ]

What is the most reliable way to test?

Its a lab setup, each proxy monitoring only its own host.

I expect answer is no. Definitely more items not arriving in queue

Comment by user185953 [ 2024 Jan 03 ]

Oh, my bad. Real problem "proxy not starting and not creating logs".

Next step for this is running in foreground, or something else?

 

The proxy completely fails to start after updating:

 

● zabbix-proxy.service - Zabbix Proxy
     Loaded: loaded (/lib/systemd/system/zabbix-proxy.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Wed 2024-01-03 10:10:22 CET; 6s ago
    Process: 88708 ExecStart=/usr/sbin/zabbix_proxy -c $CONFFILE (code=exited, status=1/FAILURE)
        CPU: 24ms
Jan 03 10:10:22 zbx7prxLan1 systemd[1]: zabbix-proxy.service: Control process exited, code=exited, status=1/FAILURE
Jan 03 10:10:22 zbx7prxLan1 systemd[1]: zabbix-proxy.service: Failed with result 'exit-code'.
Jan 03 10:10:22 zbx7prxLan1 systemd[1]: Failed to start zabbix-proxy.service - Zabbix Proxy.
 

And last line in /var/log/zabbix/zabbix_proxy.log is

780:20231228:165450.996 Zabbix Proxy stopped. Zabbix 7.0.0alpha1 (revision aef542ad8ae).

 

Comment by user185953 [ 2024 Jan 03 ]

Well, real problem was my configuration error in ProxyMemoryBufferAge.

 

$ sudo /usr/sbin/zabbix_proxy -T -c /etc/zabbix/zabbix_proxy.conf
Validating configuration file "/etc/zabbix/zabbix_proxy.conf"
zabbix_proxy [88846]: ERROR: wrong value of "ProxyMemoryBufferAge" configuration parameter

 

 

I failed noticing gap in allowed values:

 

### Option: ProxyMemoryBufferAge
#       Maximum age of data in proxy memory buffer, in seconds.
#       When enabled (not zero) and records in proxy memory buffer are older, then it forces proxy buffer
#       to switch to database mode until all records are uploaded to server.
#       This parameter must be less or equal to ProxyOfflineBuffer parameter.
#
# Mandatory: no
# Range: 0,600-864000
# Default:
# ProxyMemoryBufferAge=0
ProxyMemoryBufferAge=300

 

 

 Thank you for support and sorry.

Comment by user185953 [ 2024 Jan 03 ]

I think reason for this user error is all my attention was consumed by

 This parameter must be less or equal to ProxyOfflineBuffer parameter

and many times checking ProxyOfflineBuffer=32 (hours) is less than ProxyMemoryBufferAge=300 (seconds).
 

EDIT: See? Wrong again, 32 is MORE than 300!

Comment by Alex Kalimulin [ 2024 Jan 03 ]

Yes, we will make this message clearer.

Comment by Alexander Vladishev [ 2024 Jan 03 ]

Fixed in:

Comment by user185953 [ 2024 Jan 05 ]

Well thanks. But I meant something else. I see this point is hard to catch.

 

I focused on the units problem so much that I missed

ProxyMemoryBufferAge=300

is out of allowed range for ProxyMemoryBufferAge

Range: 0,600-864000

 


 

Question 1: What is reason for ProxyOfflineBuffer*3600 > ProxyMemoryBufferAge check?

Anything bad happens, or ProxyMemoryBufferAge just becomes effectively zero/forever?

 

Question 2: Is it necessary to set ProxyOfflineBuffer using one-hour steps? Would "2.5h" break?

If not, I propose allowing time suffixes like in frontend (s, m, h, d, w, M) and setting all in "seconds".

At least for me, comparing "32h" and "300s" or just "300" requires way less attention for humans.

 

 

Comment by Alex Kalimulin [ 2024 Jan 08 ]

user185953, q1 - ProxyOfflineBuffer would never work if we allowed bigger ProxyMemoryBufferAge.  q2 - "2.5h" is not supported, but in general adding units to all time and period related parameters in the .conf files is something we want to add in the future.





[ZBX-23723] Issue with Proxy Settings Not Working in AWS Template Created: 2023 Nov 17  Updated: 2024 Apr 10  Resolved: 2024 Jan 02

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Templates (T)
Affects Version/s: 6.0.23, 6.4.8, 7.0.0alpha7
Fix Version/s: 6.0.26rc1, 6.4.11rc1, 7.0.0beta1, 7.0 (plan)

Type: Problem report Priority: Major
Reporter: Kim Jongkwon Assignee: Evgenii Gordymov
Resolution: Fixed Votes: 1
Labels: AWS, PROXY
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Team: Team INT
Team: Team INT
Sprint: Sprint 107 (Dec 2023)
Story Points: 0.5

 Description   

We've discovered an issue in our AWS template where the proxy settings aren't working as expected. Even though we are using the {$AWS.PROXY} macro in our template, it seems like the proxy isn't being used.

Need to review the template code to see if it's correctly set up to handle the {$AWS.PROXY} macro.



 Comments   
Comment by Evgenii Gordymov [ 2023 Dec 21 ]

Fixed in:





[ZBX-23602] Zabbix proxy configuration sometimes is reloaded when interface is updated Created: 2023 Oct 24  Updated: 2024 Apr 10  Resolved: 2023 Nov 24

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 6.4.7, 7.0.0alpha6
Fix Version/s: 6.4.9rc1, 7.0.0alpha8, 7.0 (plan)

Type: Problem report Priority: Major
Reporter: Vladislavs Sokurenko Assignee: Andris Zeila
Resolution: Fixed Votes: 0
Labels: Configuration, Proxy, reload
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team A
Team: Team A
Sprint: Sprint 105 (Oct 2023), Sprint 106 (Nov 2023)
Story Points: 0.25

 Description   

Zabbix server periodically reads interfaces from database and if it differs from cached one then it is updated in cache and host revision is updated, this causes host to be resent to Zabbix proxy.

Expected:
Zabbix server must not update dynamic interface data from database as it is already updated in cache directly when received from Zabbix proxy thus there is race condition currently.



 Comments   
Comment by Andris Zeila [ 2023 Nov 16 ]

Released ZBX-23602 in:

  • pre-6.4.9rc1 aa363aa9ecc, 8d31f66019d
  • pre-7.0.0alpha8 3e21dda4af2




[ZBX-23227] All hosts can be disabled from proxy page. Created: 2023 Aug 09  Updated: 2023 Aug 10

Status: Confirmed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 6.4.6rc1, 7.0.0alpha4
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Sergejs Maklakovs Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: disable, enable, hosts, proxy, status
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File all_hosts_disabled.png     PNG File disabled_element.png    

 Description   

Steps to reproduce:
1) Create several hosts with status - enabled.
2) Navigate to proxy page.
3) There could be 0 proxies (empty list).
4) Open "Disable hosts" elements and remove disabled.

5) Now click on enabled "Disable hosts" button.

Result:
ALL hosts are disabled. Even if you have no proxies at all in Zabbix.

Expected:
Error message like -
Invalid parameter "/1/request/proxy_hostids": cannot be empty.






[ZBX-23168] Preprocessing JSONPATH of big number reported as "not suitable for value type" Created: 2023 Jul 27  Updated: 2023 Aug 30  Resolved: 2023 Aug 30

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: 6.0.19
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Dimitri Bellini Assignee: Zabbix Development Team
Resolution: Duplicate Votes: 0
Labels: jsonpath, preprocessing, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL 8.x


Attachments: PNG File Screenshot from 2023-07-27 17-00-42.png    
Issue Links:
Duplicate
duplicates ZBX-22771 Jsonpath returns unpredictable type f... Closed

 Description   

We noticed a strange behaviour during the conversion of the below JSON file. Zabbix is not able to correctly manage the number "2140549705728000" during a JSONPATH Preproc.

Not Working JSON file ->

{"total":2140549705728000,"remaining":674792364900352}

Working JSON file ->

{"total":2198585469108224,"remaining":885663916752896}

JSONPath Preproc step: $.total

We have tested on Zabbix 6.0.x and Zabbix 6.4.3 same error (attached screenshot).

The problem it's related to the JSONPath value handling, we can workaround using a JavaScript Preproc like "return JSON.parse(value).total;"

Thanks



 Comments   
Comment by Aigars Kadikis [ 2023 Jul 27 ]

Confirming the issue is in 6.0.19.

Comment by Aigars Kadikis [ 2023 Aug 30 ]

this docker container not works:
zabbix/zabbix-server-pgsql:ol-6.0.19

this work:
zabbix/zabbix-server-pgsql:ol-6.0.21

I think we can close the issue.

Comment by dimir [ 2023 Aug 30 ]

Duplicate of ZBX-22771





[ZBX-23116] Memory leak zabbix proxy 6.019 Created: 2023 Jul 17  Updated: 2024 Apr 10  Resolved: 2023 Aug 15

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.0.18, 6.0.19
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Igor Damiao Assignee: Maksym Buz
Resolution: Fixed Votes: 1
Labels: memoryleak, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 20.04


Attachments: PNG File image-2023-07-19-11-23-02-221.png     PNG File image-2023-07-19-11-25-04-755.png     PNG File memoryleakproxy.png    
Issue Links:
Duplicate
duplicates ZBX-23047 Memory Leak Zabbix Agent2 6.0.19 Closed
Team: Team INT
Team: Team INT

 Description   

We have a memory leak in one of our proxies running on version 6.0.19, the proxy was running on version 6.0.18, I upgraded to 6.0.19, but the problem persists, it is necessary to restart the servie to lowert the memory usage



 Comments   
Comment by Igor Damiao [ 2023 Jul 19 ]

Memory increases as the days go by until it hits 100%

Comment by Greg Backus [ 2023 Jul 28 ]

Issue also reported here - https://support.zabbix.com/browse/ZBX-23047

Comment by Maksym Buz [ 2023 Aug 15 ]

Closed as a duplicate of ZBX-23047





[ZBX-23023] A lot of false autoregistration events Created: 2023 Jun 24  Updated: 2023 Jun 27  Resolved: 2023 Jun 27

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: None
Affects Version/s: 6.4.3
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Andrey Kunitsyn Assignee: Zabbix Support Team
Resolution: Won't fix Votes: 0
Labels: autoregistration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Server 6.4.3 in docker on Ubuntu 22.04
Zabbix Proxy 6.4.3 on Ubuntu 20.04
Zabbix Agent 6.4.3 and Zabbix Agent2 6.4.3 on Windows (2008R2 - 2022) and Linux (Ubuntu 14 - 22)



 Description   

Steps to reproduce:

I had some rare events about autoregistration from already added hosts.
Nothing changed on the host side, agent did not restarted, hostmetadata not changed.

Yesterday I occasionally could increase amount of such events.

I've added such config on some linux machines behind 3 of 35 proxy. It returns source IP that is used to connect to proxy. To always have actual ip address on the Host Interface in Zabbix.

UserParameter=soho.hostinterface.ip,/bin/bash -c "ip route get $(getent hosts $(echo "{{ zabbix_proxy }}" | cut -d, -f 1 -) | awk '{ print $1 }') | sed -n 's/.*src \([^\ ]*\).*/\1/p'"
HostInterfaceItem=soho.hostinterface.ip

After that I've got a lot (every couple of minutes) false autoregistration events from OTHER hosts behind the SAME three proxy (mostly Windows). Of course hostmetadata did not change, agent did not restarted.

If I remove configuration above from hosts the stream of false Autoregistration events stops.

It is very odd.

Proxy config

Hostname=zbx-proxy.tubus.local
Server=zabbix.example.com,zabbix2.example.com StatsAllowedIP=127.0.0.1,zabbix.example.com,zabbix2.example.com
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBName=/run/zabbix/zabbix_proxy.db
StartPollers=5
StartPollersUnreachable=1
StartODBCPollers=1
StartIPMIPollers=3
StartPingers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
StartSNMPTrapper=1
HousekeepingFrequency=2
CacheSize=128M
HistoryCacheSize=64M
Timeout=4
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=5000
TLSConnect=cert
TLSCAFile=/usr/local/share/ca-certificates/soho-ca.crt
TLSServerCertIssuer=CN=soho-service CA
TLSCertFile=/etc/zabbix/proxy.cer
TLSKeyFile=/etc/zabbix/proxy.key
#DebugLevel=4
 

Here is piece of debug log from  a proxy grepped by minute 22:30 when i've got a false event from `akcept_ts` host. The configuration `HostInterfaceItem`  was added to `akcept_mail` host.

 

https://drive.google.com/file/d/14_L3zhOwAbRJqmrqJFwaVVvsvouhoNqP/view?usp=sharing

Result:
A lot of false Autoregistration events

Expected:

Get Autoregistration Events only when HostMetadata or HostInterface really changed on the host.



 Comments   
Comment by Andrey Kunitsyn [ 2023 Jun 26 ]

I've stopped another proxy.
Removed SQLite DB file (`DBName=/run/zabbix/zabbix_proxy.db`)

Started proxy.
Got autoregistration events from all (or almost all) hosts behind that proxy during a couple of minutes. Both linux and windows.

Comment by Elina Kuzyutkina (Inactive) [ 2023 Jun 26 ]

Hi,
Zabbix agent sent autoregistration query each time it asks for a list of active checks (when it starts and each 2 minutes by default). But auteregistration action will re-run only if something changes (Hostname, Hostmetadata, Proxy, etc.) So it's ok to have autoregistration queries, but action shouldn't rerun if nothing changes.
https://www.zabbix.com/documentation/6.4/en/manual/discovery/auto_registration#overview
this allows you to work with dynamic environments and manage the configuration on already added agents also

This can't be considered as a bug, so I am going to close the ussie as Won't fix

Regards, Elina

Comment by Andrey Kunitsyn [ 2023 Jun 26 ]

Yes, I do not see that any action was applied, but I've got dozen of notifications.
Is it normal that I get the Notifications about autoregistration when nothing changed on the host?

I wanted implement https://blog.zabbix.com/forward-zabbix-events-to-event-driven-ansible-and-automate-your-workflows/25893/ some automation on host autoregistration, but I can't. They all are false.

Comment by Elina Kuzyutkina (Inactive) [ 2023 Jun 27 ]

Notifications are also result of an action. Action should rerun only in some specific cases (Hostname, Hostmetadata, Proxy, etc. is changed)
You need to check action conditions and agents configuration
This project is dedicated for Bugs, please continue the discussion using Zabbix forum (https://www.zabbix.com/forum/) or via telegram channel (t.me/ZabbixTech)
I am closing closing the ticket again

Regards, Elina





[ZBX-22989] Duktape 2.6 bug crashes JavaScript putting too many values in valstack (CVE-2023-29458) Created: 2023 Jun 16  Updated: 2023 Dec 18  Resolved: 2023 Jun 20

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 5.0.34, 6.0.17, 6.4.2, 7.0.0alpha1
Fix Version/s: 5.0.35rc1, 6.0.18rc1, 6.4.3rc1, 7.0.0alpha1

Type: Defect (Security) Priority: Minor
Reporter: Maris Melnikovs Assignee: Zabbix Development Team
Resolution: Fixed Votes: 0
Labels: Proxy, Server, security-vulnerabilities
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   
Mitre ID CVE-2023-29458
CVSS score 5.9
Severity Medium
Summary JavaScript crash if too many values are put on valstack due to bug in duktape 2.6
Description Duktape is an 3rd-party embeddable JavaScript engine, with a focus on portability and compact footprint.
Known attack vectors This vulnerability could be uses to intentionally add too many values into valstack to crush JavaScript
Patch provided  No
Component/s Proxy, Server
Affected version/s and fix version/s ·         Affected: 5.0.34, 6.0.17, 6.4.2, 7.0.0alpha1
·         Fix: 5.0.35rc1, 6.0.18rc1, 6.4.3rc1, 7.0.0alpha1
Fix compatibility tests -
Resolution Fixed
Workarounds  
Acknowledgements nepalihacker0x01





[ZBX-22882] "Conditional jump or move depends on uninitialised value" Valgrind errors observed for zabbix proxy when monitoring Zabbix server with Web scenario Created: 2023 Jun 01  Updated: 2024 Apr 10  Resolved: 2023 Sep 25

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.0.19rc1, 6.4.3, 7.0.0alpha2
Fix Version/s: 7.0 (plan)

Type: Problem report Priority: Trivial
Reporter: Sergejs Olonkins Assignee: Vladislavs Sokurenko
Resolution: Cannot Reproduce Votes: 0
Labels: proxy, valgrind
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File zabbix_proxy_6_0.log     Zip Archive zabbix_proxy_VALGRIND_01062023_60.zip     Zip Archive zabbix_proxy_VALGRIND_01062023_master.zip     Text File zabbix_proxy_master.log    
Team: Team A
Team: Team A
Sprint: Sprint 101 (Jun 2023), Sprint 102 (Jul 2023), Sprint 103 (Aug 2023), Sprint 104 (Sep 2023)
Story Points: 0.5

 Description   

Problem description: The following Valgrind errors are observed for Active proxy when it monitors a Zabbix server with a web scenario that has a failing step due to required string missing on URL:

==00:00:04:48.999 84621== 59 errors in context 1 of 1:
==00:00:04:48.999 84621== Conditional jump or move depends on uninitialised value(s)
==00:00:04:48.999 84621==    at 0x2A0BAE: zbx_recv_response (comms.c:323)
==00:00:04:48.999 84621==    by 0x2A0E19: put_data_to_server (comms.c:198)
==00:00:04:48.999 84621==    by 0x19B13B: proxy_data_sender (datasender.c:195)
==00:00:04:48.999 84621==    by 0x19B571: datasender_thread (datasender.c:302)
==00:00:04:48.999 84621==    by 0x2815F3: zbx_thread_start (threads.c:124)
==00:00:04:48.999 84621==    by 0x16D73D: MAIN_ZABBIX_ENTRY (proxy.c:1333)
==00:00:04:48.999 84621==    by 0x27BEAC: daemon_start (daemon.c:443)
==00:00:04:48.999 84621==    by 0x16577B: main (proxy.c:1057)
==00:00:04:48.999 84621==  Uninitialised value was created by a stack allocation
==00:00:04:48.999 84621==    at 0x2A0B00: zbx_recv_response (comms.c:287)
==00:00:04:48.999 84621== 
==00:00:04:48.999 84621== ERROR SUMMARY: 59 errors from 1 contexts (suppressed: 0 from 0)

P.S. The error is not observer for Zabbix server

Steps to reproduce (at least that's how I got the error, not sure which exact actions caused the errors):

  1. Have a fresh Zabbix 6.0 or younger instance
  2. Bring up Zabbix server and an active Zabbix proxy
  3. Naigate to Administration => Proxies and create the corresponding active proxy in frontend
  4. Wait for proxy to be seen
  5. Export Zabbix server host and rename the original zabbix server (for example to Zabbix server original)
  6. Import the previously exported zabbix server and set it to be monitored by the active proxy
  7. Wait for the imported server to start collecting data
  8. Add a Web scenario (with Agent = Firefox 73 (Linux)) to the imported server that would have a step with the following parameters:
    1. URL: https:
      ss.lv
    2. Required string: Vieglie auto
    3. Required status codes: 200
  9. Wait for the web scenario step to fail
  10. Update web scenario step - set Required status codes to 301
  11. Wait for the scenario step to fail with another error
  12. Check Proxy Valgrind logs

Result: the above mentioned errors are observer in the Valgring log for proxy
Expected: no "Conditional jump or move depends on uninitialised value" errors should be found in Valgrind logs

Valgrind log for 6.0: zabbix_proxy_VALGRIND_01062023_60.zip
Zabbix proxy log for 6.0: zabbix_proxy_6_0.log

Valgring log for 7.0: zabbix_proxy_VALGRIND_01062023_master.zip
Zabbix proxy log for 7.0: zabbix_proxy_master.log






[ZBX-22580] Nodata triggers after proxy becomes available Created: 2023 Mar 23  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.0.14, 6.0.26, 6.4.0, 6.4.11, 7.0.0beta1
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Problem report Priority: Major
Reporter: Elina Kuzyutkina (Inactive) Assignee: Konstantins Prutkovs
Resolution: Unresolved Votes: 11
Labels: nodata, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sub-task
part of ZBX-23633 Service alarms storing values in wron... Closed
Team: Team C
Team: Team C
Sprint: S24-W8/9, S24-W10/11, S24-W14/15, S24-W16/17
Story Points: 3

 Description   

Steps to reproduce:
Highloaded proxy (or proxy should be unavailable for "perceptible" period of time)
Nodata triggers (default ones, without strict parameters)
While proxy is unavailable all triggers are suppresed as they should be.
But when proxy comes up (lastseen is near 'now') it start to send collected data from the olde ones
Server process nodata trigger. Is proxy available -> yes. Is there data for (let it be) 10 min -> No, just 30 minutes old data come to the server

So problems was suppressed while proxy was unavailable, but when proxy becomes available nodata trigger fire because of proxy queue

As possible option we can set (probably configurable) period to suppress problems after proxy is available to process all queue from it. Probably there are better options

Regards, Elina



 Comments   
Comment by Guillaume ARNOUX [ 2023 Nov 15 ]

Same issue on 6.2.9.

Any update ?

Comment by Leandro Dethloff [ 2024 Mar 19 ]

Morging ,

 

Can you provide us an update about when "Prev.Sprint" will be finished ? 

 

Thanks

Comment by Leandro Dethloff [ 2024 Apr 01 ]

Morging ,

 

Can you provide us an update about when sprint will be finished ? 

 

Thanks





[ZBX-22325] Failed to start IPMI pool on proxy (crashing) Created: 2023 Feb 08  Updated: 2024 Apr 10  Resolved: 2023 Feb 13

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.4.0beta5
Fix Version/s: 7.0 (plan)

Type: Problem report Priority: Trivial
Reporter: Ricardo Parras Assignee: Vladislavs Sokurenko
Resolution: Cannot Reproduce Votes: 0
Labels: IPMI, Proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Almalinux 9.1


Attachments: File zabbix_error_ipmi.rar     Text File zabbix_proxy.log     Text File zabbix_proxy4.log    
Team: Team A
Team: Team A
Sprint: Support backlog

 Description   

Steps to reproduce:

  1. Change the proxy setting by enabling StartIPMIPollers to 1
    Restart proxy service

Result:
Reading the log files there will be an ipmi manager #1 process start error

You can also see the message: cannot read IPMI service request and
 Zabbix Proxy stopped. Zabbix 6.4.0beta5 (revision 89049fb7196)

Zabbix Server in the same version does not have this error. Only on proxies.



 Comments   
Comment by Vladislavs Sokurenko [ 2023 Feb 10 ]

Thank you for your report, does issue persist with rc1 ?

Comment by Rostislav Palivoda [ 2023 Feb 13 ]

ricardoparras can you reproduce it on 6.4rc1 version? We think its already fixed.

Comment by Ricardo Parras [ 2023 Feb 18 ]

Hello! Sorry for the delay in responding.
I installed a proxy with the rc1 version and the error was corrected.
Thank you very much.





[ZBX-22174] [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR: column "name_upper" of relation "items" does not exist Created: 2023 Jan 05  Updated: 2024 Apr 10  Resolved: 2023 Jan 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.2.6
Fix Version/s: None

Type: Incident report Priority: Blocker
Reporter: Marcel Renner Assignee: Dmitrijs Goloscapovs
Resolution: Won't fix Votes: 1
Labels: PGRES_FATAL_ERROR, postgres, postgresql, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux 5.14.21-150400.24.38-default #1 SMP PREEMPT_DYNAMIC Fri Dec 9 09:29:22 UTC 2022 (e9c5676) x86_64 x86_64 x86_64 GNU/Linux, cpe:/o:suse:sles:15:sp4, zabbix-proxy-pgsql-6.2.6-release1.sles15, postgresql14-server-14.6-150200.5.20.2


Attachments: Text File describe_all.txt     Text File describe_hosts.txt     Text File postgresql.log     Text File zabbix_proxy.log    
Issue Links:
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 96 (Jan 2023)

 Description   

Steps to reproduce / Result:

After Zabbix server and all Zabbix proxies has been updated from 6.2.4 to 6.2.6, we get the following error message on all Zabbix proxies.

Surprisingly, this only occurs with newly created hosts. Existing hosts still seem to work. As long as they are apparently still kept in the local proxy database. However, as soon as a new host is created via autoregistration, this error occurs and the new host cannot be monitored.

Restarting Zabbix server and Zabbix proxy did not help. All components are running on 6.2.6 and have been restarted.

  7994:20230105:123623.345 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  column "name_upper" of relation "hosts" does not exist
LINE 1: update hosts set name_upper=upper(name)
                         ^
QUERY:  update hosts set name_upper=upper(name)
where hostid=new.hostid
CONTEXT:  PL/pgSQL function hosts_name_upper_upper() line 3 at SQL statement
 [insert into hosts (hostid,host,status,ipmi_authtype,ipmi_privilege,ipmi_username,ipmi_password,name,tls_connect,tls_accept,tls_issuer,tls_subject,tls_psk_identity,tls_psk) values (13520,'aaa.example.com',0,-1,2,'','','AAA',2,2,'','','foobar','ffffffff'),(13521,'bbb.example.com',0,-1,2,'','','BBB',2,2,'','','foobar','ffffffff');
]
  7994:20230105:123623.346 failed to update local proxy configuration copy: database error
  8001:20230105:123629.656 cannot send list of active checks to "10.0.0.1": host [aaa.example.com] not found
  7998:20230105:123929.487 cannot send list of active checks to "10.0.0.2": host [bbb.example.com] not found
 


 Comments   
Comment by Marcel Renner [ 2023 Jan 05 ]

I looked into this a little further. When I manually reset the database, the error no longer occurs and everything works as it should.

systemctl stop zabbix-proxy.service
sudo -iu postgres dropdb zabbix
sudo -iu postgres createdb --encoding=Unicode --owner=zabbix --template=template0 zabbix
cat /usr/share/zabbix-sql-scripts/postgresql/proxy.sql | sudo -u zabbix psql
systemctl start zabbix-proxy.service 

So as it seems, the DBpatch hosts_name_upper_update is not working correctly, is it?

  2395:20230104:093528.984 hosts_name_upper_update trigger for table "hosts" already exists, skipping patch of adding "name_upper" column to "hosts" table
  2395:20230104:093528.997 hosts_name_upper_update trigger for table "hosts" already exists, skipping patch of adding index to "name_upper" column
  2395:20230104:093528.999 hosts_name_upper_update trigger for table "hosts" already exists, skipping patch of updating "name_upper" column
  2395:20230104:093529.003 hosts_name_upper_update trigger for table "hosts" already exists, skipping patch of adding it to "hosts" table 
Comment by Dmitrijs Goloscapovs [ 2023 Jan 10 ]

Hello, Taikocuya,

There actually could be a situtation when these warnings will appear - if trigger already exists - it is working as expected in this case. This, for example, may happen when version that is less than 6.0.10 is updated to latest 6.0.11+ (where triggers were added), and then it is updated to latest 6.2 (where triggers also were added, because these patches were added to each new release - 6.0.11rc1+, 6.2.5rc1+, pre-release 6.4.0beta4+).

These DBpatches executes following steps sequentially:

  • add new column to hosts
  • create index
  • update hosts set name_upper=upper(name)
  • create trigger for name_upper for insert
  • create trigger for name_upper for update

Each step checks if trigger exists before execution (to make sure that these patches were not executed during last major version upgrade), if not - it is skipped with warning. If any step fails (for example, adding new column has failed because it already exists) - DB upgrade procedure will stop with failure.
All these actions are performed with _items _table using the same way.

This failure seems strange, looks like schema could be broken. Could you please post table descriptions (if you can still reproduce it)? Was schema manipulated outside of installation scripts or dbpatches (manually recovered from failed DB upgrade, or other actions)?

Thanks.

Comment by Marcel Renner [ 2023 Jan 10 ]

Hello Dmitrijs,

What I can say that I had reinstalled all machines (incl. OS and proxies) in May 2022 with the then latest version. Since then, I have regularly kept the OS, PostgreSQL and Zabbix up to date. I've never made any changes to the databases themselves.

Strange is, we have 9 proxies and all of them had this error after the update to 6.2.6. In the attachments you can find the description of the hosts table only and of all tables.

describe_hosts.txt
describe_all.txt

Best regards,

Marcel

Comment by Marcel Renner [ 2023 Jan 10 ]

Also attached postgresql.log and zabbix_proxy.log during upgrade.

Comment by Dmitrijs Goloscapovs [ 2023 Jan 10 ]

Hello, Marcel,

Thanks for providing logs. 

2023-01-04 09:31:00.359 CET postgres postgres [14841]ERROR:  role "zabbix" already exists
2023-01-04 09:31:00.359 CET postgres postgres [14841]STATEMENT:  CREATE ROLE zabbix NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
2023-01-04 09:31:00.513 CET postgres postgres [14885]ERROR:  database "zabbix" already exists
2023-01-04 09:31:00.513 CET postgres postgres [14885]STATEMENT:  CREATE DATABASE zabbix OWNER zabbix ENCODING 'Unicode' TEMPLATE template0;
2023-01-04 09:31:00.963 CET zabbix zabbix [14928]ERROR:  relation "role" already exists
2023-01-04 09:31:00.963 CET zabbix zabbix [14928]STATEMENT:  CREATE TABLE role (
...
2023-01-04 09:31:01.098 CET zabbix zabbix [14928]ERROR:  relation "dbversion" already exists
2023-01-04 09:31:01.098 CET zabbix zabbix [14928]STATEMENT:  CREATE TABLE dbversion (
		dbversionid              bigint                                    NOT NULL,
		mandatory                integer         DEFAULT '0'               NOT NULL,
		optional                 integer         DEFAULT '0'               NOT NULL,
		PRIMARY KEY (dbversionid)
	);
2023-01-04 09:31:01.104 CET zabbix zabbix [14928]ERROR:  duplicate key value violates unique constraint "dbversion_pkey"
2023-01-04 09:31:01.104 CET zabbix zabbix [14928]DETAIL:  Key (dbversionid)=(1) already exists.
2023-01-04 09:31:01.104 CET zabbix zabbix [14928]STATEMENT:  INSERT INTO dbversion VALUES ('1','6020000','6020013');
2023-01-04 09:31:01.116 CET zabbix zabbix [14928]ERROR:  trigger "hosts_insert" for relation "hosts" already exists
2023-01-04 09:31:01.116 CET zabbix zabbix [14928]STATEMENT:  create trigger hosts_insert after insert on hosts
	for each row
	execute procedure changelog_hosts_insert();
2023-01-04 09:31:01.117 CET zabbix zabbix [14928]ERROR:  trigger "hosts_update" for relation "hosts" already exists
2023-01-04 09:31:01.117 CET zabbix zabbix [14928]STATEMENT:  create trigger hosts_update after update on hosts
	for each row
	execute procedure changelog_hosts_update();

Was sql file from zabbix-sql-scripts executed as a part of update (on already existing and initialized database)? 

Thanks.

Comment by Marcel Renner [ 2023 Jan 10 ]

Oh dear, you are absolutely right. That explains why all machines were affected. Because our Zabbix proxy configuration is automated via salt. I just found a pretty serious error, which restarts our setup routine and that's why the zabbix-sql-scripts were executed again. I had noticed the errors in the log, but I just assumed it's the dbpatching from Zabbix proxy. Anyway, I'm really, really sorry about that. Without your hint I would not have noticed that.

Comment by Dmitrijs Goloscapovs [ 2023 Jan 10 ]

Its good that a problem was solved, you don't have to be sorry  





[ZBX-21907] Calculated Items stuck on Queue via Zabbix Proxy Created: 2022 Nov 10  Updated: 2022 Nov 11  Resolved: 2022 Nov 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 6.2.3
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Francisco Louro Assignee: Zabbix Support Team
Resolution: Duplicate Votes: 0
Labels: docker, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Docker running on Ubuntu 22.04, docker running zabbix server image: ubuntu-6.2.2 in one machine.

On another machine Docker running Ubuntu 22.04, docker running zabbix proxy image: ubuntu-6.2.2


Attachments: PNG File 1.png     PNG File 2-1.png     PNG File 3.png     PNG File 4.png    
Issue Links:
Duplicate
duplicates ZBX-21530 Calculated items and server internal ... Closed

 Description   

Result:
Calculated items being in queue forever, server simply doesn't get those values. See screenshot 1, 2 and 3 for queue details and screenshot 4 for proxy configuration.
Expected:
All of these items on latest data of their hosts






[ZBX-21804] Admin role cannot set Action condition with a Proxy as a condition Created: 2022 Oct 25  Updated: 2024 Apr 10  Resolved: 2023 Jun 09

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 5.0.30rc1, 6.0.11rc1, 6.2.5rc1, 6.4.0beta1
Fix Version/s: 6.0.19rc1, 6.4.4rc1, 7.0.0alpha2, 7.0 (plan)

Type: Problem report Priority: Major
Reporter: Edgar Akhmetshin Assignee: Gregory Chalenko
Resolution: Fixed Votes: 0
Labels: action, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screenshot 2022-10-25 at 13.36.13.png     PNG File Screenshot 2022-10-25 at 13.36.47.png     PNG File image-2023-05-08-16-24-02-333.png     PNG File image-2023-05-08-16-25-30-478.png    
Issue Links:
Duplicate
Team: Team C
Team: Team C
Sprint: Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), Sprint 100 (May 2023), Sprint 101 (Jun 2023)
Story Points: 0.25

 Description   

Steps to reproduce:

  1. Create user and user role with admin privs and access to the actions;
  2. Try to create action with condition Proxy equals;

Result:

Expected:
Ability to set Proxy as a condition, since there is no other option to grant permission on Proxy for Admin type of account.



 Comments   
Comment by Gregory Chalenko [ 2023 Apr 13 ]

Fixed in development branch feature/ZBX-21804-5.0, PR#5526.

Comment by Gregory Chalenko [ 2023 Jun 06 ]

Fixed in:





[ZBX-21730] Missing standalone page for Proxy and SLA Created: 2022 Oct 05  Updated: 2022 Oct 13

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 6.0.10rc1, 6.2.4rc1, 6.4.0beta2
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Natalja Romancaka Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: overlay, proxy, sla
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: Technical backlog

 Description   

Steps to reproduce:

  1. Create Proxy or SLA
  2. Right mouse click on the name and open the link in a new window

Result:
about:blank#blocked
Expected:
Standalone page (create, edit) with direct link to Proxy or SLA , as implemented for the host

For 6.0 version only SLA.






[ZBX-21724]  Active checks availability indication became unknown for host which is assigned to active proxy Created: 2022 Oct 04  Updated: 2024 Apr 10  Resolved: 2022 Oct 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 6.2.4rc1, 6.4.0beta1
Fix Version/s: 6.2.4rc1, 6.4.0beta2, 6.4 (plan)

Type: Problem report Priority: Major
Reporter: Andrejs Zazuks Assignee: Dmitrijs Goloscapovs
Resolution: Fixed Votes: 2
Labels: Proxy, active, activeagent
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File zabbix_agentd.log.tar.gz     File zabbix_proxy.log.tar.gz    
Issue Links:
Duplicate
is duplicated by ZBX-21479 Problem with availability icon on zab... Closed
Team: Team A
Team: Team A
Sprint: Sprint 93 (Oct 2022)
Story Points: 1

 Description   

Steps to reproduce:

  1. Create a proxy
  2. Create a host with active check item
  3. Assign the host to the proxy
  4. Run proxy, server, agent
  5. Observe that active check availability indication has available status
  6. Wait for a ~20 min
  7. Observe that active check availability indication became unavailable

Result:
Active checks availability indication became Unknown after approximately 20 min of run of the instance for host which is assigned to active proxy. However data continue to gathering. Switching host to "no proxy" and assigning proxy again makes indication Available again.

zabbix_proxy.log.tar.gz  zabbix_agentd.log.tar.gz

Expected:
Active checks availability indication has available status.



 Comments   
Comment by Dmitrijs Goloscapovs [ 2022 Oct 17 ]

Available in:





[ZBX-21674] After upgrading from Zabbix 5.0 to Zabbix 6.0.8, new items do not have their data written to the Database. Created: 2022 Sep 20  Updated: 2022 Dec 08  Resolved: 2022 Dec 08

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 6.0.8
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Heitor Batista de Oliveira Assignee: Karlis Salins
Resolution: Commercial support required Votes: 0
Labels: collector, items, lastestdata, lastvalue, proxy, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:
  • Zabbix Server
    Zabbix Server Version = 6.0.8
    CPU = 8vCPU
    Memory = 32GB
    Operational System: Oracle Linux Server 8.6
    Zabbix Agent: 6.0.8
    Database: MariaDB 10.6.8 (RDS Instance)

-Zabbix Proxy
Zabbix Proxy Version = 6.0.8
CPU = 4vCPU
Memory = 16GB
Operational System: Oracle Linux Server 8.6
Zabbix Agent: 6.0.8
Database: MariaDB 10.6.9 (Local Instance)


Attachments: PNG File image-2022-09-20-11-22-12-967.png     PNG File image-2022-09-20-11-24-02-094.png     PNG File image-2022-09-20-11-26-07-820.png     PNG File image-2022-09-20-11-29-45-084.png     PNG File image-2022-09-20-11-36-57-709.png     PNG File image-2022-09-20-11-40-03-379.png     PNG File image-2022-09-20-11-40-31-243.png    

 Description   

Steps to reproduce:

  1. Backup Zabbix Server and Zabbix Database;
  2. Upgrade Zabbix Server;
  3. Backup Zabbix Proxy and database;
  4. Upgrade Zabbix proxy;
  5. Test all components of Zabbix Server;
  6. After a few days we created a new host for monitoring, but new items for new hosts do not have the values collected by zabbix proxies or zabbix server.

New items are collected normally through Zabbix's test functionality, but they are not collected automatically through the configuration of collection times.

Discovery rules are working normally and creating new items, but the new items also do not have their values collected or at least they are not being written to the database.

Old items have their values collected normally and are not having problems.

Result:

Other itens (Old only) was normaly collected. 






[ZBX-21637] Inconsistent behavior for host autoregistration in server 6.2/6.4/proxy Created: 2022 Sep 12  Updated: 2024 Apr 10  Resolved: 2023 Jan 23

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 6.2.2, 6.4.0alpha1
Fix Version/s: 6.4.0beta3, 6.4 (plan)

Type: Problem report Priority: Trivial
Reporter: Larisa Grigorjeva Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 0
Labels: autoregistration, hostmetadata, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team A
Team: Team A
Sprint: Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023)
Story Points: 0.25

 Description   

1. Configure agent etc/zabbix_agentd.conf
For example:
Server= your server or proxy IP
ServerActive=your active server or proxy IP
Hostname=new_host
HostMetadataItem=test.key
UserParameter=test.key,echo "new registered host"

2. Configure frontend:
Create Autoregistration action
Condition: Host metadata contains host
Operation: Add host

3. Run server and agent (+ proxy if it is proxy test case)
4. Go to Data collection -> Hosts
5. Observe that new_host was added to the list
6. Stop server and agent
7. Delete discovered host
8. Run server and agent again
9. Observe:

For 6.2:
new_host is added again immediately

For 6.4:
new_host is NOT re-added again
change Hostname to new_host_1 in etc/zabbix_agentd.conf
restart agent
new_host_1 is NOT added
change UserParameter to test, echo "new123 registered host"
change Action Condition to Host metadata contains new123
restart agent, wait a little
And finally new_host_1 is added

For 6.4-proxy:
new_host is NOT re-added again
change Hostname to new_host_1 in etc/zabbix_agentd.conf
restart agent
observe that new_host_1 is added



 Comments   
Comment by Vladislavs Sokurenko [ 2022 Oct 06 ]

Fixed in:

Comment by Martins Valkovskis [ 2023 Jan 20 ]

Updated documentation:





[ZBX-21491] Can create passive proxy with one character in PSK field Created: 2022 Aug 19  Updated: 2022 Aug 23  Resolved: 2022 Aug 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 6.0.8rc1, 6.2.2rc1, 6.4.0alpha1
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Natalja Romancaka Assignee: Zabbix Development Team
Resolution: Fixed Votes: 0
Labels: proxy, psk
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBX-20920 Empty psk fields are always sent when... Closed

 Description   

Steps to reproduce:

  1. Create active proxy, fill proxy name
  2. Select PSK Encryption
  3. Type
    PSK identity => 1
    PSK => 1

Result:
proxy created
Expected:
/1/tls_psk": minimum length is 32 characters.






[ZBX-21348] Zabbix Proxy History Poller gone Created: 2022 Jul 16  Updated: 2024 Apr 10  Resolved: 2022 Jul 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Documentation (D), Proxy (P)
Affects Version/s: 6.2.0
Fix Version/s: 6.4 (plan)

Type: Documentation task Priority: Trivial
Reporter: MArk Assignee: Martins Valkovskis
Resolution: Fixed Votes: 0
Labels: history, poller, process, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team A
Team: Team A
Sprint: Sprint 90 (Jul 2022)
Story Points: 0.1

 Description   

After updating to Zabbix 6.2, I noticed a weird thing with Proxy.

From proxy health monitoring, the internal item "Zabbix proxy: Utilization of history poller" got unsupported with the following message.

No "history poller" processes started.

When checking the proxy processes, I noticed that, in fact, it is not started.
Also, that item is not available for newer Zabbix OOTB templates.

This request, ZBXNEXT-7498, seems to relate to this issue, but I'm not sure.

 

In summary,
Proxy Process Types doc says this process exists for Proxy.
Supported Internal checks doc says it is available for Proxy.
Standard Zabbix Proxy Health template does include an item for History Poller

Zabbix Proxy configuration doc does not include StartHistoryPollers.
Upgrade notes for 6.2.0 doc does not mention History Pollers.

 

Therefore, I'm lost with this.
The Proxy is certainly working without History Poller.

Maybe I'm missing some changes in-between version updates, or the documentation is missing some adjustments.



 Comments   
Comment by Martins Valkovskis [ 2022 Jul 18 ]

This issue was caused by incomplete documentation update and a lacking upgrade note entry about history pollers being removed from Zabbix proxy.

Right now the relevant documentation pages have been updated:

Existing templates should be manually updated by removing the item for the history poller process on the proxy.





[ZBX-21347] Zabbix Proxy time drifting Created: 2022 Jul 14  Updated: 2022 Jul 15

Status: Confirmed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: 6.0.6, 6.2.0
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Dimitri Bellini Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: agent, fuzzytime, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RockyLinux 8.x


Attachments: PNG File Proxy_green.PNG     PNG File case1_latest_data.PNG     PNG File case1_latest_data_after_resolving.PNG     PNG File case1_trigger.PNG     PNG File case2_latest_data.PNG     PNG File case2_problem_panel.PNG    

 Description   

During my lab test using Zabbix 6.0 (same for 6.2) and a Proxy with a time drifting problem (1 hour ahead) I discovered some potential not so nice behaviour like:

  • from Admin->Proxies - You can not see nothing all is “green”
  • If I install an agent on the proxy machine and I create a “system.localtime” (Passive Item) with Fuzzy trigger we did not see nothing because the Item will never be populated (without any kind of error)
  • Testing an Item on a Host linked to the Proxy is not working with this strange message: “The task has been expired.“

At the moment there is no "clean" way to solve this kind of scenario.

I would like to suggest an internal check for this kind of scenario, because if the clock is very important for Zabbix it must be verify directly from Zabbix and not using an external check.



 Comments   
Comment by Dimitri Bellini [ 2022 Jul 15 ]

Hi Andrei,
yes a Proxy in the same timezone but with a time drifting problem, in my test case was 1 hour ahead from the Zabbix Server.

Comment by Vladimir Stepanov (Inactive) [ 2022 Jul 15 ]

Hi, Dimitri!
Thank you for reporting the issue! I had reproduced all cases and I can confirm it.
Regards,
Vladimir

Comment by Dimitri Bellini [ 2022 Jul 15 ]

Hi Vladimir,
glade to be useful
I hope for a fix/better implementation on upcoming Zabbix release.





[ZBX-21341] "upload: enabled" server-proxy protocol field/feature is undocumented in 6.2 Created: 2022 Jul 14  Updated: 2024 Apr 10  Resolved: 2022 Aug 31

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Documentation (D)
Affects Version/s: 6.2.0
Fix Version/s: 6.4 (plan)

Type: Documentation task Priority: Critical
Reporter: Markku Leiniö Assignee: Martins Valkovskis
Resolution: Fixed Votes: 1
Labels: documentation, json, protocols, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team D
Team: Team D
Sprint: Sprint 90 (Jul 2022), Sprint 91 (Aug 2022)
Story Points: 0.25

 Description   

When Zabbix 6.2.0 proxy connects to the Zabbix 6.2.0 server, it sends a "request: proxy data" message. Zabbix server responds with "upload: enabled" and "response: success".

The "upload: enabled" field is not documented in the server-proxy protocol page in https://www.zabbix.com/documentation/current/en/manual/appendix/protocols/server_proxy .



 Comments   
Comment by Markku Leiniö [ 2022 Jul 15 ]

To be clear, this is the JSON response from the server:

{"upload":"enabled","response":"success"}

 

Comment by Markku Leiniö [ 2022 Jul 15 ]

I see also the latest agent protocol messages are undocumented (cannot edit the issue title).

From the agent:

{"request":"active check heartbeat","host":"Zabbix-62-client","heartbeat_freq":60}
Comment by Markku Leiniö [ 2022 Jul 15 ]

Also, proxy config request from server to passive proxy is incorrectly documented.

Documented in https://www.zabbix.com/documentation/current/en/manual/appendix/protocols/server_proxy#proxy-config-request :

{
    "request": "proxy config",
    "globalmacro":{
        "fields":[
            "globalmacroid",
            "macro",
...

Reality, from Zabbix 6.2 server to passive proxy:

{
    "request": "proxy config",
    "data": {
        "globalmacro": {
            "fields": [
                "globalmacroid",
                "macro",
...

(note the "data" structure)

Comment by Marina Generalova (Inactive) [ 2022 Aug 18 ]

Protocol updated in release branches:

Comment by dimir [ 2022 Aug 24 ]

Could we improve it as:

upload string proxy data (history data, autoregistration, host availability, network discovery) upload control.
 
Possible values:
"enabled" - normal operation
"disabled" - do not send proxy data because the server is not accepting it (one of the reasons could be internal cache over limit)

<dimir> Fixed by martins-v in 5.0 and up to 7.0





[ZBX-21196] Proxy edit form cannot be opened in new tab Created: 2022 Jun 13  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 6.2.0rc1
Fix Version/s: 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Problem report Priority: Trivial
Reporter: Ivo Kurzemnieks Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: edit, form, frontend, modal, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBXNEXT-7455 Frontend changes to reload passive pr... Closed
Team: Team A
Team: Team A
Sprint: Technical backlog
Story Points: 0.125

 Description   

1. Navigate to Administration -> Proxies;
2. Create one or choose one from the list;

Observe the link says "javascript:void(0)", but it should be a link to form. Using middle mouse button the form should open in new tab. Using left mouse button and opening the form in modal window, it should change the URL.

See host edit, host group edit or template group edit forms for more examples.






[ZBX-20920] Empty psk fields are always sent when any proxy parameter is updated Created: 2022 Apr 20  Updated: 2024 Apr 10  Resolved: 2022 Aug 24

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A), Frontend (F)
Affects Version/s: 6.0.4rc1, 6.2.0alpha1
Fix Version/s: 6.0.8rc1, 6.2.2rc1, 6.4.0alpha1, 6.4 (plan)

Type: Problem report Priority: Trivial
Reporter: Sergejs Olonkins Assignee: Andrejs Verza
Resolution: Fixed Votes: 0
Labels: proxy, psk, update
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2022-08-16-12-20-08-184.png     PNG File screenshot-1.png     PNG File screenshot-2.png     PNG File screenshot-3.png    
Issue Links:
Causes
causes ZBX-21491 Can create passive proxy with one cha... Closed
Team: Team A
Team: Team A
Sprint: Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022)
Story Points: 0.5

 Description   

Problem description: When any parameter of the proxy is updated, then the proxy.tls_psk and proxy.tls_psk_identity fields are updated with empty values. This becomes confusing for the end user once he looks into the corresponding Audit log record.
The above fields should be sent only when their values are actually updated, or when the encryption type is changed from PSK to a non-PSK encryption.

Steps to reproduce:

  1. Create a passive proxy with both connections to proxy and connections from proxy set to "No encryption"
  2. Update the port of this proxy
  3. Check the corresponding audit log record.

Result: the corresponding audit log record shows as if the psk fields were also updated along with the proxy port:

proxy.interface: Updated
proxy.interface.port: 10051 => 10055
proxy.tls_psk: ****** => ******
proxy.tls_psk_identity: ****** => ******

Expected: If psk fields were not actually updated, then their values should not be sent, and the corresponding misleading information should not be present in audit log.



 Comments   
Comment by Dace Petra [ 2022 Jun 22 ]

Fixed in development branch feature/ZBX-20920-6.0

Comment by Dace Petra [ 2022 Aug 18 ]

Fixed in:





[ZBX-20656] Active proxies: allow to process tasks separately from proxy data Created: 2022 Feb 23  Updated: 2024 Apr 10  Resolved: 2022 Jul 28

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: 5.0.27rc1, 6.0.8rc1, 6.2.2rc1, 6.4.0alpha1, 6.4 (plan)

Type: Problem report Priority: Trivial
Reporter: Dmitrijs Goloscapovs Assignee: Andris Zeila
Resolution: Fixed Votes: 1
Labels: proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
part of ZBXNEXT-6503 Protection of Zabbix Server from over... Closed
part of ZBX-20518 Last seen field for Proxy not updated... Closed
Team: Team A
Team: Team A
Sprint: Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022)
Story Points: 1

 Description   

Server-proxy protocol could be enhanced for active proxies.

Ability to exchange tasks not as a part of proxy data request could be added. It will help to avoid delays (during proxy throttling) in proxy lastaccess updates, item testing, executing scripts on proxy. 



 Comments   
Comment by Andris Zeila [ 2022 Jul 28 ]

Released ZBX-20656 in:

  • pre-5.0.27rc1 75adab0f0e5
  • pre-6.0.8rc1 2e2685609ec
  • pre-6.2.2rc1 befb28655c8
  • pre-6.4.0alpha1 b19b6c9a4ac




[ZBX-20556] Inconsistent behavior cloning host and proxy with PSK Encryption enabled. Created: 2022 Feb 08  Updated: 2024 Apr 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 6.2.0alpha1
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Miks Kronkalns Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: PSK, host, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team B
Team: Team B

 Description   

Steps to reproduce:

  • Create a host with PSK checkbox enabled and PSK properties set;
  • Open Host edit form:
    • Observe the "Change PSK" button;
    • Unckeck "PSK" checkbox.
  • Press "Clone" button;
  • Check "PSK" checkbox again.

Result:

Form appears with empty "PSK identity" and "PSK" input fields. In Zabbix 5.4 there would be "Change PSK" button.

Repeating the same steps with Proxy, both Zabbix 6.0 and Zabbix 5.4 behaves same way - "Change PSK" button is displayed.






[ZBX-20326] Zabbix creates new dns interface in host with empty value Created: 2021 Dec 07  Updated: 2021 Dec 14  Resolved: 2021 Dec 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: 5.0.18
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Ramil Zakirov Assignee: Unassigned
Resolution: Duplicate Votes: 3
Labels: autoregistration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File empty_dns_interface.PNG     File zabbix_agentd_win.conf    
Issue Links:
Duplicate
is duplicated by ZBX-17060 Auto Registration changes from IP to ... Closed

 Description   

When auto-registration of the active zabbix agent is enabled and the proxy server cannot resolve the host by its ip address (there is no ptr record in the dns server), then as a result we get a host that starts being monitored using an empty dns interface. And naturally we get a server that is not monitored.
Moreover, this host in the zabix was already monitored and everything was fine, but for some reason auto-registration worked for it and updated the interface.

And that added interface, with empty dns, can't be removed: remove button is not active (see screenshot)



 Comments   
Comment by VAA-KIT [ 2021 Dec 08 ]

Seems to happen to random hosts at random times - at least a few hosts in a week.

Seeing this on version 5.4

Comment by Victor Breda Credidio [ 2021 Dec 09 ]

Hi Ramil.

Regarding the fact about being unable to remove the interface, it is so because this interface is in use by some item.

From the docs, about interface: (https://www.zabbix.com/documentation/current/en/manual/config/hosts/host)
Note: Interfaces that are used in any items cannot be removed and link Remove is grayed out for them.

I'm going to need some informations to help you.

What is the proxy and agent's version? Both 5.0.18?
Is the host's agent configuration file configured with HostInterface or HostInterfaceItem parameters? Can you please send this file?
Is this happening with other hosts, or just with this one?

Best regards.

Comment by Ramil Zakirov [ 2021 Dec 10 ]

Hi

Thanks for an answer

  1. We have tried with several proxy versions - 5.0.18, 5.0.16, 5.0.11 - all the same thing. We have several versions of agents on this problem servers - 3.0*, 5.0.18 and others - so I don't think that agent version matter much
  2. No, HostInterface or HostInterfaceItem is not configured. And this is odd that autoreg try to add dns interface, because it should use IP. Example agent conf file in the attachment.
  3. This is happenings for dozens of servers for us. All of them have IPs that can't be resolved to their dns name - nslookup HOSTIP - doesn't give us dns name. And, although I don't think that does matter, all servers are windows servers (2008 R2, 2012, 2016, virtuals and physicals, with serveral network interfaces or with one)
  4. zabbix_agentd_win.conf
Comment by Victor Breda Credidio [ 2021 Dec 10 ]

Ramil,

Thank you for reporting the issue. I found a similar case registered under ZBX-17060, so we will close this ticket. This issue's fix is already under development. Feel free to follow it.

 

Best regards.





[ZBX-20059] Duplicating metric value in Zabbix server database received from remote Proxies Created: 2021 Oct 07  Updated: 2024 Apr 10  Resolved: 2022 Feb 18

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 4.0.38, 5.0.15, 5.4.10, 6.0.0rc2
Fix Version/s: 5.0.21rc1, 5.4.11rc1, 6.0.1rc1, 6.2.0alpha1, 6.2 (plan)

Type: Patch request Priority: Trivial
Reporter: Elina Kuzyutkina (Inactive) Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File ZBX-20059.diff    
Issue Links:
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 85 (Feb 2022)
Story Points: 1

 Description   

ZBX-19743 re-open. Proxy version is 5.0.14
1. Please add logging for wrong sqite data for debug level.
Also let's try to skip rows where nextid is out of range.

2. this problem became reproducible after updating with history cache overflow protection function. After patch from ZBX-19743 proxy stopped crashing.



 Comments   
Comment by Vladislavs Sokurenko [ 2022 Feb 16 ]

Fixed in:





[ZBX-19956] Proxy address field loses its value once button "Clone" is pressed in Proxy configuration form Created: 2021 Sep 14  Updated: 2024 Apr 10  Resolved: 2022 Feb 18

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 4.0.34rc1, 5.0.16rc1, 5.4.4, 6.0.0alpha3
Fix Version/s: 5.0.21rc1, 5.4.11rc1, 6.0.1rc1, 6.2.0alpha1, 6.2 (plan)

Type: Problem report Priority: Trivial
Reporter: Sergejs Olonkins Assignee: Ivo Kurzemnieks
Resolution: Fixed Votes: 0
Labels: clone, proxy, values
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: GIF File vanishing_proxy_address.gif    
Team: Team B
Team: Team B
Sprint: Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022)
Story Points: 0.25

 Description   

Problem description: The value of field "Proxy address" is lost after pressing the "Clone" button in the Proxy configuration form.

Steps to reproduce:

  1. Create an Active proxy - make sure You've specified the "Proxy address" field
  2. Open configuration of this proxy
  3. Press "Clone" button

Result: value of field "Proxy address" has been cleared
Expected: value of "Proxy address" should still be there

Example:



 Comments   
Comment by Miks Kronkalns [ 2021 Oct 12 ]

Available in development branch feature/ZBX-19956-5.0.

Comment by Ivo Kurzemnieks [ 2022 Feb 17 ]

Fixed in:





[ZBX-19771] Unable to import hosts with proxies Created: 2021 Aug 04  Updated: 2024 Apr 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 5.4.3, 6.0.0alpha1
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Ivo Kurzemnieks Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: import, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team B
Team: Team B

 Description   

1. Create two hosts.
2. Create two proxies.
3. Assign one proxy to first host and the other proxy to second host.
4. Export hosts.
5. Delete hosts.
6. Import hosts.

Observe error.






[ZBX-19743] Duplicating metric value in Zabbix server database received from remote Proxies Created: 2021 Jul 28  Updated: 2024 Apr 10  Resolved: 2021 Aug 25

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 5.0.13
Fix Version/s: 5.0.15rc1, 5.4.4rc1, 6.0.0alpha1, 6.0 (plan)

Type: Problem report Priority: Major
Reporter: Antons Sincovs Assignee: Aleksey Volodin
Resolution: Fixed Votes: 0
Labels: proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBXNEXT-6503 Protection of Zabbix Server from over... Closed
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 79 (Aug 2021)
Story Points: 0.25

 Description   

Large infrastructure: >20 000 Zabbix proxies (of different 5.0.x versions, ~ 5.0.5-5.0.11, SQLite DB) spread all over a wide terrriory.
Connection between the central Zabbix server (5.0.11) and remote Zabbix proxies is unstable and weak.
Ocasionally a remote Zabbix proxy is being rebooted and after that Zabbix server gets duplicating metric values. Number of duplicates varies from several to hundreds.

The problem is being detected by observing increased history cache usage. There are examples when Zabbix proxy databse has a single entry whereas Zabbix server database has multiple duplicates of this entry.

 



 Comments   
Comment by Dmitrijs Goloscapovs [ 2021 Aug 23 ]

Available in versions:





[ZBX-19451] zabbix-proxy-mysql schema file missing in version 5.4 Created: 2021 May 25  Updated: 2024 Apr 10  Resolved: 2021 May 31

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Documentation (D)
Affects Version/s: 5.4.0
Fix Version/s: 6.0 (plan)

Type: Problem report Priority: Major
Reporter: Damian Vermeulen Assignee: Marina Generalova (Inactive)
Resolution: Fixed Votes: 2
Labels: mysql, proxy, ubuntu
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 20.04


Team: Team D
Team: Team D
Sprint: Sprint 76 (May 2021)
Story Points: 0.5

 Description   

Steps to reproduce:

  1. Install release for zabbix v5.4
    https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/
  2. Install zabbix-proxy-mysql

Result:
schema.sql.gz missing from package

dpkg -c zabbix-proxy-mysql_5.4.0-1+ubuntu20.04_amd64.deb
drwxr-xr-x root/root 0 2021-05-14 11:08 ./
drwxr-xr-x root/root 0 2021-05-14 11:08 ./etc/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./etc/init.d/
-rwxr-xr-x root/root 1591 2021-05-14 11:08 ./etc/init.d/zabbix-proxy
drwxr-xr-x root/root 0 2021-05-14 11:08 ./etc/logrotate.d/
-rw-r--r-- root/root 152 2021-05-14 11:08 ./etc/logrotate.d/zabbix-proxy-mysql
drwxr-xr-x root/root 0 2021-05-14 11:08 ./etc/zabbix/
-rw------- root/root 24172 2021-05-14 11:08 ./etc/zabbix/zabbix_proxy.conf
drwxr-xr-x root/root 0 2021-05-14 11:08 ./lib/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./lib/systemd/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./lib/systemd/system/
-rw-r--r-- root/root 491 2021-05-14 11:08 ./lib/systemd/system/zabbix-proxy.service
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/lib/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/lib/tmpfiles.d/
-rw-r--r-- root/root 37 2021-05-14 11:08 ./usr/lib/tmpfiles.d/zabbix-proxy.conf
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/lib/zabbix/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/lib/zabbix/externalscripts/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/sbin/
-rwxr-xr-x root/root 4346976 2021-05-14 11:08 ./usr/sbin/zabbix_proxy
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/share/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/share/doc/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/share/doc/zabbix-proxy-mysql/
-rw-r--r-- root/root 3513 2021-05-14 11:08 ./usr/share/doc/zabbix-proxy-mysql/changelog.Debian.gz
-rw-r--r-- root/root 980 2021-05-14 11:08 ./usr/share/doc/zabbix-proxy-mysql/copyright
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/share/man/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./usr/share/man/man8/
-rw-r--r-- root/root 1530 2021-05-14 11:08 ./usr/share/man/man8/zabbix_proxy.8.gz
drwxr-xr-x root/root 0 2021-05-14 11:08 ./var/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./var/log/
drwxr-xr-x root/root 0 2021-05-14 11:08 ./var/log/zabbix/

Expected:

./usr/share/doc/zabbix-proxy-mysql/schema.sql.gz

Or similar.

 

Thank you.

Damian



 Comments   
Comment by Anthony Somerset [ 2021 May 25 ]

I also am experiencing this issue

the important thing to note here is that while upgrades have no issue because pre-existing schema will just upgrade without problems.

New installs need the schema to be manually sourced and imported to mysql which potentially breaks automation systems like Puppet that are expecting the schema file to exist in a specific location as previously was the case

Comment by Edgars Melveris [ 2021 May 25 ]

Hello!

This is because the sql schema files have been split in separate package called

zabbix-sql-scripts 

Just install that and it contains all the schemas you need.

If you followed installation instructions form the downloads page, you might already have it installed, check here:
/usr/share/doc/zabbix-sql-scripts/
Additionally, I did not find this documented in the upgrade notes, so I'm confirming this as documentation bug.

Comment by Damian Vermeulen [ 2021 May 25 ]

Thanks Edgars.

I was using the official Zabbix documentation which seems to be a bit out dated regarding this topic as well.

 

Comment by Edgars Melveris [ 2021 May 25 ]

Looks like it, places like this:

https://www.zabbix.com/documentation/current/manual/installation/install_from_packages/rhel_centos

are still referring to old location:

zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbix 

This should be fixed.

Comment by Marina Generalova (Inactive) [ 2021 May 27 ]

Thank you for reporting, updated documentation:  

Comment by Damian Vermeulen [ 2021 Jun 04 ]

Thank you Marina.





[ZBX-19324] Possible deadlock between history and configuration syncer Created: 2021 May 03  Updated: 2024 Apr 10  Resolved: 2021 May 12

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 5.0.11
Fix Version/s: 5.0.12rc1, 5.2.7rc1, 5.4.0rc1, 5.4 (plan)

Type: Problem report Priority: Critical
Reporter: Alexey Pustovalov Assignee: Andris Zeila
Resolution: Fixed Votes: 1
Labels: deadlock, logitem, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

PostgreSQL env


Issue Links:
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 76 (May 2021)
Story Points: 0.5

 Description   

Zabbix proxy processes history syncer and configuration syncer can update item_rtdata table at the same time, sometimes that behaviour leads to deadlock:

127835 ?        S    448:03 /usr/sbin/zabbix_proxy: configuration syncer [synced config 275030365 bytes in 81.817207 sec, idle 600 sec]
127835:20210430:052831.402 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  deadlock detected
DETAIL:  Process 64959 waits for ShareLock on transaction 1610869401; blocked by process 35622.
Process 35622 waits for ShareLock on transaction 1610861197; blocked by process 64959.
HINT:  See server log for query details.
CONTEXT:  while updating tuple (8678,47) in relation "item_rtdata"
 [update item_rtdata set lastlogsize=13215979 where itemid=4817759;
update item_rtdata set lastlogsize=12228184 where itemid=4817853;
update item_rtdata set lastlogsize=15520660 where itemid=4818605;
update item_rtdata set lastlogsize=15527388 where itemid=4818699;
update item_rtdata set lastlogsize=15550667 where itemid=4818793;
update item_rtdata set lastlogsize=12248851 where itemid=4818887;
update item_rtdata set lastlogsize=13073357 where itemid=4818981;
update item_rtdata set lastlogsize=15361752 where itemid=4819075;
update item_rtdata set lastlogsize=13887891 where itemid=4819457;
update item_rtdata set lastlogsize=13063279 where itemid=4819551;
update item_rtdata set lastlogsize=14095578 where itemid=4819645;
update item_rtdata set lastlogsize=13180563 where itemid=4819739;
....
127920 ?        S     47:22 /usr/sbin/zabbix_proxy: history syncer #5 [processed 201 values in 0.014312 sec, idle 1 sec]
127920:20210430:052829.772 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  deadlock detected
DETAIL:  Process 101748 waits for ShareLock on transaction 1610861197; blocked by process 64959.
Process 64959 waits for ShareLock on transaction 1610869407; blocked by process 101748.
HINT:  See server log for query details.
CONTEXT:  while updating tuple (7974,72) in relation "item_rtdata"
 [update item_rtdata set lastlogsize=12379005,mtime=0 where itemid=4966526;
update item_rtdata set lastlogsize=13169243,mtime=0 where itemid=4827071;
update item_rtdata set lastlogsize=13207156,mtime=0 where itemid=5954656;
update item_rtdata set lastlogsize=13173698,mtime=0 where itemid=4897443;
update item_rtdata set lastlogsize=13218318,mtime=0 where itemid=6684365;
update item_rtdata set lastlogsize=5586299,mtime=0 where itemid=6684366;
update item_rtdata set lastlogsize=12274229,mtime=0 where itemid=7380422;
update item_rtdata set lastlogsize=4965000,mtime=0 where itemid=7380423;
]


 Comments   
Comment by Andris Zeila [ 2021 May 11 ]

Released ZBX-19324 in:

  • pre-5.0.12rc1 8c39a5d32b
  • pre-5.2.7rc1 e64c254e53
  • pre-5.4.0rc1 01adc79036




[ZBX-19320] SAML advanced configuration ignores baseurl option Created: 2021 Apr 30  Updated: 2024 Apr 10  Resolved: 2021 May 31

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 5.0.11, 5.2.6
Fix Version/s: 5.0.13rc1, 5.2.7rc1, 5.4.1rc1, 6.0.0alpha1, 6.0 (plan)

Type: Problem report Priority: Major
Reporter: Alexey Pustovalov Assignee: Andrejs Griščenko
Resolution: Fixed Votes: 2
Labels: SAML, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Reverse proxy for Zabbix frontend with SAML


Issue Links:
Duplicate
is duplicated by ZBXNEXT-5948 Cannot setup working SAML behind ngin... Closed
Team: Team A
Team: Team A
Sprint: Sprint 76 (May 2021)
Story Points: 1

 Description   

PHP-SAML has the following configuration option, which is required if Zabbix web-interface is behind proxy:

// Set a BaseURL to be used instead of try to guess
    // the BaseURL of the view that process the SAML Message.
    // Ex http://sp.example.com/
    //    http://example.com/sp/
    'baseurl' => null,

Index_sso.php does not allow to specify the option.

Please refer to https://github.com/zabbix/zabbix-docker/issues/815 issue and https://github.com/onelogin/php-saml documentation.



 Comments   
Comment by Andrejs Griščenko [ 2021 May 12 ]

Resolved in feature/ZBX-19320-5.0.

Comment by Andrejs Griščenko [ 2021 May 27 ]

Fixed in:





[ZBX-19029] Missing lastlogsize information Created: 2021 Feb 16  Updated: 2024 Apr 10  Resolved: 2021 Feb 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 5.0.8
Fix Version/s: 5.0.9rc2, 5.2.5rc2, 5.4.0alpha2, 5.4 (plan)

Type: Problem report Priority: Critical
Reporter: Alexey Pustovalov Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 0
Labels: log, preprocessing, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sub-task
Team: Team A
Team: Team A
Sprint: Sprint 73 (Feb 2021)
Story Points: 1

 Description   

When logrt[/tmp/test.log,,,,skip,,,mtime-noreread] log item has JavaScript processing step like:

var test = /555|666/;
if (test.test(value)) {return null;}
return value;

Fields lastlogsize and mtime are not updated independent of result (new value or only metadata come).

Item without processing step:
agent log (active checks):

 2759:20210216:124659.529 In send_buffer() host:'zabbix-proxy-sqlite3' port:10051 entries:1/100
  2759:20210216:124659.529 JSON before sending [{"request":"agent data","session":"e8e4a10ad342f6f361a85a14f8df1383","data":[{"host":"zabbix_test","key":"logrt[/tmp/test.log,,,,skip,,,mtime-noreread]","value":"Tue Feb 16 12:46:54 EST 2021","lastlogsize":29,"mtime":1613497614,"id":9,"clock":1613497619,"ns":528956564}],"clock":1613497619,"ns":529549373}]
  2759:20210216:124659.529 JSON back [{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000087"}]
  2759:20210216:124659.529 In check_response() response:'{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000087"}'

proxy log (history syncer):

   156:20210216:124700.526 In zbx_sync_history_cache() history_num:1
   156:20210216:124700.526 query [txnlev:1] [begin;]
   156:20210216:124700.526 In DCmass_proxy_add_history()
   156:20210216:124700.526 query [txnlev:1] [insert into proxy_history (itemid,clock,ns,timestamp,source,severity,value,logeventid,lastlogsize,mtime,flags,write_clock) values (32653,1613497619,528956564,0,'',0,'Tue Feb 16 12:46:54 EST 2021',0,29,1613497614,1,1613497620);
]
   159:20210216:124700.526 zbx_setproctitle() title:'history syncer #4 [processed 0 values in 0.000125 sec, syncing history]'
   159:20210216:124700.526 In zbx_sync_history_cache() history_num:1
   159:20210216:124700.526 zbx_setproctitle() title:'history syncer #4 [processed 0 values in 0.000082 sec, idle 1 sec]'
   158:20210216:124700.526 zbx_setproctitle() title:'history syncer #3 [processed 0 values in 0.000185 sec, syncing history]'
   158:20210216:124700.526 In zbx_sync_history_cache() history_num:1
   158:20210216:124700.526 zbx_setproctitle() title:'history syncer #3 [processed 0 values in 0.000033 sec, idle 1 sec]'
   156:20210216:124700.526 End of DCmass_proxy_add_history()
   156:20210216:124700.526 In DCmass_proxy_update_items()
   156:20210216:124700.526 query [txnlev:1] [update item_rtdata set lastlogsize=29,mtime=1613497614 where itemid=32653;
]
   156:20210216:124700.526 End of DCmass_proxy_update_items()

Proxy DB:

sqlite> select * from item_rtdata;
32653|29|0|1613497614|
sqlite> select * from proxy_history;
8|32653|1613497619|0||0|Tue Feb 16 12:46:54 EST 2021|0|528956564|0|29|1613497614|1|1613497620

Then processing step added. Sending values "test555test" and "test" (first one must be ignored):
agent log:

  2759:20210216:125259.690 End of need_meta_update():FAIL
  2759:20210216:125259.690 In send_buffer() host:'zabbix-proxy-sqlite3' port:10051 entries:1/100
  2759:20210216:125259.691 JSON before sending [{"request":"agent data","session":"e8e4a10ad342f6f361a85a14f8df1383","data":[{"host":"zabbix_test","key":"logrt[/tmp/test.log,,,,skip,,,mtime-noreread]","value":"test555test","lastlogsize":41,"mtime":1613497960,"id":10,"clock":1613497979,"ns":690608163}],"clock":1613497979,"ns":691148160}]
  2759:20210216:125259.691 JSON back [{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000118"}]
  2759:20210216:125259.691 In check_response() response:'{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000118"}'
  2759:20210216:125259.691 info from server: 'processed: 1; failed: 0; total: 1; seconds spent: 0.000118'
....
  2759:20210216:125459.746 In send_buffer() host:'zabbix-proxy-sqlite3' port:10051 entries:1/100
  2759:20210216:125459.746 JSON before sending [{"request":"agent data","session":"e8e4a10ad342f6f361a85a14f8df1383","data":[{"host":"zabbix_test","key":"logrt[/tmp/test.log,,,,skip,,,mtime-noreread]","value":"test","lastlogsize":46,"mtime":1613498073,"id":11,"clock":1613498099,"ns":746200933}],"clock":1613498099,"ns":746754628}]
  2759:20210216:125459.747 JSON back [{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000109"}]
  2759:20210216:125459.747 In check_response() response:'{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000109"}'
  2759:20210216:125459.747 info from server: 'processed: 1; failed: 0; total: 1; seconds spent: 0.000109'

proxy log:

   157:20210216:125300.687 In zbx_sync_history_cache() history_num:1
   157:20210216:125300.687 query [txnlev:1] [begin;]
   157:20210216:125300.687 In DCmass_proxy_add_history()
   157:20210216:125300.687 query [txnlev:1] [insert into proxy_history (itemid,clock,ns,value,flags,write_clock) values (32653,1613497979,690608163,'',2,1613497980);
]
   157:20210216:125300.688 End of DCmass_proxy_add_history()
...
   157:20210216:125500.743 In DCmass_proxy_add_history()
   157:20210216:125500.743 query [txnlev:1] [insert into proxy_history (itemid,clock,ns,timestamp,source,severity,value,logeventid,lastlogsize,mtime,flags,write_clock) values (32653,1613498099,746200933,0,'',0,'test',0,0,0,0,1613498100);
]
   157:20210216:125500.743 End of DCmass_proxy_add_history()
   157:20210216:125500.743 In DCmass_proxy_update_items()
   157:20210216:125500.743 End of DCmass_proxy_update_items()
   157:20210216:125500.743 query [txnlev:1] [commit;]
   157:20210216:125500.744 zbx_setproctitle() title:'history syncer #2 [processed 1 values in 0.001067 sec, idle 1 sec]'

Proxy DB:

sqlite> select * from item_rtdata;
32653|29|0|1613497614|
sqlite> select * from proxy_history;
8|32653|1613497619|0||0|Tue Feb 16 12:46:54 EST 2021|0|528956564|0|29|1613497614|1|1613497620
9|32653|1613497979|0||0||0|690608163|0|0|0|2|1613497980
...
sqlite> select * from item_rtdata;
32653|29|0|1613497614|
sqlite> select * from proxy_history;
8|32653|1613497619|0||0|Tue Feb 16 12:46:54 EST 2021|0|528956564|0|29|1613497614|1|1613497620
9|32653|1613497979|0||0||0|690608163|0|0|0|2|1613497980
10|32653|1613498099|0||0|test|0|746200933|0|0|0|0|1613498100

So when such JavaScript processing is added, it does not matter value is filtered out or not, rttdata is not updated anymore.



 Comments   
Comment by Vladislavs Sokurenko [ 2021 Feb 18 ]

Fixed in:

  • pre-5.0.9rc1 dbb8dc94187
  • pre-5.2.5rc1 5ad24488345
  • pre-5.4.0alpha2 (master) 91bbd90c2b0




[ZBX-18876] SNMPv3 unstable use of snmpEngineTime results in usmStatsNotInTimeWindows Created: 2021 Jan 13  Updated: 2023 Jun 27

Status: Reopened
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 5.0.6
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: H.L. Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 1
Labels: proxy, snmpv3
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

net-snmp.x86_64 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-agent-libs.i686 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-agent-libs.x86_64 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-devel.i686 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-libs.i686 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-libs.x86_64 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-perl.x86_64 1:5.7.2-49.el7 @centos7-base-x86_64
net-snmp-utils.x86_64 1:5.7.2-49.el7 @centos7-base-x86_64
zabbix-agent.x86_64 5.0.7-1.el7 @zabbix5.0
zabbix-proxy-mysql.x86_64 5.0.7-1.el7 @zabbix5.0
zabbix-release.noarch 5.0-1.el7 @zabbix4.0


Attachments: PNG File snmp_usmStatsNotInTimeWindows.png     PNG File snmp_usmStatsNotInTimeWindows_allpackets.png    
Issue Links:
Duplicate

 Description   

Hi,

we are monitoring a lot of snmpv3 devices with this zabbix proxy and have some issues with flapping snmp availability. After some troubleshooting I discovered that zabbix seams to switch the snmpEngineTime to unknown/unpredictable/wrong values, which causes the devices to be not stable.

I monitored all our traffic with wireshark on this poxy and I am sure there are no duplicate snmpEngineIDs. (Doublechecked)

Steps to reproduce:

  1. Monitor a lot of different snmpv3 devices from a zabbix proxy.
  2. Make sure to use more than 1 Poller. Our StartPollers value is 75.
  3. Make sure to have unique snmp engineIDs in the whole network. I checked this with wireshark.
  4. Wait for flapping snmp connectivity triggers
  5. Create a tcpdump of all snmp traffic on the proxy and analyze snmp communication.

Result:

Flapping snmp availability of the devices, because Zabbix uses the wrong snmpEngineTime Values as you can see in the screenshots. If you have a look in the "snmp_usmStatsNotInTimeWindows_allpackets.png" you will see, that there is no communication to other devices happening in the exact moment zabbix switches to the wrong snmpEngineTime. The "allpackets" screenshot shows you all snmp traffic on this machine. It seem zabbix switches to the wrong snmpEngineTime without reason and communication starts to get worse. The monitored device correctly reports usmStatsNotInTimeWindows, but zabbix seems not to care about. Further it seems that requests happen in parallel with correct and wrong snmpEngineTime. I guess this is because zabbix uses several poller to request the device, but only one poller uses the correct snmpEngineTime.

Expected:
No flapping snmp availability and zabbix proxy is using the correct snmpEngineTime for communication.



 Comments   
Comment by Oleksii Zagorskyi [ 2021 Jan 14 ]

Have you had a chance to read ZBX-8385 ?

It describes also cases when monitored device does not follow RFC requirements, which cause the issue.

Comment by H.L. [ 2021 Jan 15 ]

Hi Oleksii,

Thanks for your help and pointing me to ZBX-8385. After reading it I can say ZBX-8385 describes two possible reasons but does not fit to my discovered problem.

From ZBX-8385:

We can split the "usmStatsNotInTimeWindows" case to two possible reasons:
a) there indeed are monitored snmpV3 devices which have identical msgAuthoritativeEngineID

This is not the case. I doublechecked and there are no duplicate snmpEngineIDs.

b) some of devices have incorrect behavior and don't follow RFC3414. For example I know device which always use engineBoot=1, even after reboot.

This doesn't fit either. The monitored device did not reboot and in all SNMPv3 packets of this device the snmpEngineBoot value is 0. The snmpEngineTime further did not overflow, this the snmpEngineBoot value of 0 is correct.

But ZBX-8385 describes an interesting fact:

Zabbix server|proxy is a multi-process application. Every poller|unreachable_poller|and_some_other_process_type when starts - it loads libnetsnmp.

Every such process keeps its own libsnmp's in-RAM cache.What we want to consider is "etimelist" (see ldc_time.c)

This explains why it is even possible that zabbix starts to poll the device with correct snmpEngineTime and wrong snmpEngineTime in parallel.

In the moment that happened I see the "first network error, wait for 15 seconds" and "temporarily disabling SNMP agent checks on host: host unavailable" errors in the logs.

From this behaviour and RFC3414 I would suggest to update the poller code of zabbix. If any instance of poller receives an usmStatsNotInTimeWindows error report from a device, that same instance should update its snmpEngineTime and snmpEngineBoot values according to the values in the report and try again. The device should only be treated unreachable if the retry with updated snmpEngineTime and snmpEngineBoot values fails again. This would make zabbix further more stable from an enduser perspective.

Comment by Oleksii Zagorskyi [ 2021 Jan 15 ]

This is your friend: https://www.zabbix.com/documentation/5.0/manual/introduction/whatsnew500#manual_snmp_cache_clearing

Nothing add on zabbix side, this issue to be closed.

Comment by Oleksii Zagorskyi [ 2021 Jan 15 ]

Don't get me wrong on closing current issue. But taking into account that you found new important details, this one should be closed.

If you still think that something is wrong, create a new issue taking into account all new details.

Comment by H.L. [ 2021 Jan 15 ]

Yes, I absolutely don't understand why you close this case. I found an issue in zabbix, documented and reported it and suggested how to solve it. You pointed me to manually clear the snmp cache to "solve" this issue. This might be a workaround until the code gets fixed. Zabbix is promoted to "Automate monitoring of large, dynamic environments". How does this fit to manually clear snmp cache from time to time because we won't fix our code. Zabbix behaves unstable and the users have to manually intervene to have it working until it gets again unstable. I did invest a lot of time to analyze this issue to make zabbix a better software and you just ignore it. Great job, Thanks.

Comment by H.L. [ 2021 Jan 15 ]

Taking into account all new details it is still the same: Zabbix behaves unstable because it doesn't correctly track snmpEngineTime with multiple pollers. Manually clearing the snmp cache is not a solution, it is only a workaround.

Comment by Oleksii Zagorskyi [ 2021 Jan 15 ]

I've spent quite a lot of time to work with SNMP, especially v3, so now I'm pretty confident to say that there is no bug in zabbix.
Maybe there us something not like you expected or wanted, but that's not a bug, I'm sorry.

The RFC does require to not "track snmpEngineTime" but reject it because of security aspects.
If device does not follow RFC - that's not zabbix fault.

Comment by H.L. [ 2021 Jan 15 ]

So, how do you explain that the zabbix poller process starts to use a complete made up snmpEngineTime value? In all my traces the monitored devices behave RFC compliant. They increase their values correctly like they should. Only Zabbix starts out of nothing to use weird snmpEngineTime values without any known reason. I even filtered my traces to find any other device having a snmpEngineTime value like the one Zabbix made up, but didn't find one. Nothing tells Zabbix to invent snmpEngineTime values.

Comment by Oleksii Zagorskyi [ 2021 Jan 18 ]

That all made by library itself, not by zabbix.
It's possible that small number of zabbix server pollers "caught" the higher EngineTime for duplicated EngineID some time ago and continued to "count" the clock (in library's cache). Or device was rebooted.

snmpEngineBoot=0 (as you said) is almost 100% grantee (IMO) that the device does not follow RFC.

Try to restart zabbix or clean the cache I implemented.
I'm sorry, but I do not see much sense to argue here.

Comment by Craig Hopkins [ 2022 Sep 02 ]

Related to ZBX-21557 ?





[ZBX-18860] "Check for not supported value" with log item crashes Proxy Created: 2021 Jan 11  Updated: 2024 Apr 10  Resolved: 2021 Jan 18

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 5.2.2
Fix Version/s: 5.2.4rc1, 5.4.0alpha1, 5.4 (plan)

Type: Problem report Priority: Blocker
Reporter: Yurii Polenok Assignee: Andrejs Kozlovs
Resolution: Fixed Votes: 0
Labels: logitem, preprocessing, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Proxy: CentOS Linux release 8.2.2004
Agent2: CentOS Linux release 7.4.1708


Attachments: File zabbix_proxy.objdump.gz    
Issue Links:
Causes
caused by ZBXNEXT-6257 Implement Check for not supported val... Closed
Duplicate
is duplicated by ZBX-19091 Zabbix Crashes with JavaScript pre-pr... Closed
Team: Team C
Team: Team C
Sprint: Sprint 72 (Jan 2021)
Story Points: 0.5

 Description   

Steps to reproduce:

  1. Create log item
  2. Add Preprocessing step "Check for not supported value"
  3. Set "Custom on fail" to "Set value to"

Result:

2019362:20210111:111436.070 Got signal [signal:11(SIGSEGV),reason:1,refaddr:0x38]. Crashing ...
2019362:20210111:111436.070 ====== Fatal information: ======
2019362:20210111:111436.070 Program counter: 0x55a7960ac589
2019362:20210111:111436.071 === Registers: ===
2019362:20210111:111436.071 r8      =     55a796ee0a00 =       94178280081920 =       94178280081920
2019362:20210111:111436.071 r9      =                0 =                    0 =                    0
2019362:20210111:111436.071 r10     =    4324003901a0b =     1181150425913867 =     1181150425913867
2019362:20210111:111436.071 r11     =                0 =                    0 =                    0
2019362:20210111:111436.071 r12     =                0 =                    0 =                    0
2019362:20210111:111436.071 r13     =               87 =                  135 =                  135
2019362:20210111:111436.072 r14     =                0 =                    0 =                    0
2019362:20210111:111436.072 r15     =                0 =                    0 =                    0
2019362:20210111:111436.072 rdi     =     55a796fa7690 =       94178280896144 =       94178280896144
2019362:20210111:111436.072 rsi     =     55a796e57012 =       94178279518226 =       94178279518226
2019362:20210111:111436.072 rbp     =     7ffd9633a5d0 =      140727123420624 =      140727123420624
2019362:20210111:111436.072 rbx     =                1 =                    1 =                    1
2019362:20210111:111436.072 rdx     =     55a796fd2d70 =       94178281074032 =       94178281074032
2019362:20210111:111436.073 rax     =                0 =                    0 =                    0
2019362:20210111:111436.073 rcx     =                6 =                    6 =                    6
2019362:20210111:111436.073 rsp     =     7ffd9633a580 =      140727123420544 =      140727123420544
2019362:20210111:111436.073 rip     =     55a7960ac589 =       94178265187721 =       94178265187721
2019362:20210111:111436.073 efl     =            10202 =                66050 =                66050
2019362:20210111:111436.073 csgsfs  =   2b000000000033 =    12103423998558259 =    12103423998558259
2019362:20210111:111436.073 err     =                4 =                    4 =                    4
2019362:20210111:111436.073 trapno  =                e =                   14 =                   14
2019362:20210111:111436.073 oldmask =                0 =                    0 =                    0
2019362:20210111:111436.074 cr2     =               38 =                   56 =                   56
2019362:20210111:111436.074 === Backtrace: ===
2019362:20210111:111436.075 12: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](zbx_backtrace+0x3f) [0x55a79612c4b4]
2019362:20210111:111436.075 11: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](zbx_log_fatal_info+0x141) [0x55a79612c712]
2019362:20210111:111436.075 10: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](+0x10beeb) [0x55a79612ceeb]
2019362:20210111:111436.075 9: /lib64/libpthread.so.0(+0x12b20) [0x7f2d417d1b20]
2019362:20210111:111436.076 8: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](+0x8b589) [0x55a7960ac589]
2019362:20210111:111436.076 7: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](+0x8b95d) [0x55a7960ac95d]
2019362:20210111:111436.076 6: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](preprocessing_manager_thread+0x370) [0x55a7960ad533]
2019362:20210111:111436.076 5: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](zbx_thread_start+0x37) [0x55a796131537]
2019362:20210111:111436.076 4: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](MAIN_ZABBIX_ENTRY+0xdc1) [0x55a79606087b]
2019362:20210111:111436.077 3: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](daemon_start+0x2ff) [0x55a79612c0c0]
2019362:20210111:111436.077 2: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](main+0x2f0) [0x55a79605fa6f]
2019362:20210111:111436.077 1: /lib64/libc.so.6(__libc_start_main+0xf3) [0x7f2d3f9567b3]
2019362:20210111:111436.077 0: /usr/sbin/zabbix_proxy: preprocessing manager #1 [queued 0, processed 135 values, idle 5.034035 sec during 5.035920 sec](_start+0x2e) [0x55a79605e95e]
2019362:20210111:111436.077 === Memory map: ===
2019362:20210111:111436.078 55a796021000-55a7962b4000 r-xp 00000000 fd:00 20660                      /usr/sbin/zabbix_proxy_sqlite3
2019362:20210111:111436.078 55a7964b3000-55a796568000 r--p 00292000 fd:00 20660                      /usr/sbin/zabbix_proxy_sqlite3
2019362:20210111:111436.078 55a796568000-55a796575000 rw-p 00347000 fd:00 20660                      /usr/sbin/zabbix_proxy_sqlite3
2019362:20210111:111436.078 55a796575000-55a79657d000 rw-p 00000000 00:00 0 
2019362:20210111:111436.078 55a796e57000-55a796e78000 rw-p 00000000 00:00 0                          [heap]
2019362:20210111:111436.078 55a796e78000-55a796f38000 rw-p 00000000 00:00 0                          [heap]
2019362:20210111:111436.079 55a796f38000-55a796ff9000 rw-p 00000000 00:00 0                          [heap]
2019362:20210111:111436.079 7f2d3745a000-7f2d37471000 r-xp 00000000 fd:00 3272                       /usr/lib64/libgcc_s-8-20191121.so.1
2019362:20210111:111436.079 7f2d37471000-7f2d37670000 ---p 00017000 fd:00 3272                       /usr/lib64/libgcc_s-8-20191121.so.1
2019362:20210111:111436.079 7f2d37670000-7f2d37671000 r--p 00016000 fd:00 3272                       /usr/lib64/libgcc_s-8-20191121.so.1
2019362:20210111:111436.079 7f2d37671000-7f2d37672000 rw-p 00017000 fd:00 3272                       /usr/lib64/libgcc_s-8-20191121.so.1
2019362:20210111:111436.079 7f2d37672000-7f2d3b672000 rw-s 00000000 00:05 32802                      /SYSV00000000 (deleted)
2019362:20210111:111436.080 7f2d3b672000-7f2d3ba72000 rw-s 00000000 00:05 32801                      /SYSV00000000 (deleted)
2019362:20210111:111436.080 7f2d3ba72000-7f2d3ca72000 rw-s 00000000 00:05 32800                      /SYSV00000000 (deleted)
2019362:20210111:111436.080 7f2d3ca72000-7f2d3caf5000 r-xp 00000000 fd:00 2477                       /usr/lib64/libpcre2-8.so.0.7.1
2019362:20210111:111436.080 7f2d3caf5000-7f2d3ccf4000 ---p 00083000 fd:00 2477                       /usr/lib64/libpcre2-8.so.0.7.1
2019362:20210111:111436.080 7f2d3ccf4000-7f2d3ccf5000 r--p 00082000 fd:00 2477                       /usr/lib64/libpcre2-8.so.0.7.1
2019362:20210111:111436.081 7f2d3ccf5000-7f2d3ccf6000 rw-p 00083000 fd:00 2477                       /usr/lib64/libpcre2-8.so.0.7.1
2019362:20210111:111436.081 7f2d3ccf6000-7f2d3cd1d000 r-xp 00000000 fd:00 2491                       /usr/lib64/libselinux.so.1
2019362:20210111:111436.081 7f2d3cd1d000-7f2d3cf1d000 ---p 00027000 fd:00 2491                       /usr/lib64/libselinux.so.1
2019362:20210111:111436.081 7f2d3cf1d000-7f2d3cf1e000 r--p 00027000 fd:00 2491                       /usr/lib64/libselinux.so.1
2019362:20210111:111436.081 7f2d3cf1e000-7f2d3cf1f000 rw-p 00028000 fd:00 2491                       /usr/lib64/libselinux.so.1
2019362:20210111:111436.081 7f2d3cf1f000-7f2d3cf21000 rw-p 00000000 00:00 0 
2019362:20210111:111436.082 7f2d3cf21000-7f2d3cf40000 r-xp 00000000 fd:00 5875                       /usr/lib64/libbrotlicommon.so.1.0.6
2019362:20210111:111436.082 7f2d3cf40000-7f2d3d13f000 ---p 0001f000 fd:00 5875                       /usr/lib64/libbrotlicommon.so.1.0.6
2019362:20210111:111436.082 7f2d3d13f000-7f2d3d140000 r--p 0001e000 fd:00 5875                       /usr/lib64/libbrotlicommon.so.1.0.6
2019362:20210111:111436.082 7f2d3d140000-7f2d3d141000 rw-p 0001f000 fd:00 5875                       /usr/lib64/libbrotlicommon.so.1.0.6
2019362:20210111:111436.082 7f2d3d141000-7f2d3d2be000 r-xp 00000000 fd:00 3785                       /usr/lib64/libunistring.so.2.1.0
2019362:20210111:111436.082 7f2d3d2be000-7f2d3d4bd000 ---p 0017d000 fd:00 3785                       /usr/lib64/libunistring.so.2.1.0
2019362:20210111:111436.083 7f2d3d4bd000-7f2d3d4c1000 r--p 0017c000 fd:00 3785                       /usr/lib64/libunistring.so.2.1.0
2019362:20210111:111436.083 7f2d3d4c1000-7f2d3d4c2000 rw-p 00180000 fd:00 3785                       /usr/lib64/libunistring.so.2.1.0
2019362:20210111:111436.083 7f2d3d4c2000-7f2d3d4e2000 r-xp 00000000 fd:00 3458                       /usr/lib64/libcrypt.so.1.1.0
2019362:20210111:111436.083 7f2d3d4e2000-7f2d3d6e1000 ---p 00020000 fd:00 3458                       /usr/lib64/libcrypt.so.1.1.0
2019362:20210111:111436.083 7f2d3d6e1000-7f2d3d6e2000 r--p 0001f000 fd:00 3458                       /usr/lib64/libcrypt.so.1.1.0
2019362:20210111:111436.084 7f2d3d6e2000-7f2d3d6eb000 rw-p 00000000 00:00 0 
2019362:20210111:111436.084 7f2d3d6eb000-7f2d3d6ee000 r-xp 00000000 fd:00 3733                       /usr/lib64/libkeyutils.so.1.6
2019362:20210111:111436.084 7f2d3d6ee000-7f2d3d8ed000 ---p 00003000 fd:00 3733                       /usr/lib64/libkeyutils.so.1.6
2019362:20210111:111436.084 7f2d3d8ed000-7f2d3d8ee000 r--p 00002000 fd:00 3733                       /usr/lib64/libkeyutils.so.1.6
2019362:20210111:111436.085 7f2d3d8ee000-7f2d3d8ef000 rw-p 00000000 00:00 0 
2019362:20210111:111436.085 7f2d3d8ef000-7f2d3d8fe000 r-xp 00000000 fd:00 7219                       /usr/lib64/libkrb5support.so.0.1
2019362:20210111:111436.085 7f2d3d8fe000-7f2d3dafe000 ---p 0000f000 fd:00 7219                       /usr/lib64/libkrb5support.so.0.1
2019362:20210111:111436.085 7f2d3dafe000-7f2d3daff000 r--p 0000f000 fd:00 7219                       /usr/lib64/libkrb5support.so.0.1
2019362:20210111:111436.085 7f2d3daff000-7f2d3db00000 rw-p 00010000 fd:00 7219                       /usr/lib64/libkrb5support.so.0.1
2019362:20210111:111436.085 7f2d3db00000-7f2d3db0b000 r-xp 00000000 fd:00 5877                       /usr/lib64/libbrotlidec.so.1.0.6
2019362:20210111:111436.086 7f2d3db0b000-7f2d3dd0a000 ---p 0000b000 fd:00 5877                       /usr/lib64/libbrotlidec.so.1.0.6
2019362:20210111:111436.086 7f2d3dd0a000-7f2d3dd0b000 r--p 0000a000 fd:00 5877                       /usr/lib64/libbrotlidec.so.1.0.6
2019362:20210111:111436.086 7f2d3dd0b000-7f2d3dd0c000 rw-p 00000000 00:00 0 
2019362:20210111:111436.086 7f2d3dd0c000-7f2d3dd1c000 r-xp 00000000 fd:00 4831                       /usr/lib64/libpsl.so.5.3.1
2019362:20210111:111436.086 7f2d3dd1c000-7f2d3df1b000 ---p 00010000 fd:00 4831                       /usr/lib64/libpsl.so.5.3.1
2019362:20210111:111436.087 7f2d3df1b000-7f2d3df1c000 r--p 0000f000 fd:00 4831                       /usr/lib64/libpsl.so.5.3.1
2019362:20210111:111436.087 7f2d3df1c000-7f2d3df1d000 rw-p 00000000 00:00 0 
2019362:20210111:111436.087 7f2d3df1d000-7f2d3df39000 r-xp 00000000 fd:00 3787                       /usr/lib64/libidn2.so.0.3.6
2019362:20210111:111436.087 7f2d3df39000-7f2d3e139000 ---p 0001c000 fd:00 3787                       /usr/lib64/libidn2.so.0.3.6
2019362:20210111:111436.087 7f2d3e139000-7f2d3e13a000 r--p 0001c000 fd:00 3787                       /usr/lib64/libidn2.so.0.3.6
2019362:20210111:111436.088 7f2d3e13a000-7f2d3e13b000 rw-p 00000000 00:00 0 
2019362:20210111:111436.088 7f2d3e13b000-7f2d3e15f000 r-xp 00000000 fd:00 5902                       /usr/lib64/libnghttp2.so.14.17.0
2019362:20210111:111436.088 7f2d3e15f000-7f2d3e35f000 ---p 00024000 fd:00 5902                       /usr/lib64/libnghttp2.so.14.17.0
2019362:20210111:111436.088 7f2d3e35f000-7f2d3e360000 r--p 00024000 fd:00 5902                       /usr/lib64/libnghttp2.so.14.17.0
2019362:20210111:111436.088 7f2d3e360000-7f2d3e362000 rw-p 00025000 fd:00 5902                       /usr/lib64/libnghttp2.so.14.17.0
2019362:20210111:111436.088 7f2d3e362000-7f2d3e37e000 r-xp 00000000 fd:00 6865                       /usr/lib64/libsasl2.so.3.0.0
2019362:20210111:111436.089 7f2d3e37e000-7f2d3e57e000 ---p 0001c000 fd:00 6865                       /usr/lib64/libsasl2.so.3.0.0
2019362:20210111:111436.089 7f2d3e57e000-7f2d3e57f000 r--p 0001c000 fd:00 6865                       /usr/lib64/libsasl2.so.3.0.0
2019362:20210111:111436.089 7f2d3e57f000-7f2d3e580000 rw-p 0001d000 fd:00 6865                       /usr/lib64/libsasl2.so.3.0.0
2019362:20210111:111436.089 7f2d3e580000-7f2d3e58e000 r-xp 00000000 fd:00 3832                       /usr/lib64/libgdbm.so.6.0.0
2019362:20210111:111436.089 7f2d3e58e000-7f2d3e78e000 ---p 0000e000 fd:00 3832                       /usr/lib64/libgdbm.so.6.0.0
2019362:20210111:111436.090 7f2d3e78e000-7f2d3e78f000 r--p 0000e000 fd:00 3832                       /usr/lib64/libgdbm.so.6.0.0
2019362:20210111:111436.090 7f2d3e78f000-7f2d3e790000 rw-p 0000f000 fd:00 3832                       /usr/lib64/libgdbm.so.6.0.0
2019362:20210111:111436.090 7f2d3e790000-7f2d3e798000 r-xp 00000000 fd:00 20681                      /usr/lib64/libOpenIPMIutils.so.0.0.1
2019362:20210111:111436.090 7f2d3e798000-7f2d3e998000 ---p 00008000 fd:00 20681                      /usr/lib64/libOpenIPMIutils.so.0.0.1
2019362:20210111:111436.090 7f2d3e998000-7f2d3e999000 r--p 00008000 fd:00 20681                      /usr/lib64/libOpenIPMIutils.so.0.0.1
2019362:20210111:111436.091 7f2d3e999000-7f2d3e99a000 rw-p 00009000 fd:00 20681                      /usr/lib64/libOpenIPMIutils.so.0.0.1
2019362:20210111:111436.091 7f2d3e99a000-7f2d3e99d000 r-xp 00000000 fd:00 3429                       /usr/lib64/libcom_err.so.2.1
2019362:20210111:111436.091 7f2d3e99d000-7f2d3eb9c000 ---p 00003000 fd:00 3429                       /usr/lib64/libcom_err.so.2.1
2019362:20210111:111436.091 7f2d3eb9c000-7f2d3eb9d000 r--p 00002000 fd:00 3429                       /usr/lib64/libcom_err.so.2.1
2019362:20210111:111436.091 7f2d3eb9d000-7f2d3eb9e000 rw-p 00003000 fd:00 3429                       /usr/lib64/libcom_err.so.2.1
2019362:20210111:111436.091 7f2d3eb9e000-7f2d3ebb8000 r-xp 00000000 fd:00 7211                       /usr/lib64/libk5crypto.so.3.1
2019362:20210111:111436.092 7f2d3ebb8000-7f2d3edb7000 ---p 0001a000 fd:00 7211                       /usr/lib64/libk5crypto.so.3.1
2019362:20210111:111436.092 7f2d3edb7000-7f2d3edb9000 r--p 00019000 fd:00 7211                       /usr/lib64/libk5crypto.so.3.1
2019362:20210111:111436.092 7f2d3edb9000-7f2d3edba000 rw-p 0001b000 fd:00 7211                       /usr/lib64/libk5crypto.so.3.1
2019362:20210111:111436.092 7f2d3edba000-7f2d3ee99000 r-xp 00000000 fd:00 7217                       /usr/lib64/libkrb5.so.3.3
2019362:20210111:111436.092 7f2d3ee99000-7f2d3f099000 ---p 000df000 fd:00 7217                       /usr/lib64/libkrb5.so.3.3
2019362:20210111:111436.093 7f2d3f099000-7f2d3f0a8000 r--p 000df000 fd:00 7217                       /usr/lib64/libkrb5.so.3.3
2019362:20210111:111436.093 7f2d3f0a8000-7f2d3f0aa000 rw-p 000ee000 fd:00 7217                       /usr/lib64/libkrb5.so.3.3
2019362:20210111:111436.093 7f2d3f0aa000-7f2d3f0f7000 r-xp 00000000 fd:00 7207                       /usr/lib64/libgssapi_krb5.so.2.2
2019362:20210111:111436.093 7f2d3f0f7000-7f2d3f2f7000 ---p 0004d000 fd:00 7207                       /usr/lib64/libgssapi_krb5.so.2.2
2019362:20210111:111436.093 7f2d3f2f7000-7f2d3f2f9000 r--p 0004d000 fd:00 7207                       /usr/lib64/libgssapi_krb5.so.2.2
2019362:20210111:111436.093 7f2d3f2f9000-7f2d3f2fa000 rw-p 0004f000 fd:00 7207                       /usr/lib64/libgssapi_krb5.so.2.2
2019362:20210111:111436.094 7f2d3f2fa000-7f2d3f301000 r-xp 00000000 fd:00 2912                       /usr/lib64/librt-2.28.so
2019362:20210111:111436.094 7f2d3f301000-7f2d3f500000 ---p 00007000 fd:00 2912                       /usr/lib64/librt-2.28.so
2019362:20210111:111436.094 7f2d3f500000-7f2d3f501000 r--p 00006000 fd:00 2912                       /usr/lib64/librt-2.28.so
2019362:20210111:111436.094 7f2d3f501000-7f2d3f502000 rw-p 00007000 fd:00 2912                       /usr/lib64/librt-2.28.so
2019362:20210111:111436.094 7f2d3f502000-7f2d3f50b000 r-xp 00000000 fd:00 3962                       /usr/lib64/libltdl.so.7.3.1
2019362:20210111:111436.094 7f2d3f50b000-7f2d3f70a000 ---p 00009000 fd:00 3962                       /usr/lib64/libltdl.so.7.3.1
2019362:20210111:111436.095 7f2d3f70a000-7f2d3f70b000 r--p 00008000 fd:00 3962                       /usr/lib64/libltdl.so.7.3.1
2019362:20210111:111436.095 7f2d3f70b000-7f2d3f70c000 rw-p 00009000 fd:00 3962                       /usr/lib64/libltdl.so.7.3.1
2019362:20210111:111436.095 7f2d3f70c000-7f2d3f731000 r-xp 00000000 fd:00 3412                       /usr/lib64/liblzma.so.5.2.4
2019362:20210111:111436.095 7f2d3f731000-7f2d3f931000 ---p 00025000 fd:00 3412                       /usr/lib64/liblzma.so.5.2.4
2019362:20210111:111436.095 7f2d3f931000-7f2d3f932000 r--p 00025000 fd:00 3412                       /usr/lib64/liblzma.so.5.2.4
2019362:20210111:111436.096 7f2d3f932000-7f2d3f933000 rw-p 00000000 00:00 0 
2019362:20210111:111436.096 7f2d3f933000-7f2d3faec000 r-xp 00000000 fd:00 2894                       /usr/lib64/libc-2.28.so
2019362:20210111:111436.096 7f2d3faec000-7f2d3fcec000 ---p 001b9000 fd:00 2894                       /usr/lib64/libc-2.28.so
2019362:20210111:111436.096 7f2d3fcec000-7f2d3fcf0000 r--p 001b9000 fd:00 2894                       /usr/lib64/libc-2.28.so
2019362:20210111:111436.096 7f2d3fcf0000-7f2d3fcf2000 rw-p 001bd000 fd:00 2894                       /usr/lib64/libc-2.28.so
2019362:20210111:111436.097 7f2d3fcf2000-7f2d3fcf6000 rw-p 00000000 00:00 0 
2019362:20210111:111436.097 7f2d3fcf6000-7f2d3fd66000 r-xp 00000000 fd:00 3868                       /usr/lib64/libpcre.so.1.2.10
2019362:20210111:111436.097 7f2d3fd66000-7f2d3ff65000 ---p 00070000 fd:00 3868                       /usr/lib64/libpcre.so.1.2.10
2019362:20210111:111436.097 7f2d3ff65000-7f2d3ff66000 r--p 0006f000 fd:00 3868                       /usr/lib64/libpcre.so.1.2.10
2019362:20210111:111436.097 7f2d3ff66000-7f2d3ff67000 rw-p 00070000 fd:00 3868                       /usr/lib64/libpcre.so.1.2.10
2019362:20210111:111436.098 7f2d3ff67000-7f2d3ff7b000 r-xp 00000000 fd:00 2910                       /usr/lib64/libresolv-2.28.so
2019362:20210111:111436.098 7f2d3ff7b000-7f2d4017a000 ---p 00014000 fd:00 2910                       /usr/lib64/libresolv-2.28.so
2019362:20210111:111436.098 7f2d4017a000-7f2d4017b000 r--p 00013000 fd:00 2910                       /usr/lib64/libresolv-2.28.so
2019362:20210111:111436.098 7f2d4017b000-7f2d4017c000 rw-p 00014000 fd:00 2910                       /usr/lib64/libresolv-2.28.so
2019362:20210111:111436.098 7f2d4017c000-7f2d4017e000 rw-p 00000000 00:00 0 
2019362:20210111:111436.099 7f2d4017e000-7f2d40181000 r-xp 00000000 fd:00 2896                       /usr/lib64/libdl-2.28.so
2019362:20210111:111436.099 7f2d40181000-7f2d40380000 ---p 00003000 fd:00 2896                       /usr/lib64/libdl-2.28.so
2019362:20210111:111436.099 7f2d40380000-7f2d40381000 r--p 00002000 fd:00 2896                       /usr/lib64/libdl-2.28.so
2019362:20210111:111436.099 7f2d40381000-7f2d40382000 rw-p 00003000 fd:00 2896                       /usr/lib64/libdl-2.28.so
2019362:20210111:111436.099 7f2d40382000-7f2d40503000 r-xp 00000000 fd:00 2898                       /usr/lib64/libm-2.28.so
2019362:20210111:111436.099 7f2d40503000-7f2d40702000 ---p 00181000 fd:00 2898                       /usr/lib64/libm-2.28.so
2019362:20210111:111436.100 7f2d40702000-7f2d40703000 r--p 00180000 fd:00 2898                       /usr/lib64/libm-2.28.so
2019362:20210111:111436.100 7f2d40703000-7f2d40704000 rw-p 00181000 fd:00 2898                       /usr/lib64/libm-2.28.so
2019362:20210111:111436.100 7f2d40704000-7f2d4078e000 r-xp 00000000 fd:00 6950                       /usr/lib64/libcurl.so.4.5.0
2019362:20210111:111436.100 7f2d4078e000-7f2d4098e000 ---p 0008a000 fd:00 6950                       /usr/lib64/libcurl.so.4.5.0
2019362:20210111:111436.100 7f2d4098e000-7f2d40991000 r--p 0008a000 fd:00 6950                       /usr/lib64/libcurl.so.4.5.0
2019362:20210111:111436.101 7f2d40991000-7f2d40992000 rw-p 0008d000 fd:00 6950                       /usr/lib64/libcurl.so.4.5.0
2019362:20210111:111436.101 7f2d40992000-7f2d409a0000 r-xp 00000000 fd:00 6886                       /usr/lib64/liblber-2.4.so.2.10.9
2019362:20210111:111436.101 7f2d409a0000-7f2d40ba0000 ---p 0000e000 fd:00 6886                       /usr/lib64/liblber-2.4.so.2.10.9
2019362:20210111:111436.101 7f2d40ba0000-7f2d40ba1000 r--p 0000e000 fd:00 6886                       /usr/lib64/liblber-2.4.so.2.10.9
2019362:20210111:111436.101 7f2d40ba1000-7f2d40ba2000 rw-p 0000f000 fd:00 6886                       /usr/lib64/liblber-2.4.so.2.10.9
2019362:20210111:111436.102 7f2d40ba2000-7f2d40bed000 r-xp 00000000 fd:00 6888                       /usr/lib64/libldap-2.4.so.2.10.9
2019362:20210111:111436.102 7f2d40bed000-7f2d40dec000 ---p 0004b000 fd:00 6888                       /usr/lib64/libldap-2.4.so.2.10.9
2019362:20210111:111436.102 7f2d40dec000-7f2d40dee000 r--p 0004a000 fd:00 6888                       /usr/lib64/libldap-2.4.so.2.10.9
2019362:20210111:111436.102 7f2d40dee000-7f2d40def000 rw-p 0004c000 fd:00 6888                       /usr/lib64/libldap-2.4.so.2.10.9
2019362:20210111:111436.102 7f2d40def000-7f2d4109f000 r-xp 00000000 fd:00 9543                       /usr/lib64/libcrypto.so.1.1.1c
2019362:20210111:111436.103 7f2d4109f000-7f2d4129f000 ---p 002b0000 fd:00 9543                       /usr/lib64/libcrypto.so.1.1.1c
2019362:20210111:111436.103 7f2d4129f000-7f2d412ca000 r--p 002b0000 fd:00 9543                       /usr/lib64/libcrypto.so.1.1.1c
2019362:20210111:111436.103 7f2d412ca000-7f2d412ce000 rw-p 002db000 fd:00 9543                       /usr/lib64/libcrypto.so.1.1.1c
2019362:20210111:111436.103 7f2d412ce000-7f2d412d2000 rw-p 00000000 00:00 0 
2019362:20210111:111436.103 7f2d412d2000-7f2d41358000 r-xp 00000000 fd:00 9545                       /usr/lib64/libssl.so.1.1.1c
2019362:20210111:111436.103 7f2d41358000-7f2d41558000 ---p 00086000 fd:00 9545                       /usr/lib64/libssl.so.1.1.1c
2019362:20210111:111436.104 7f2d41558000-7f2d41561000 r--p 00086000 fd:00 9545                       /usr/lib64/libssl.so.1.1.1c
2019362:20210111:111436.104 7f2d41561000-7f2d41565000 rw-p 0008f000 fd:00 9545                       /usr/lib64/libssl.so.1.1.1c
2019362:20210111:111436.104 7f2d41565000-7f2d41566000 rw-p 00000000 00:00 0 
2019362:20210111:111436.104 7f2d41566000-7f2d415bc000 r-xp 00000000 fd:00 10441                      /usr/lib64/libevent-2.1.so.6.0.2
2019362:20210111:111436.104 7f2d415bc000-7f2d417bc000 ---p 00056000 fd:00 10441                      /usr/lib64/libevent-2.1.so.6.0.2
2019362:20210111:111436.104 7f2d417bc000-7f2d417be000 r--p 00056000 fd:00 10441                      /usr/lib64/libevent-2.1.so.6.0.2
2019362:20210111:111436.105 7f2d417be000-7f2d417bf000 rw-p 00058000 fd:00 10441                      /usr/lib64/libevent-2.1.so.6.0.2
2019362:20210111:111436.105 7f2d417bf000-7f2d417da000 r-xp 00000000 fd:00 2908                       /usr/lib64/libpthread-2.28.so
2019362:20210111:111436.105 7f2d417da000-7f2d419d9000 ---p 0001b000 fd:00 2908                       /usr/lib64/libpthread-2.28.so
2019362:20210111:111436.105 7f2d419d9000-7f2d419da000 r--p 0001a000 fd:00 2908                       /usr/lib64/libpthread-2.28.so
2019362:20210111:111436.105 7f2d419da000-7f2d419db000 rw-p 0001b000 fd:00 2908                       /usr/lib64/libpthread-2.28.so
2019362:20210111:111436.106 7f2d419db000-7f2d419df000 rw-p 00000000 00:00 0 
2019362:20210111:111436.106 7f2d419df000-7f2d419f5000 r-xp 00000000 fd:00 3404                       /usr/lib64/libz.so.1.2.11
2019362:20210111:111436.106 7f2d419f5000-7f2d41bf4000 ---p 00016000 fd:00 3404                       /usr/lib64/libz.so.1.2.11
2019362:20210111:111436.106 7f2d41bf4000-7f2d41bf5000 r--p 00015000 fd:00 3404                       /usr/lib64/libz.so.1.2.11
2019362:20210111:111436.106 7f2d41bf5000-7f2d41bf6000 rw-p 00000000 00:00 0 
2019362:20210111:111436.106 7f2d41bf6000-7f2d41bfd000 r-xp 00000000 fd:00 20675                      /usr/lib64/libOpenIPMIposix.so.0.0.1
2019362:20210111:111436.107 7f2d41bfd000-7f2d41dfc000 ---p 00007000 fd:00 20675                      /usr/lib64/libOpenIPMIposix.so.0.0.1
2019362:20210111:111436.107 7f2d41dfc000-7f2d41dfd000 r--p 00006000 fd:00 20675                      /usr/lib64/libOpenIPMIposix.so.0.0.1
2019362:20210111:111436.107 7f2d41dfd000-7f2d41dfe000 rw-p 00007000 fd:00 20675                      /usr/lib64/libOpenIPMIposix.so.0.0.1
2019362:20210111:111436.107 7f2d41dfe000-7f2d41ef1000 r-xp 00000000 fd:00 20669                      /usr/lib64/libOpenIPMI.so.0.0.5
2019362:20210111:111436.107 7f2d41ef1000-7f2d420f1000 ---p 000f3000 fd:00 20669                      /usr/lib64/libOpenIPMI.so.0.0.5
2019362:20210111:111436.108 7f2d420f1000-7f2d42109000 r--p 000f3000 fd:00 20669                      /usr/lib64/libOpenIPMI.so.0.0.5
2019362:20210111:111436.108 7f2d42109000-7f2d4210e000 rw-p 0010b000 fd:00 20669                      /usr/lib64/libOpenIPMI.so.0.0.5
2019362:20210111:111436.108 7f2d4210e000-7f2d42112000 rw-p 00000000 00:00 0 
2019362:20210111:111436.108 7f2d42112000-7f2d42199000 r-xp 00000000 fd:00 6877                       /usr/lib64/libssh.so.4.8.1
2019362:20210111:111436.108 7f2d42199000-7f2d42399000 ---p 00087000 fd:00 6877                       /usr/lib64/libssh.so.4.8.1
2019362:20210111:111436.108 7f2d42399000-7f2d4239b000 r--p 00087000 fd:00 6877                       /usr/lib64/libssh.so.4.8.1
2019362:20210111:111436.109 7f2d4239b000-7f2d4239d000 rw-p 00089000 fd:00 6877                       /usr/lib64/libssh.so.4.8.1
2019362:20210111:111436.109 7f2d4239d000-7f2d4247c000 r-xp 00000000 fd:00 2847                       /usr/lib64/libnetsnmp.so.35.0.0
2019362:20210111:111436.109 7f2d4247c000-7f2d4267c000 ---p 000df000 fd:00 2847                       /usr/lib64/libnetsnmp.so.35.0.0
2019362:20210111:111436.109 7f2d4267c000-7f2d4267f000 r--p 000df000 fd:00 2847                       /usr/lib64/libnetsnmp.so.35.0.0
2019362:20210111:111436.109 7f2d4267f000-7f2d42682000 rw-p 000e2000 fd:00 2847                       /usr/lib64/libnetsnmp.so.35.0.0
2019362:20210111:111436.110 7f2d42682000-7f2d42748000 rw-p 00000000 00:00 0 
2019362:20210111:111436.110 7f2d42748000-7f2d427ad000 r-xp 00000000 fd:00 20702                      /usr/lib64/libodbc.so.2.0.0
2019362:20210111:111436.110 7f2d427ad000-7f2d429ad000 ---p 00065000 fd:00 20702                      /usr/lib64/libodbc.so.2.0.0
2019362:20210111:111436.110 7f2d429ad000-7f2d429ae000 r--p 00065000 fd:00 20702                      /usr/lib64/libodbc.so.2.0.0
2019362:20210111:111436.110 7f2d429ae000-7f2d429b5000 rw-p 00066000 fd:00 20702                      /usr/lib64/libodbc.so.2.0.0
2019362:20210111:111436.111 7f2d429b5000-7f2d429b9000 rw-p 00000000 00:00 0 
2019362:20210111:111436.111 7f2d429b9000-7f2d42b16000 r-xp 00000000 fd:00 3417                       /usr/lib64/libxml2.so.2.9.7
2019362:20210111:111436.111 7f2d42b16000-7f2d42d15000 ---p 0015d000 fd:00 3417                       /usr/lib64/libxml2.so.2.9.7
2019362:20210111:111436.111 7f2d42d15000-7f2d42d1e000 r--p 0015c000 fd:00 3417                       /usr/lib64/libxml2.so.2.9.7
2019362:20210111:111436.111 7f2d42d1e000-7f2d42d1f000 rw-p 00165000 fd:00 3417                       /usr/lib64/libxml2.so.2.9.7
2019362:20210111:111436.111 7f2d42d1f000-7f2d42d21000 rw-p 00000000 00:00 0 
2019362:20210111:111436.112 7f2d42d21000-7f2d42e2f000 r-xp 00000000 fd:00 3706                       /usr/lib64/libsqlite3.so.0.8.6
2019362:20210111:111436.112 7f2d42e2f000-7f2d4302e000 ---p 0010e000 fd:00 3706                       /usr/lib64/libsqlite3.so.0.8.6
2019362:20210111:111436.112 7f2d4302e000-7f2d43032000 r--p 0010d000 fd:00 3706                       /usr/lib64/libsqlite3.so.0.8.6
2019362:20210111:111436.112 7f2d43032000-7f2d43035000 rw-p 00111000 fd:00 3706                       /usr/lib64/libsqlite3.so.0.8.6
2019362:20210111:111436.112 7f2d43035000-7f2d4305e000 r-xp 00000000 fd:00 2823                       /usr/lib64/ld-2.28.so
2019362:20210111:111436.113 7f2d43230000-7f2d43240000 rw-s 00000000 00:05 32803                      /SYSV00000000 (deleted)
2019362:20210111:111436.113 7f2d43240000-7f2d43254000 rw-p 00000000 00:00 0 
2019362:20210111:111436.113 7f2d4325c000-7f2d4325d000 rw-s 00000000 00:05 32799                      /SYSV00000000 (deleted)
2019362:20210111:111436.113 7f2d4325d000-7f2d4325e000 r--p 00028000 fd:00 2823                       /usr/lib64/ld-2.28.so
2019362:20210111:111436.113 7f2d4325e000-7f2d4325f000 rw-p 00029000 fd:00 2823                       /usr/lib64/ld-2.28.so
2019362:20210111:111436.113 7f2d4325f000-7f2d43260000 rw-p 00000000 00:00 0 
2019362:20210111:111436.114 7ffd9631b000-7ffd9633c000 rw-p 00000000 00:00 0                          [stack]
2019362:20210111:111436.114 7ffd963f1000-7ffd963f4000 r--p 00000000 00:00 0                          [vvar]
2019362:20210111:111436.114 7ffd963f4000-7ffd963f6000 r-xp 00000000 00:00 0                          [vdso]
2019362:20210111:111436.114 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
2019362:20210111:111436.114 ================================
2019362:20210111:111436.114 Please consider attaching a disassembly listing to your bug report.
2019362:20210111:111436.115 This listing can be produced with, e.g., objdump -DSswx zabbix_proxy.
2019362:20210111:111436.115 ================================
2019364:20210111:111436.116 cannot read preprocessing service request
2019363:20210111:111436.118 cannot read preprocessing service request
2019365:20210111:111436.119 cannot read preprocessing service request
2019153:20210111:111436.119 One child process died (PID:2019364,exitcode/signal:1). Exiting ...
zabbix_proxy [2019153]: Error waiting for process with PID 2019364: [10] No child processes
2019153:20210111:111436.179 syncing history data...
2019153:20210111:111436.184 syncing history data... 100.000000%
2019153:20210111:111436.184 syncing history data done
2019153:20210111:111436.186 Zabbix Proxy stopped. Zabbix 5.2.2 (revision 84ebc7b59d).

See dump.

Expected:
Value in item history.



 Comments   
Comment by Edgars Melveris [ 2021 Jan 11 ]

Thanks for the bug report.
I was able to reproduce this problem
It happens only when the item actually becomes unsupported, it's enough to just provide an incorrect log file path.

Comment by Edgars Melveris [ 2021 Jan 11 ]

Seems to be related to storing data in the log table. I could reproduce the error with passive check, incorrect item key and data type set to "log".

Comment by Andrejs Kozlovs [ 2021 Jan 15 ]

Available in:





[ZBX-18694] Zabbix proxy poller\unreachable poller crash in zbx_tls_close Created: 2020 Nov 24  Updated: 2024 Apr 10  Resolved: 2020 Dec 03

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.0.26, 5.0.4
Fix Version/s: 4.0.28rc1, 5.0.7rc1, 5.2.3rc1, 5.4.0alpha1, 5.4 (plan)

Type: Problem report Priority: Trivial
Reporter: Elina Kuzyutkina (Inactive) Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 0
Labels: poller, proxy, psk
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 7.8


Attachments: File ZBX-18694.diff     Text File proxy_crash.txt    
Issue Links:
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 70 (Nov 2020), Sprint 71 (Dec 2020)
Story Points: 0.125

 Description   

1. PSK encryption is used in Zabbix agent<->proxy communication
2. There are autoregistration actions defined, but PSK for autoregstration isn't allowd\defined
3. Delete host from web UI (that has manually configured PSK)

the problem does not appear on every removed host, but on a regular basis. The more hosts are removed, the more likely you are to catch the problem



 Comments   
Comment by Vladislavs Sokurenko [ 2020 Dec 03 ]

Fixed in:

  • pre-4.0.28rc1 222e854f205
  • pre-5.0.7rc1 3d07a09764b
  • pre-5.2.3rc1 b1896e40814
  • pre-5.4.0alpha1 (master) 6f09fddaf83




[ZBX-18631] Zabbix Proxy Created: 2020 Nov 09  Updated: 2020 Nov 11  Resolved: 2020 Nov 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.0.26
Fix Version/s: 5.2.0

Type: Documentation task Priority: Trivial
Reporter: elias abou hamad Assignee: Zabbix Support Team
Resolution: Won't fix Votes: 0
Labels: Server, proxy, sites
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

centos 7 / 2.8 GHz 32 core / 128 GB Ram / 2 Tb SSD



 Description   

Hello.

we have already installed zabbix server and zabbix dabatase server in site " 1 " .zabbix server is also connected in passive mode to zabbix proxy that is installed on site "2".

in our case we need to install other zabbix server with database in site 2 in order to connect it to same zabbix proxy .
is it feasible to have two zabbix sevrers connected to one (same ) proxy servers in passive mode ?

regards
Elias



 Comments   
Comment by Aleksandrs Pahomovs [ 2020 Nov 11 ]

Please be advised that this section of the tracker is for bug reports only. The case you have submitted can not be qualified as one, so please reach out to [email protected] for commercial support or consultancy services. Alternatively, you can also use our IRC channel or community forum (https://www.zabbix.com/forum) for assistance. With that said, we are closing this ticket. Thank you for understanding. 





[ZBX-18524] zabbix proxy preprocessing not performing as expected Created: 2020 Oct 20  Updated: 2024 Apr 10  Resolved: 2021 Jun 21

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 5.0.4
Fix Version/s: 5.0.13rc1, 5.2.7rc1, 5.4.1rc1, 6.0.0alpha1, 6.0 (plan)

Type: Problem report Priority: Trivial
Reporter: patrik uytterhoeven Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

rhel 7
proxy 5.0.4 in Active mode
with Mariadb 5.5.65
2vcpu
4G ram


Attachments: PNG File Latest_data.png     File ZBX-18524-2-5.2.diff     File ZBX-18524.diff     PNG File preprcocessors.png     File zabbix-proxy-mysql-5.2.6-0.ZBX_18524.el8.x86_64.rpm     File zabbix-proxy-pgsql-5.2.6-0.ZBX_18524.el8.x86_64.rpm     File zabbix-proxy-sqlite3-5.2.6-0.ZBX_18524.el8.x86_64.rpm    
Issue Links:
Duplicate
Sub-task
Team: Team A
Team: Team A
Sprint: Sprint 76 (May 2021), Sprint 77 (Jun 2021)
Story Points: 1

 Description   

as can be seen there are almost 6K values is the preprocessing queue 

however the workers for preprocessing are only 30% busy 

i would have expected them to be 100% busy 

 

i had the standard StartPreprocessors=3 increased them to 20  as test but couldnt see any difference

 



 Comments   
Comment by Alexey Pustovalov [ 2020 Oct 20 ]

Do you monitor the host through Zabbix proxy? or it is not linked to any proxy and under monitoring by Zabbix server?

Comment by patrik uytterhoeven [ 2020 Oct 20 ]

they are monitored over the proxy

 

FYI 

i just ran a 

watch 'ps -ef | grep "preprocessing manager"'

 

and i can see the queue getting flushed and filled up again constantly 

it looks like the cache is getting filled up and then flushed in big batches showing in zabbix that the queue having 4k values but this seems not true as those are constantly new values.

 

confusing metric in zabbix or a performance issue ?

 

Comment by Vladislavs Sokurenko [ 2020 Oct 26 ]

Please try this command:

zabbix_proxy -R diaginfo

It might be that there are too many values for single item and single item cannot be processed in parallel

Comment by patrik uytterhoeven [ 2020 Oct 26 ]

10610:20201026:135810.030 == history cache diagnostic information ==
10610:20201026:135810.030 items:55 values:55 time:0.000065
10610:20201026:135810.030 memory.data:
10610:20201026:135810.030 size: free:16773136 used:2584
10610:20201026:135810.030 chunks: free:1 used:70 min:16773136 max:16773136
10610:20201026:135810.030 buckets:
10610:20201026:135810.030 256+:1
10610:20201026:135810.030 memory.index:
10610:20201026:135810.030 size: free:3947560 used:245392
10610:20201026:135810.030 chunks: free:2 used:59 min:554160 max:3393400
10610:20201026:135810.030 buckets:
10610:20201026:135810.030 256+:2
10610:20201026:135810.030 top.values:
10610:20201026:135810.030 itemid:2412605 values:1
.....

10610:20201026:135810.031 itemid:2415141 values:1
10610:20201026:135810.031 ==
10610:20201026:135810.031 == preprocessing diagnostic information ==
10610:20201026:135810.031 values:0 preproc.values:0 time:0.000547
10610:20201026:135810.031 top.values:
10610:20201026:135810.031 ==

Comment by Arturs Lontons [ 2020 Nov 05 ]

Would it be possible to increase the debug log for preprocessing manager to 4 for a brief period so we can take a look at the output?

Comment by patrik uytterhoeven [ 2020 Nov 05 ]

hi, log file can be downloaded here 

 worker logs

https://patrik.stackstorage.com/s/8RmpntvH8UxoGkin

 

 

manager logs

https://patrik.stackstorage.com/s/KYB2BVTEMzA2xQOT

Comment by Arturs Lontons [ 2020 Nov 30 ]

Sorry for the long delay from our side - it seems like the logs are no longer available. Could you re-attach them?

Comment by patrik uytterhoeven [ 2020 Dec 01 ]

manager logs

https://patrik.stackstorage.com/s/zSH4M6RtwM35s2k2

 

worker logs

https://patrik.stackstorage.com/s/wKI7D9bHXyNoCSay

 

Comment by Arturs Lontons [ 2020 Dec 09 ]

Thanks for the logs! I was able to grab them this time.

After discussing the results with the developers, could we clarify if the diaginfo was taken when the queue was high? We are currently suspecting that this could be caused by a single spamming item. Let's double check and take the diaginfo when the preprocessing queue has peaked:
zabbix_proxy -R diaginfo

Regards,
Arturs.

Comment by patrik uytterhoeven [ 2020 Dec 15 ]

@Arturs 

this is a constant issue its always peaking

 

 

 
1536:20201215:084524.925 == history cache diagnostic information ==
 1536:20201215:084524.925 items:208 values:208 time:0.000766
 1536:20201215:084524.925 memory.data:
 1536:20201215:084524.925 size: free:16765192 used:8320
 1536:20201215:084524.925 chunks: free:1 used:208 min:16765192 max:16765192
 1536:20201215:084524.925 buckets:
 1536:20201215:084524.925 256+:1
 1536:20201215:084524.925 memory.index:
 1536:20201215:084524.925 size: free:2953544 used:1236960
 1536:20201215:084524.925 chunks: free:2 used:212 min:141016 max:2812528
 1536:20201215:084524.925 buckets:
 1536:20201215:084524.925 256+:2
 1536:20201215:084524.925 top.values:
 1536:20201215:084524.925 itemid:2968784 values:1
 1536:20201215:084524.925 itemid:2968709 values:1
 1536:20201215:084524.925 itemid:2968675 values:1
 1536:20201215:084524.925 itemid:2968662 values:1
 1536:20201215:084524.925 itemid:2968729 values:1
 1536:20201215:084524.925 itemid:2968696 values:1
 1536:20201215:084524.925 itemid:2968754 values:1
 1536:20201215:084524.925 itemid:2968772 values:1
 1536:20201215:084524.925 itemid:2968699 values:1
 1536:20201215:084524.925 itemid:2968731 values:1
 1536:20201215:084524.925 itemid:2968803 values:1
 1536:20201215:084524.925 itemid:2968642 values:1
 1536:20201215:084524.925 itemid:2968665 values:1
 1536:20201215:084524.925 itemid:2968707 values:1
 1536:20201215:084524.925 itemid:2968649 values:1
 1536:20201215:084524.925 itemid:3129979 values:1
 1536:20201215:084524.925 itemid:2968796 values:1
 1536:20201215:084524.925 itemid:2968704 values:1
 1536:20201215:084524.925 itemid:3570704 values:1
 1536:20201215:084524.925 itemid:2968737 values:1
 1536:20201215:084524.926 itemid:2968669 values:1
 1536:20201215:084524.926 itemid:2968724 values:1
 1536:20201215:084524.926 itemid:2968673 values:1
 1536:20201215:084524.926 itemid:2969185 values:1
 1536:20201215:084524.926 itemid:3043295 values:1
 1536:20201215:084524.926 ==
 1536:20201215:084524.926 == preprocessing diagnostic information ==
 1536:20201215:084524.926 values:2899 preproc.values:1904 time:0.004294
 1536:20201215:084524.926 top.values:
 1536:20201215:084524.926 itemid:2969246 values:1 steps:0
 1536:20201215:084524.926 itemid:2969247 values:1 steps:0
 1536:20201215:084524.926 itemid:2969248 values:1 steps:0
 1536:20201215:084524.926 itemid:2969249 values:1 steps:0
 1536:20201215:084524.926 itemid:3755662 values:1 steps:0
 1536:20201215:084524.926 itemid:3755644 values:1 steps:1
 1536:20201215:084524.926 itemid:3755663 values:1 steps:1
 1536:20201215:084524.926 itemid:2969253 values:1 steps:1
 1536:20201215:084524.926 itemid:2969254 values:1 steps:1
 1536:20201215:084524.926 itemid:2969255 values:1 steps:1
 1536:20201215:084524.926 itemid:2969256 values:1 steps:1
 1536:20201215:084524.926 itemid:2969257 values:1 steps:1
 1536:20201215:084524.926 itemid:2969258 values:1 steps:1
 1536:20201215:084524.926 itemid:2969259 values:1 steps:1
 1536:20201215:084524.926 itemid:2969260 values:1 steps:1
 1536:20201215:084524.926 itemid:2969261 values:1 steps:1
 1536:20201215:084524.926 itemid:2969262 values:1 steps:1
 1536:20201215:084524.926 itemid:3043301 values:1 steps:1
 1536:20201215:084524.926 itemid:2969263 values:1 steps:1
 1536:20201215:084524.926 itemid:3042881 values:1 steps:1
 1536:20201215:084524.926 itemid:3043302 values:1 steps:1
 1536:20201215:084524.926 itemid:2969264 values:1 steps:1
 1536:20201215:084524.926 itemid:2969265 values:1 steps:1
 1536:20201215:084524.926 itemid:2969138 values:1 steps:1
 1536:20201215:084524.926 itemid:2969267 values:1 steps:1
 1536:20201215:084524.926 ==
 1536:20201215:084524.926 == locks diagnostic information ==
 1536:20201215:084524.926 locks:
 1536:20201215:084524.926 ZBX_MUTEX_LOG:0x7f436a261000
 1536:20201215:084524.926 ZBX_MUTEX_CACHE:0x7f436a261028
 1536:20201215:084524.926 ZBX_MUTEX_TRENDS:0x7f436a261050
 1536:20201215:084524.926 ZBX_MUTEX_CACHE_IDS:0x7f436a261078
 1536:20201215:084524.926 ZBX_MUTEX_SELFMON:0x7f436a2610a0
 1536:20201215:084524.926 ZBX_MUTEX_CPUSTATS:0x7f436a2610c8
 1536:20201215:084524.926 ZBX_MUTEX_DISKSTATS:0x7f436a2610f0
 1536:20201215:084524.926 ZBX_MUTEX_ITSERVICES:0x7f436a261118
 1536:20201215:084524.926 ZBX_MUTEX_VALUECACHE:0x7f436a261140
 1536:20201215:084524.926 ZBX_MUTEX_VMWARE:0x7f436a261168
 1536:20201215:084524.926 ZBX_MUTEX_SQLITE3:0x7f436a261190
 1536:20201215:084524.926 ZBX_MUTEX_PROCSTAT:0x7f436a2611b8
 1536:20201215:084524.926 ZBX_MUTEX_PROXY_HISTORY:0x7f436a2611e0
 1536:20201215:084524.926 ZBX_MUTEX_KSTAT:0x7f436a261208
 1536:20201215:084524.926 ZBX_RWLOCK_CONFIG:0x7f436a261230
 1536:20201215:084524.926 ==

 

Comment by patrik uytterhoeven [ 2020 Dec 15 ]

Comment by patrik uytterhoeven [ 2020 Dec 15 ]

i dont think anything is spamming

our items or not being checked more then 1 time per minute

we do have many hosts and we have many templates using preprocessing

460 hosts on this proxy

Comment by Vladislavs Sokurenko [ 2020 Dec 15 ]

Can you tell more about those items please, do they use throttling, delta calculations or are there many dependent items ?

Comment by patrik uytterhoeven [ 2020 Dec 15 ]

most come from the official zabbix templates

its a mix but we use mostly

  • dependent items
  • simple change
  • regex
  • json path

 

Comment by Vladislavs Sokurenko [ 2020 Dec 15 ]

First one of workers need to calculate master item value and only then dependent items can be processed in parallel, could it be what you are experiencing ? Could extend diaginfo debug request and add more information about preprocessing queue to get the full picture, but it would require patching or waiting for next release.

Comment by patrik uytterhoeven [ 2020 Dec 15 ]

ok we could do that

its not so urgent

Comment by patrik uytterhoeven [ 2021 Feb 02 ]

hi @vso 

where you able to add more diag info in the latest release ?

Comment by patrik uytterhoeven [ 2021 May 04 ]

what is PR-3747 

as i cant see it ... 

is there any status update ? Edgar Akhmetshin

Comment by Edgar Akhmetshin [ 2021 May 06 ]

Hello Patrik,

You can try patch prepared for 5.2 version ZBX-18524.diff with extended diaginfo information.

zabbix-proxy-mysql-5.2.6-0.ZBX_18524.el8.x86_64.rpm
zabbix-proxy-pgsql-5.2.6-0.ZBX_18524.el8.x86_64.rpm
zabbix-proxy-sqlite3-5.2.6-0.ZBX_18524.el8.x86_64.rpm

Regards,
Edgar

Comment by patrik uytterhoeven [ 2021 May 06 ]

thx

but still on 5.0 moving to 5.4 after the release

guess we will wait a few more weeks 

Comment by Vladislavs Sokurenko [ 2021 May 06 ]

and i can see the queue getting flushed and filled up again constantly

it looks like the cache is getting filled up and then flushed in big batches showing in zabbix that the queue having 4k values but this seems not true as those are constantly new values.

confusing metric in zabbix or a performance issue ?

Queue in preprocessing manager include items with and without preprocessing, items that are not using preprocessing can be queued after items that use preprocessing and thus it can happen that queue fills up until preprocessing for older value is done.

Diagnostic information can be retrieved to see how many values are queued with preprocessing, for example:

== preprocessing diagnostic information ==
 values:11226331 preproc.values:4089024 time:2.616004

values - all values
preproc.values - values with preprocessing

Comment by Vladislavs Sokurenko [ 2021 May 26 ]

Implemented in:

Documentation updated:





[ZBX-17940] API host.create does not validate proxy_hostid field Created: 2020 Jun 19  Updated: 2023 Oct 11

Status: Confirmed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 5.0.2rc1, 5.2.0alpha1, 6.0.22
Fix Version/s: None

Type: Problem report Priority: Critical
Reporter: Mārtiņš Tālbergs (Inactive) Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File skrew.png    
Issue Links:
Causes
Duplicate

 Description   

When creating host with correct API parameters except for non-existant proxyid in "proxy_hostid" field - technical SQL constraint error is returned.

And one more case below in comments too.

Expected:
User friendly error.



 Comments   
Comment by Oleksii Zagorskyi [ 2023 Oct 11 ]

Zabbix 6.0.23rc1  (checked 5.0.37rc1 too - the same behavior, just API call also needs interfaces data)

Just showing that I have such hostid=10084

mysql> SELECT host FROM hosts where hostid=10084;
+---------------+
| host          |
+---------------+
| Zabbix server |
+---------------+

API host.create all. Note, for proxy_hostid I give ID of the existing host:

{"host":"wrong-proxy-given","groups":[{"groupid":"4"}],"proxy_hostid":"10084"}

Result: success, "hostids": ["10622"] created.
While it should fail !!!

Then in frontend, an error on top of the page:

Undefined offset: 10084 [zabbix.php:22 → require_once() → ZBase->run() → ZBase->processRequest() → ZBase->processResponseFinal() → CView->getOutput() → include() in app/views/configuration.host.list.php:426]
Trying to access array offset on value of type null [zabbix.php:22 → require_once() → ZBase->run() → ZBase->processRequest() → ZBase->processResponseFinal() → CView->getOutput() → include() in app/views/configuration.host.list.php:426]

and the view is screwed up:

If give an not existing hostID=99999, this API/SQL error is returned, which also should not happen as well:

        "code": -32500,
        "message": "Application error.",
        "data": "SQL statement execution has failed \"INSERT INTO hosts (hostid,host,proxy_hostid,name,description) VALUES ('10621','wrong-proxy-given','99999','wrong-proxy-given','')\".",




[ZBX-17819] doublon hostname with auto registration from proxy Created: 2020 May 26  Updated: 2020 Jun 02  Resolved: 2020 Jun 02

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 4.4.8
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Yohann Assignee: Kristians Pavars
Resolution: Commercial support required Votes: 0
Labels: activeproxy, hostname, proxy, same
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File Annotation 2020-05-28 225142.jpg    

 Description   

zabbix server 4.4.8

zabbix frontend 4.4.8

 

2 zabbix proxy active server

proxy 1: computer 1 with AD name

proxy 2: computer 2 with AD name

 

with automatic registration in active mode, computers 1 and 2 have the same host name. but the problem is that computers 1 and 2 have the same proxy server ... computer 1 is must be with proxy 1 and computer 2 is with proxy 2, and that is not the case.



 Comments   
Comment by Kristians Pavars [ 2020 May 27 ]

Hi Yohann,

 

Zabbix server is distinguishing different agents by the Host name that is specified in the agent config (Hostname or HostnameItem). It must be unique as it identifies this host in the frontend as well. If several hosts have the same Hostname, then all of their data will fall under the same host.

In the case of proxy it also acts as a server and collects the data for these agents to pass to zabbix server, if the host name is the same for several items, they will be aggregated under one host.

 

So this is not a zabbix bug but intended functionality.

 

As a workaround you can specify HostnameItem with system.run to build the hostname programmaticaly, for example:

HostnameItem=system.run[ip link show enp0s3 | grep 'link/ether\s' | awk '{print $2}' | tr -d ":"]

This would add mac address of enp0s3 interface to hostname.

 

You can also use fqdn or some other identifier in the HostnameItem that is unique for the host.

HostnameItem=system.run[hostname -f]

 

 

Another option is to have another Zabbix server which will monitor the host with the same name.

 

Regards,

Kristiāns Pavārs

 

Comment by Yohann [ 2020 May 28 ]

Thank you Kristiāns Pavārs,

 

When i trie to add :

HostnameItem=system.run[hostname -f]

 

in my agent's conf file, for windows, the service don't start.

 ServerActive=Proxy_Server_IP

      1. Option: Hostname
  1. Unique, case sensitive hostname.
  2. Required for active checks and must match hostname as configured on the server.
  3. Value is acquired from HostnameItem if undefined.
    #
  4. Mandatory: no
  5. Default:
  6. Hostname=
  1. Hostname=
      1. Option: HostnameItem
  1. Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
  2. Does not support UserParameters or aliases.
    #
  3. Mandatory: no
  4. Default:
    HostnameItem=system.run[hostname -f]
      1. Option: HostMetadata
  1. Optional parameter that defines host metadata.
  2. Host metadata is used at host auto-registration process.
  3. An agent will issue an error and not start if the value is over limit of 255 characters.
  4. If not defined, value will be acquired from HostMetadataItem.
    #
  5. Mandatory: no
  6. Range: 0-255 characters
  7. Default:
  8. HostMetadata=
      1. Option: HostMetadataItem
  1. Optional parameter that defines an item used for getting host metadata.
  2. Host metadata is used at host auto-registration process.
  3. During an auto-registration request an agent will log a warning message if
  4. the value returned by specified item is over limit of 255 characters.
  5. This option is only used when HostMetadata is not defined.
    #
  6. Mandatory: no
  7. Default:
    HostMetadataItem=system.uname
      1. Option: HostInterface
  1. Optional parameter that defines host interface.
  2. Host interface is used at host auto-registration process.
  3. An agent will issue an error and not start if the value is over limit of 255 characters.
  4. If not defined, value will be acquired from HostInterfaceItem.
    #
  5. Mandatory: no
  6. Range: 0-255 characters
  7. Default:
  8. HostInterface=
      1. Option: HostInterfaceItem
  1. Optional parameter that defines an item used for getting host interface.
  2. Host interface is used at host auto-registration process.
  3. During an auto-registration request an agent will log a warning message if
  4. the value returned by specified item is over limit of 255 characters.
  5. This option is only used when HostInterface is not defined.
    #
  6. Mandatory: no
  7. Default:
  8. HostInterfaceItem=

Thank's a lot

 

Comment by Kristians Pavars [ 2020 Jun 01 ]

Hi Yohann,

 

system.run[] key will execute a remote command on the host. In this case hostname -f is a Linux command, for Windows hosts you need to use Windows commands which will be something like:

system.run[HOSTNAME.EXE]

you can get the domain with:

wmic computersystem get domain

Or you can construct your own batch script which will give you the desired output and then use it in system.run[<script>] key. Since this is a public bug tracker and this is not a bug, please consider upgrading to commercial support.

 

Please be advised that this section of the tracker is for bug reports only. The case you have submitted can not be qualified as one, so please reach out to [email protected] for commercial support or consultancy services. Alternatively, you can also use our IRC channel or community forum (https://www.zabbix.com/forum) for assistance. With that said, we are closing this ticket. Thank you for understanding. 

 





[ZBX-17548] Don't store history in Proxy DB If History storage period is 0 Created: 2020 Apr 03  Updated: 2024 Apr 10  Resolved: 2020 Jun 04

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.2.8, 4.4.7
Fix Version/s: 5.2.0alpha1, 5.2 (plan)

Type: Problem report Priority: Trivial
Reporter: Dmitrijs Lamberts Assignee: Andris Zeila
Resolution: Fixed Votes: 11
Labels: preprocessing, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sub-task
Team: Team A
Team: Team A
Sprint: Sprint 63 (Apr 2020), Sprint 64 (May 2020), Sprint 65 (Jun 2020)
Story Points: 1

 Description   

Time ago we added a possibility to specify History storage period to 0 on master items. That normally return huge amount of data, which is processed by dependent items and after that is not needed at all. So dropping it after pre processing saved a lot of space in our database.

If there is such Master item monitored by Proxy, which is returning huge amount of data, despite the fact that History storage period is 0, that value is written to proxy_history and sent to Zabbix server. Which first of all grows the size of proxy database without any proper reason, and most important - heavily utilizes data sender.

There is actually no good reason to send this data to Zabbix server, because only way where this data is utilized is preprocessing, but since 4.2 preprocessing is done on Proxy side.

  • Dependent items must be on same host as master item, so those will also be monitored by proxy.
  • Same applies for Low level discovery
  • Triggers are not calculated in case of storage period 0

Only thing that suffers is Inventory collection. Inventory is populated even if History storage period is 0. But there is no good reason to populate single inventory field from master item that return huge amount of data. Instead that should be done through dependent items.



 Comments   
Comment by Glebs Ivanovskis [ 2020 Apr 03 ]

There is ZBXNEXT-5777 which may require more sophisticated logic.

Comment by Oleksii Zagorskyi [ 2020 Apr 03 ]

But ... LLD is processed by server only, so it should be send to server anyway.

wiper: Yes, but if LLD is based on dependent item, then we don't need the master item on server.

Comment by Andris Zeila [ 2020 Jun 01 ]

Released ZBX-17548 in:

  • pre-5.2.0alpha1 180a8fe3d1

Note that the storage rules are somewhat complicated. The simplified version - values of non-numeric items (character, text, log value types) with 0 history storage period are not stored in proxy history/sent to server.

Comment by Aigars Kadikis [ 2020 Jul 08 ]

The best workaround currently I can imagine on 4.2, 4.4, 5.0 is to execute the Prometheus monitoring from the master server only.

If this is not an option, I think, it will require to schedule a daily proxy shutdown to 'truncate table proxy_history; truncate table ids;'. Then start back the proxy.





[ZBX-17231] Read operation taking too long Created: 2020 Jan 28  Updated: 2020 Jun 16  Resolved: 2020 Jun 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.0.16
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Amanda H. L. A. Katz Assignee: Kristians Pavars
Resolution: Workaround proposed Votes: 0
Labels: proxy, sender, strace
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS Linux release 7.5.1804 (Core)
3.10.0-1062.7.1.el7.x86_64 #1 SMP Mon Dec 2 17:33:29 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Virtual Machine Vmware


Attachments: PNG File DataSender-CDIMO2-20200130.png     JPEG File Trappers-ZabbixUnico-20200130-1.jpg     PNG File Trappers-ZabbixUnico-20200130.png     Text File strace.out.txt    

 Description   

We have a proxy whose data sender process is most of the time 100% busy.

While getting a strace, we saw a lot of calls like these taking too long to end.

Is this an expected behaviour? What that means?

13:51:54 read(9, "ZBXD\3\36\0\0\0\26\0\0\0x\234\253V*J-.\310\317+NU\262R*.MN"..., 2048) = 43 <8.343763>



 Comments   
Comment by Amanda H. L. A. Katz [ 2020 Jan 30 ]

Just to complement, I get another strace and found out that it's something in zbx_recv_response.

 

zabbix_proxy.log
======================
44996:20200130:121833.480 In put_data_to_server() datalen:2108149
44996:20200130:121833.553 In zbx_recv_response()
44996:20200130:121856.142 zbx_recv_response() '{"response":"success"}'
44996:20200130:121856.143 End of zbx_recv_response():SUCCEED

strace.out
=======================
12:18:33 connect(9, {sa_family=AF_INET, sin_port=htons(10051), sin_addr=inet_addr("10.31.3.10")}, 16) = 0 <0.000985>
12:18:33 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT USR1 USR2 TERM], [], 8) = 0 <0.000030>
12:18:33 open("/var/log/zabbix/zabbix_proxy.log", O_RDWR|O_CREAT|O_APPEND, 0666) = 10 <0.000036>
12:18:33 fstat(10, {st_mode=S_IFREG|0664, st_size=25676667, ...}) = 0 <0.000039>
12:18:33 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f91426ad000 <0.000045>
12:18:33 write(10, " 44996:20200130:121833.480 In pu"..., 67) = 67 <0.000047>
12:18:33 close(10) = 0 <0.000031>
12:18:33 munmap(0x7f91426ad000, 4096) = 0 <0.000037>
12:18:33 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000036>
12:18:33 write(9, "ZBXD\3Z\264\4\0\365* \0x\234\354\275[\223\234G\216%\370Wh\332\327\352O~\277"..., 16384) = 16384 <0.000076>
12:18:33 write(9, "biJB\227\225>\330\342c\353>\207\6B\21\217\205\345\260E\324\322\30;\261:\323\316\274\304="..., 291943) = 291943 <0.005317>
12:18:33 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT USR1 USR2 TERM], [], 8) = 0 <0.000030>
12:18:33 open("/var/log/zabbix/zabbix_proxy.log", O_RDWR|O_CREAT|O_APPEND, 0666) = 10 <0.000041>
12:18:33 fstat(10, {st_mode=S_IFREG|0664, st_size=25676734, ...}) = 0 <0.000031>
12:18:33 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f91426ad000 <0.000066>
12:18:33 write(10, " 44996:20200130:121833.553 In zb"..., 50) = 50 <0.000056>
12:18:33 close(10) = 0 <0.000042>
12:18:33 munmap(0x7f91426ad000, 4096) = 0 <0.000043>
12:18:33 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000030>
12:18:33 read(9, "ZBXD\3\36\0\0\0\26\0\0\0x\234\253V*J-.\310\317+NU\262R.MN"..., 2048) = 43 <22.587992>*
12:18:56 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT USR1 USR2 TERM], [], 8) = 0 <0.000031>
12:18:56 open("/var/log/zabbix/zabbix_proxy.log", O_RDWR|O_CREAT|O_APPEND, 0666) = 10 <0.000093>
12:18:56 fstat(10, {st_mode=S_IFREG|0664, st_size=25684315, ...}) = 0 <0.000031>
12:18:56 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f91426ad000 <0.000039>
12:18:56 write(10, " 44996:20200130:121856.142 zbx_r"..., 72) = 72 <0.000044>
12:18:56 close(10) = 0 <0.000034>
12:18:56 munmap(0x7f91426ad000, 4096) = 0 <0.000045>
12:18:56 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000033>
12:18:56 rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT USR1 USR2 TERM], [], 8) = 0 <0.000030>
12:18:56 open("/var/log/zabbix/zabbix_proxy.log", O_RDWR|O_CREAT|O_APPEND, 0666) = 10 <0.000039>
12:18:56 fstat(10, {st_mode=S_IFREG|0664, st_size=25684387, ...}) = 0 <0.000044>
12:18:56 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f91426ad000 <0.000034>
12:18:56 write(10, " 44996:20200130:121856.143 End o"..., 62) = 62 <0.000038>

Comment by Glebs Ivanovskis [ 2020 Jan 30 ]

amandahlak, if I remember correctly, this is proxy waiting for a response from server that data has been received, processed and successfully put into preprocessing queue, so it can be safely deleted on proxy without the risk of data loss. If proxy cannot get the positive response within a given timeout, it will keep the data and attempt to send it later on. I would check if trappers and preprocessing queue on the server side are feeling fine. Maybe the bottleneck is actually there.

Comment by Amanda H. L. A. Katz [ 2020 Jan 31 ]

@Glebs Ivanovskis thank you very much! It seems that is exactly the case.

Comment by Arturs Lontons [ 2020 Mar 18 ]

Hi,

Did you manage to resolve the issue by following the advice given by Glebs?

Regards,
Arturs.

Comment by Amanda H. L. A. Katz [ 2020 Mar 18 ]

Hi, it helped but a colleague of mine found out that the problem was because of this:

https://support.zabbix.com/browse/ZBXNEXT-4004

So, we changed LLD (4 only) from "Update interval"  = 1d to "Custom Interval" = wd2h23m00/wd6h04m00 (for example). Each one we scheduled to a different day.

The difference is huge. Now we just see "data sender" in 100% at the scheduled time and then goes back to normal (5% tops).

We plan to upgrade our server to solve this for good. In version 4.2 this is already fixed.

https://www.zabbix.com/documentation/4.2/manual/introduction/whatsnew420#preprocessing_and_custom_macros_in_low-level_discovery

 





[ZBX-17187] Active Checks not working with PSK Created: 2020 Jan 16  Updated: 2020 Jul 02  Resolved: 2020 Jul 02

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: 4.2.8, 4.4.4
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Matthias Kaersten Assignee: Kristians Pavars
Resolution: Cannot Reproduce Votes: 0
Labels: agent, encryption, proxy, psk, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Host-settings -PSK.PNG     PNG File Host-settings.PNG     PNG File image-2020-01-26-23-27-18-163.png     Text File os-release.txt     Text File psk-encrption-zabbix-bugreport.txt     PNG File trap item.PNG     Zip Archive zabbix-appliance-cert.zip    

 Description   

Steps to reproduce:

  1. install Zabbix Server from Docker zabbix/zabbix-server-mysql:ubuntu-4.4-latest
  2. configure Host in Zabbix with trapper and hostname item, encryption psk
  3. install zabbix agent and configure psk
  4. use zabbix_sender to send values to zabbix server (trapper item)

Result:

PSK Encryption active:
zabbix server gets data for agent.hostname (Zabbix passive)
zabbix_sender can not send Data (see atachement)

Encryption deactivated:
zabbix server gets data for agent.hostname (Zabbix passive)
zabbix_sender can send data to trapper item

 

Setup:

Zabbix Server 4.4.4: installed as Docker container on rancheros

Zabbix Agent 4.4.4 and 4.2.8: Installed on Ubuntu 18.04

 

Expected:
Send Data with zabbix_sender and use Active Checks over PSK



 Comments   
Comment by Aigars Kadikis [ 2020 Jan 17 ]

Thank you for registering this thread and using the latest stable version.

I'm already facing the same behaviour as you described. By using '-c /etc/zabbix/zabbix_agentd.conf' as an argument it does not work well. It seems like a bug.

 

Just to scope the depth of the problem can you please also try without zabbix_agentd.conf file by writing all attributes individually:

zabbix_sender -z 127.0.0.1 -s trap -k ein.test -o 43 --tls-psk-file /etc/zabbix/zabbix_agentd.psk --tls-connect psk --tls-psk-identity PSK-123 -vv

And attach the OS details where it does not work with  '-c /etc/zabbix/zabbix_agentd.conf':

cat /etc/*release* 
Comment by Matthias Kaersten [ 2020 Jan 17 ]

/etc/os-release in atachement.
VERSION="18.04.3 LTS (Bionic Beaver)"

zabbix_sender -z <SERVER-IP> -s trap -k ein.test -o 43 --tls-psk-file /etc/zabbix/zabbix_agentd.psk --tls-connect psk --tls-psk-identity PSK-123 -vv

zabbix_sender [3091]: DEBUG: In zbx_tls_init_child()
zabbix_sender [3091]: DEBUG: OpenSSL library (version OpenSSL 1.1.1  11 Sep 2018) initialized
zabbix_sender [3091]: DEBUG: zbx_tls_init_child() loaded PSK identity "PSK-123"
zabbix_sender [3091]: DEBUG: zbx_tls_init_child() loaded PSK from file "/etc/zabbix/zabbix_agentd.psk"
zabbix_sender [3091]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
zabbix_sender [3091]: DEBUG: End of zbx_tls_init_child()
zabbix_sender [3092]: DEBUG: In zbx_tls_connect(): psk_identity:"PSK-123"
zabbix_sender [3092]: DEBUG: zbx_psk_client_cb() requested PSK identity "PSK-123"
zabbix_sender [3092]: DEBUG: End of zbx_tls_connect():SUCCEED (established TLSv1.3 TLS_AES_256_GCM_SHA384)
zabbix_sender [3092]: Warning: SSL_shutdown() with <SERVER-IP> set result code to 1: file ../ssl/ssl_lib.c line 2072: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
zabbix_sender [3092]: DEBUG: send value error: TLS read set result code to 1: file ../ssl/record/rec_layer_s3.c line 1528: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required: SSL alert number 116: TLS read fatal alert "unknown"
Sending failed.
Comment by Aigars Kadikis [ 2020 Jan 20 ]

Hello Matthias,

Apparently I cannot reproduce the issue on Ubuntu 18.04.3 LTS running everything locally (not from containers).

Previously I also did have a misconfiguration issue. Please double-make sure:

  • Trap item exists on the host
  • Reload the configuration cache (zabbix_server -R config_cache_reload) of Zabbix server before sending trap
  • The item which is created really is "Zabbix trapper", not "SNMP trap" or accidentally "Zabbix agent"
  • The trap is delivered to "Host name" and NOT the "Visible name"

If the problem still exists, please attach:

  • screenshot of "Items" page containing trap item
  • screenshot of host configuration page
  • screenshot of "Encryption" tab from host
  • /etc/zabbix/zabbix_agentd.psk file, the original one.

 

Comment by Matthias Kaersten [ 2020 Jan 27 ]

Hello,

 

I recreated this issue using the zabbix appliance Docker image and zabbix_agent 4.4 on Ubuntu 18.04.

As soon as i add the following configuration to the Zabbix Server zabbix_sender start to fail when using PSK while passive Items continue working.
    -e ZBX_TLSCAFILE=ca.crt \
    -e ZBX_TLSCERTFILE=server.crt \
    -e ZBX_TLSKEYFILE=server.key \
 

  • screenshot of "Items" page containing trap item
  • screenshot of host configuration page
  • screenshot of "Encryption" tab from host
  • /etc/zabbix/zabbix_agentd.psk file, the original one.
    • i atteched an zip containing my Dockerfile with a build.sh and run.sh some certificates the exported host, zabbix_agentd.conf and zabbix_agentd.psk zabbix-appliance-cert.zip
       
Comment by Kristians Pavars [ 2020 Jun 16 ]

Hi mt-mk

 

Sorry for the long delay,

In the Docker commands you are specifying Certificate, but in the frontend you are using PSK, please make sure that both of them are configured to use the same encryption method.

 

Regards,
Kristiāns





[ZBX-16927] Pollers stuck waiting for response without timeout Created: 2019 Nov 15  Updated: 2024 Apr 10  Resolved: 2024 Jan 18

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 4.2.8
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Grzegorz Lachowski Assignee: Dmitrijs Goloscapovs
Resolution: Cannot Reproduce Votes: 3
Labels: PROXY, Poller,, SNMPv3, Server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 18.04


Attachments: Text File 0001-.PS.-ZBX-16927-added-verbose-debug-for-snmp.patch     JPEG File Annotation 2019-11-15 133726.jpg     JPEG File gdb-poller-process-bt.jpg     JPEG File graph_pollers_busy.jpg     JPEG File lsof-udp-fd-10.jpg     JPEG File ps-pollers-getting-values.jpg     JPEG File strace-main-zabbix-server-with-child-processes-stuck.jpg     JPEG File strace-poller-process-stuck-on-select.jpg    
Team: Team A
Team: Team A
Sprint: S2401-2

 Description   

It acted the same in version 3.4 too. Tried to upgrade but it did not help.

Steps to reproduce:

  1. Setup few SNMPv3 hosts
  2. After some time (few to several hours) notice all pollers (both unreachable and regular ones) are busy. Hosts are supposedly down.

Result:

see "Annotation 2019-11-15 133726.jpg"

see "graph_pollers_busy.jpg"

Please bear with me...

I checked few things and this is what I found out.

First I went to see PS output and noticed that poller and unreachable pollers descriptions do not update at all. See 'ps-pollers-getting-values.jpg'.

Tried strace main zabbix process (with child processes), but there was no action there too. See 'strace-main-zabbix-server-with-child-processes-stuck.jpg'

Then went to strace the pollers. All of them were stuck on select call (tried waiting for a bit) without timeout reading from descriptor 10 - a UDP socket. See 'strace-poller-process-stuck-on-select.jpg' and 'lsof-udp-fd-10.jpg'

What's it doing? Here's a backtrace from gdb - see "gdb-poller-process-bt.jpg"

In zabbix sources it said NETSNMP has its own timeout values, I checked there and saw this piece of code (version 5.4.4) - notice / block without timeout / comment:

int
snmp_synch_response_cb(netsnmp_session * ss,
                       netsnmp_pdu *pdu,
                       netsnmp_pdu **response, snmp_callback pcb)
{
    struct synch_state lstate, *state;
    snmp_callback   cbsav;
    void           *cbmagsav;
    int             numfds, count;
    fd_set          fdset;
    struct timeval  timeout, *tvp;
    int             block;

    memset((void *) &lstate, 0, sizeof(lstate));
    state = &lstate;
    cbsav = ss->callback;
    cbmagsav = ss->callback_magic;
    ss->callback = pcb;
    ss->callback_magic = (void *) state;

    if ((state->reqid = snmp_send(ss, pdu)) == 0) {
        snmp_free_pdu(pdu);
        state->status = STAT_ERROR;
    } else
        state->waiting = 1;

    while (state->waiting) {
        numfds = 0;
        FD_ZERO(&fdset);
        block = NETSNMP_SNMPBLOCK;
        tvp = &timeout;
        timerclear(tvp);
        snmp_select_info(&numfds, &fdset, tvp, &block);
        if (block == 1)
            tvp = NULL;         /* block without timeout */
        count = select(numfds, &fdset, 0, 0, tvp);
        if (count > 0) {
            snmp_read(&fdset);
        } else {
            switch (count) {
            case 0:
                snmp_timeout();
                break;
            case -1:
                if (errno == EINTR) {
                    continue;
                } else {
                    snmp_errno = SNMPERR_GENERR;    /*MTCRITICAL_RESOURCE */
                    /*
                     * CAUTION! if another thread closed the socket(s)
                     * waited on here, the session structure was freed.
                     * It would be nice, but we can't rely on the pointer.
                     * ss->s_snmp_errno = SNMPERR_GENERR;
                     * ss->s_errno = errno;
                     */
                    snmp_set_detail(strerror(errno));
                }
                /*
                 * FALLTHRU 
                 */
            default:
                state->status = STAT_ERROR;
                state->waiting = 0;
            }
        }

        if ( ss->flags & SNMP_FLAGS_RESP_CALLBACK ) {
            void (*cb)(void);
            cb = ss->myvoid;
            cb();        /* Used to invoke 'netsnmp_check_outstanding_agent_requests();'
                            on internal AgentX queries.  */
        }
    }
    *response = state->pdu;
    ss->callback = cbsav;
    ss->callback_magic = cbmagsav;
    return state->status;
}

So all my pollers seem to be stuck waiting forever for a response from UDP socket.

After server restart it goes back to normal.

 



 Comments   
Comment by Edgar Akhmetshin [ 2019 Nov 19 ]

Hello! Thank you for reporting the issue! Could you please add compressed tcpdump output (pcap) to the issue for the stuck state to see communication between Server/Proxy and SNMPv3 enabled device please?

Regards,
Edgar

Comment by Grzegorz Lachowski [ 2019 Nov 21 ]

There's no UDP communication anymore at this point:

 

$ sudo timeout 300 sudo tcpdump udp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5, link-type EN10MB (Ethernet), capture size 262144 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel

When I tried taking it from a longer period there were just some OS's DNS calls visible, no SNMP movement.

 

 

Comment by Grzegorz Lachowski [ 2019 Dec 19 ]

I solved the issue by moving with our setup to CentOS, so Ubuntu (AWS image) is the only one affected here. Might be related to NETSNMP lib version maybe? Can you tell me how can I check what version of netsnmp is used by zabbix?

 

The setup was done using Ansible:

https://github.com/dj-wasabi/ansible-zabbix-server

https://github.com/dj-wasabi/ansible-zabbix-web

Comment by Vladislavs Sokurenko [ 2019 Dec 20 ]

For me it times out after one minute

 71364:20191220:175526.338 In get_values_snmp() host:'Zabbix server2' addr:'127.0.0.2' num:1
 71364:20191220:175526.339 In zbx_snmp_open_session()
 71364:20191220:175526.339 SNMP [public@127.0.0.2:1024]
 71364:20191220:175526.340 End of zbx_snmp_open_session()
 71364:20191220:175526.340 In zbx_snmp_process_standard()
 71364:20191220:175526.340 In zbx_snmp_translate() OID:'.1.3.6.1.2.1.1.6.0'
 71364:20191220:175526.341 End of zbx_snmp_translate() oid_translated:'.1.3.6.1.2.1.1.6.0'
 71364:20191220:175526.341 In zbx_snmp_get_values() num:1 level:0
 71364:20191220:175626.397 zbx_snmp_get_values() snmp_synch_response() status:2 s_snmp_errno:-24 errstat:-1 mapping_num:1
 71364:20191220:175626.403 End of zbx_snmp_get_values():NETWORK_ERROR
net-snmp-libs-5.8-10.fc30.x86_64
net-snmp-devel-5.8-10.fc30.x86_64
Linux version 5.3.16-200.fc30.x86_64 ([email protected]) (gcc version 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)) #1 SMP Fri Dec 13 17:48:38 UTC 2019

You can try rpm -qa

Comment by Oleg Ivanivskyi [ 2023 Mar 01 ]

Faced the same issue in Zabbix 6.0.13. 3 Zabbix proxies were affected. Zabbix proxy debug for a poller:

 29924:20230228:095030.813 In zbx_ipc_async_socket_recv() timeout:0
 29924:20230228:095030.813 End of zbx_ipc_async_socket_recv():0
 29924:20230228:095030.813 In get_values()
 29924:20230228:095030.813 In DCconfig_get_poller_items() poller_type:1
 29924:20230228:095030.813 End of DCconfig_get_poller_items():1
 29924:20230228:095030.813 In substitute_key_macros_impl() data:'snmp.sensors'
 29924:20230228:095030.813 End of substitute_key_macros_impl():SUCCEED data:'snmp.sensors'
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:'161'
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:'{$SNMPV3_USER}'
 29924:20230228:095030.813 In DCget_user_macro() macro:'{$SNMPV3_USER}'
 29924:20230228:095030.813 End of DCget_user_macro()
 29924:20230228:095030.813 End substitute_simple_macros_impl() data:'user'
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:'{$SNMPV3_AUTHPASS}'
 29924:20230228:095030.813 In DCget_user_macro() macro:'{$SNMPV3_AUTHPASS}'
 29924:20230228:095030.813 End of DCget_user_macro()
 29924:20230228:095030.813 End substitute_simple_macros_impl() data:'some_password'
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:'{$SNMPV3_PRIVPASS}'
 29924:20230228:095030.813 In DCget_user_macro() macro:'{$SNMPV3_PRIVPASS}'
 29924:20230228:095030.813 End of DCget_user_macro()
 29924:20230228:095030.813 End substitute_simple_macros_impl() data:'some_password'
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:EMPTY
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:EMPTY
 29924:20230228:095030.813 In substitute_key_macros_impl() data:'discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.2]'
 29924:20230228:095030.813 In substitute_simple_macros_impl() data:'{#SNMPVALUE}'
 29924:20230228:095030.813 End substitute_simple_macros_impl() data:'{#SNMPVALUE}'
 29924:20230228:095030.813 End of substitute_key_macros_impl():SUCCEED data:'discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.2]'
 29924:20230228:095030.813 In get_values_snmp() host:'name' addr:'hostname' num:1
 29924:20230228:095030.813 In zbx_snmp_open_session()
 29924:20230228:095030.835 SNMPv3 [user@hostname:161]
 29924:20230228:095030.837 End of zbx_snmp_open_session()
 29924:20230228:095030.837 In zbx_snmp_process_discovery()
 29924:20230228:095030.837 In zbx_snmp_translate() OID:'1.3.6.1.2.1.47.1.1.1.1.2'
 29924:20230228:095030.837 End of zbx_snmp_translate() oid_translated:'1.3.6.1.2.1.47.1.1.1.1.2'
 29924:20230228:095030.837 In zbx_snmp_walk() type:20 OID:'1.3.6.1.2.1.47.1.1.1.1.2' bulk:1
 29924:20230228:095040.838 zbx_snmp_walk() snmp_synch_response() status:1 s_snmp_errno:-24 errstat:-1 max_vars:0
 29924:20230228:095046.015 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095049.043 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095051.981 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095055.011 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095057.985 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095101.217 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095104.030 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095107.241 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095110.643 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095113.951 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095117.451 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095120.751 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095124.044 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095127.184 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095130.233 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095133.349 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095136.451 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095139.643 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095142.548 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095145.544 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095148.779 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095151.821 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095154.996 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095158.379 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095201.639 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095204.759 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095207.979 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095211.118 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095213.979 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095217.341 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095220.404 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095223.546 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095226.770 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095229.903 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095233.114 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095236.531 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095239.715 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095243.060 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095246.186 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095249.722 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095252.918 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095255.767 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095258.738 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095301.729 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095304.930 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095309.829 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095312.732 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095315.690 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095319.177 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095322.230 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095325.364 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095328.312 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095331.593 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095334.759 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095337.919 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095341.065 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095344.582 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095347.436 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095350.552 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095353.631 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095356.543 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095359.597 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095402.969 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095406.242 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095409.652 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095412.591 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095415.706 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095418.951 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095422.145 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095425.483 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095428.703 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095431.535 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095434.334 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095437.599 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095440.926 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
 29924:20230228:095445.454 Got signal [signal:10(SIGUSR1),sender_pid:29825,sender_uid:28247,value_int:2(0x00000002)].
 29924:20230228:095445.455 log level has been decreased to 3 (warning)
Name         : net-snmp-libs
Epoch        : 1
Version      : 5.8
Release      : 25.el8_7.1
Architecture : x86_64
Size         : 3.1 M
Source       : net-snmp-5.8-25.el8_7.1.src.rpm
Comment by Lauri Rood [ 2023 Nov 22 ]

Still happening... Just noticed same behaviour on proxy 6.0.22 (on RH8) 

1509244:20231122:132502.577 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.598 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.624 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.648 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.665 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.688 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.708 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.731 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.756 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.775 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.799 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.824 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.849 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.866 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.888 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.909 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.932 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0
1509244:20231122:132502.956 zbx_snmp_walk() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 max_vars:0 
Name         : net-snmp-libs 
Epoch        : 1 
Version      : 5.8 
Release      : 27.el8 
Architecture : x86_64 
Size         : 3.1 M 
Source       : net-snmp-5.8-27.el8.src.rpm
Comment by Vladislavs Sokurenko [ 2024 Jan 17 ]

This should have been solved by ZBX-22864 we need to add additional debug to determine why it still continues on some devices, is it possible to test with a patch if we provide one ?

Comment by Lauri Rood [ 2024 Jan 17 ]

Unfortunately, I cannot do any ad-hoc patching in prod env. Currently we have already moved to 6.0.25 also and since that last time, I have not noticed this behaviour... I have not actively looked for it, but I do not remember any proxy issues also since that last time.. 

Comment by Sergio Cocozza [ 2024 Jan 17 ]

HI Vladislav, I'm using zabbix proxy version 6.0.25 and still having the issue. I'm available to test a patch.

 

 

Comment by Dmitrijs Goloscapovs [ 2024 Jan 18 ]

Hello, sgtserge

I have attached a patch with additional debug info for 6.0.25 (available with DebugLevel=4 and higher).
Please check (grep -E 'zbx_snmp_walk|zbx_oid_is_new' ...).

0001-.PS.-ZBX-16927-added-verbose-debug-for-snmp.patch

Comment by Sergio Cocozza [ 2024 Jan 18 ]

Hi Dmitrijs, sorry for misunderstanding. I didn't install with sources, plus I can't patch server as it is in production.

Also not familiar with compiling stuff..

Are you going to include this patch in a minor release so I can update the proxy only with package manager?

Comment by Vladislavs Sokurenko [ 2024 Jan 18 ]

Please provide information on why it appears to be same issue sgtserge, it appears that original issue was fixed by updating SNMP library, also please see ZBX-22864

Comment by Vladislavs Sokurenko [ 2024 Jan 18 ]

Closing this issue as original reporter no longer has the issue and there are comments about other issue that is fixed under ZBX-22864

Please also see if it's possible to upgrade and use improver walk that is doing true bulk requests
ZBXNEXT-4428 and later by ZBXNEXT-8567





[ZBX-16739] Zabbix Proxy - Remote commands: it's not like the manual says Created: 2019 Oct 08  Updated: 2019 Oct 09  Resolved: 2019 Oct 09

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P)
Affects Version/s: None
Fix Version/s: None

Type: Patch request Priority: Major
Reporter: Werneck Bezerra Costa Assignee: Zabbix Support Team
Resolution: Done Votes: 1
Labels: proxy, remotecommands, taskmanager
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian 9 proxy based; Debian 8 proxy based; Windows 2012 R2 Zabbix agent based.



 Description   

Remote command execution on Zabbix Agent, by Proxy, don't follow the manual when it say:

Remote commands on Zabbix agent are executed without timeout by the system.run[,*nowait*] key and are not checked for execution results.

Steps to reproduce:

  1. Increased Proxy log level for "task manager" process: zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf -R log_level_increase="task manager"
  2. Read the results: tail -f /var/log/zabbix/zabbix_proxy.log

Result:
**

25818:20191008:113044.451 query [txnlev:1] [update task set status=3 where taskid=3001304]
25818:20191008:113044.451 query [txnlev:1] [commit;]
25818:20191008:113044.454 query [txnlev:0] [select command_type,execute_on,port,authtype,username,password,publickey,privatekey,command,parent_taskid,hostid from task_remote_command where taskid=3001305]
25818:20191008:113044.454 In zbx_script_execute()
25818:20191008:113044.454 In zbx_execute_script_on_agent()
25818:20191008:113044.454 In substitute_simple_macros() data:'10050'
25818:20191008:113044.454 In get_value_agent() host:'W2012RODRIGO' addr:'10.34.12.61' key:'system.run[powershell.exe -executionpolicy ByPass -nologo C:\SkyDocs_suporte\skydocs-block-ip.ps1 201.21.161.109,wait]' conn:'unencrypted'
25818:20191008:113044.455 Sending [system.run[powershell.exe -executionpolicy ByPass -nologo C:\SkyDocs_suporte\skydocs-block-ip.ps1 10.0.0.1,*wait*]
25818:20191008:113056.942 get value from agent result: '0'
25818:20191008:113056.942 End of get_value_agent():SUCCEED
25818:20191008:113056.942 End of zbx_execute_script_on_agent():SUCCEED
25818:20191008:113056.942 End of zbx_script_execute():SUCCEED

Expected:

Sending [system.run[powershell.exe -executionpolicy ByPass -nologo C:\SkyDocs_suporte\skydocs-block-ip.ps1 10.0.0.1,*nowait*]

This is leading the command executions to take many time, and fail for more than the half of VMs (it's about 150 Virtual Machines).



 Comments   
Comment by Aleksandrs Petrovs-Gavrilovs [ 2019 Oct 09 ]

Hello,

Judging by the output you provided, the problem is in the key itself, not in the documentation, your key is:

system.run[powershell.exe -executionpolicy ByPass -nologo C:\SkyDocs_suporte\skydocs-block-ip.ps1 201.21.161.109,*wait*]

That is why agent waits for result.

Please be advised that this section of the tracker is for bug reports only. The case you have submitted can not be qualified as one, so please reach out to [email protected] for commercial support or consultancy services. Alternatively, you can also use our IRC channel or community forum (https://www.zabbix.com/forum) for assistance. With that said, we are closing this ticket. Thank you for understanding. 

Comment by Werneck Bezerra Costa [ 2019 Oct 09 ]

Hello Aleksandrs.

Maybe you can't understood my question: the executed key is not an normal item. I'ts executed automaticaly by proxy's "task manager". In this case, if the execution follow the manual (with "nowait" instead "wait") it was ok!





[ZBX-16703] Zabbix Proxy - proxy_history database growing uncontrollably Created: 2019 Sep 30  Updated: 2019 Oct 01  Resolved: 2019 Oct 01

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.2.5, 4.2.6
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Antti Koskenvoima Assignee: Elina Kuzyutkina (Inactive)
Resolution: Won't fix Votes: 1
Labels: database, disk, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS Linux release 7.6.1810 (Core), MariaDB 10.0.38-1.el7.centos , Zabbix-Proxy 4.2.6.



 Description   

Steps to reproduce:

  1. Installed Proxy in an environment with 57 hosts. Works normally for a few weeks.
  2. Rapid use of diskspace occurs. The culprit is the table proxy_history , which fills the root partition. The size is over 35GB.
  3. The Zabbix proxy halts as the root partition is full.

Result:

select count(itemid) from proxy_history;

+---------------+
| count(itemid) |
+---------------+
| 222263503     |
+---------------+

1 row in set (2 min 56.82 sec)

between UNIX timestamps 1563522801 and 1569842893.

Expected:
Consistent use of disk space, not perpetual growth.

 

Possible cause:

Zabbix sender items in template. 



 Comments   
Comment by Elina Kuzyutkina (Inactive) [ 2019 Oct 01 ]

Hello Antti,
Proxy store data from 19 Jul.
Check please that Zabbix proxy is same major version as Zabbix server, that proxy is able to send data to Zabbix server (check Zabbix server and proxy logs)
Check for HousekeepingFrequency parameter in proxy conf file. Maybe you just had set it to 0?
Check also for ProxyLocalBuffer and ProxyOfflineBuffer parameters
There is no indication for a bug here. Please be advised that this section of the tracker is for bug reports only. The case you have submitted can not be qualified as one, so please reach out to [email protected] for commercial support or consultancy services. Alternatively, you can also use our IRC channel or community forum (https://www.zabbix.com/forum) for assistance. In those way please attach to your post proxy log and conf file. With that said, we are closing this ticket. Thank you for understanding.





[ZBX-16664] IPMI poller skips processing if one of the elements is missing information (not installed) Created: 2019 Sep 20  Updated: 2024 Apr 10  Resolved: 2019 Oct 15

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.0.28, 4.0.12, 4.2.6
Fix Version/s: 4.0.14rc1, 4.2.8rc1, 4.4.1rc1, 5.0.0alpha1, 5.0 (plan)

Type: Incident report Priority: Trivial
Reporter: Edgar Akhmetshin Assignee: Andrejs Kozlovs
Resolution: Fixed Votes: 1
Labels: IPMI, PROXY, Server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 16.04 for Server, CentOS 7 for Proxy


Attachments: Zip Archive zbx_bmc_1.zip    
Issue Links:
Causes
Team: Team A
Team: Team A
Sprint: Sprint 56 (Sep 2019), Sprint 57 (Oct 2019)
Story Points: 1

 Description   

Steps to reproduce:
Start IPMI monitoring, attach standard or custom IPMI template to the host with physical FAN3-FAN8 installed (or any absent component - not populated dimm slots or PSU), no FAN-1,2 installed:

 32173:20190920:130153.441 In zbx_read_ipmi_sensor() sensor:'FAN2@[x.x.x.x]:623'
 32173:20190920:130153.441 In zbx_perform_openipmi_ops() host:'[x.x.x.x]:623' phost:0x55f06adf59b0 from zbx_read_ipmi_sensor()
 32173:20190920:130153.442 In zbx_got_thresh_reading_cb()
 32173:20190920:130153.442 zbx_got_thresh_reading_cb() fail: [16777419] Unknown error 16777419
 32173:20190920:130153.442 End of zbx_got_thresh_reading_cb():NETWORK_ERROR
 32173:20190920:130153.442 End zbx_perform_openipmi_ops() from zbx_read_ipmi_sensor()
 32173:20190920:130153.442 End of zbx_read_ipmi_sensor():NETWORK_ERROR
 32173:20190920:130153.442 In zbx_ipc_async_socket_send()
 32173:20190920:130153.442 In zbx_ipc_client_send() clientid:0

Expected:
Skip uninstalled components.



 Comments   
Comment by Andrejs Kozlovs [ 2019 Oct 14 ]

Fixed in:

  • 4.0.14rc1 11050926347
  • 4.2.8rc1 f5c4b344a78
  • 4.4.1rc1 27b17f66f49
  • 5.0.0alpha1 (master) 75c022fe261




[ZBX-16509] SNMP Item (ifphysaddress) returns blank or incorrect data Created: 2019 Aug 14  Updated: 2019 Aug 26  Resolved: 2019 Aug 26

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 4.0.11
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: James Cook Assignee: DaneT
Resolution: Won't fix Votes: 0
Labels: easysnmp, proxy, python, snmp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 4.0.7
Postgres 11
Centos 7


Attachments: JPEG File Item - Definition.JPG     JPEG File Item - Preprocessing.JPG     Text File pg_dump.txt     PNG File screenshot-1.png     PNG File screenshot-2.png    

 Description   

I have been unable to collect and store SNMP ifPhysAddress correctly as it either shows as blank or bad data.

When performing the snmpwalk on a specific oid I get the following:

snmpwalk -v2c -c '8nBAToGrH8p0AknFd9oR' 10.220.45.8 .1.3.6.1.2.1.2.2.1.6.8
IF-MIB::ifPhysAddress.8 = STRING: 6c:b2:ae:98:a3:1c

When defining the Zabbix SNMPv2 item .1.3.6.1.2.1.2.2.1.6.8 I get the following:

l????

When query the database for the raw data I get the following:

l????\x1C

If the item is defined as an SNMPv3 item the data is returned as blank.



 Comments   
Comment by DaneT [ 2019 Aug 15 ]

Hello James
What type of information did you used for the item? Text or character?
Could you please attach screenshots showing item configuration and preprocessing steps if you have any?

Comment by DaneT [ 2019 Aug 15 ]

Please also execute SQL query:

show create table items\G

and paste output here

Comment by James Cook [ 2019 Aug 19 ]

Hi Marcis,

The 'show create table items' is for mysql so I have pasted the pg_dump output for postgres:

 

-bash-4.2$ pg_dump -st items zabbix

-- PostgreSQL database dump

– Dumped from database version 11.2
– Dumped by pg_dump version 11.2

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_with_oids = false;


-- Name: items; Type: TABLE; Schema: public; Owner: zabbix

CREATE TABLE public.items (
itemid bigint NOT NULL,
type integer DEFAULT 0 NOT NULL,
snmp_community character varying(64) DEFAULT ''::character varying NOT NULL,
snmp_oid character varying(512) DEFAULT ''::character varying NOT NULL,
hostid bigint NOT NULL,
name character varying(255) DEFAULT ''::character varying NOT NULL,
key_ character varying(255) DEFAULT ''::character varying NOT NULL,
delay character varying(1024) DEFAULT '0'::character varying NOT NULL,
history character varying(255) DEFAULT '90d'::character varying NOT NULL,
trends character varying(255) DEFAULT '365d'::character varying NOT NULL,
status integer DEFAULT 0 NOT NULL,
value_type integer DEFAULT 0 NOT NULL,
trapper_hosts character varying(255) DEFAULT ''::character varying NOT NULL,
units character varying(255) DEFAULT ''::character varying NOT NULL,
snmpv3_securityname character varying(64) DEFAULT ''::character varying NOT NULL,
snmpv3_securitylevel integer DEFAULT 0 NOT NULL,
snmpv3_authpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
snmpv3_privpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
formula character varying(255) DEFAULT ''::character varying NOT NULL,
error character varying(2048) DEFAULT ''::character varying NOT NULL,
lastlogsize numeric(20,0) DEFAULT '0'::numeric NOT NULL,
logtimefmt character varying(64) DEFAULT ''::character varying NOT NULL,
templateid bigint,
valuemapid bigint,
params text DEFAULT ''::text NOT NULL,
ipmi_sensor character varying(128) DEFAULT ''::character varying NOT NULL,
authtype integer DEFAULT 0 NOT NULL,
username character varying(64) DEFAULT ''::character varying NOT NULL,
password character varying(64) DEFAULT ''::character varying NOT NULL,
publickey character varying(64) DEFAULT ''::character varying NOT NULL,
privatekey character varying(64) DEFAULT ''::character varying NOT NULL,
mtime integer DEFAULT 0 NOT NULL,
flags integer DEFAULT 0 NOT NULL,
interfaceid bigint,
port character varying(64) DEFAULT ''::character varying NOT NULL,
description text DEFAULT ''::text NOT NULL,
inventory_link integer DEFAULT 0 NOT NULL,
lifetime character varying(255) DEFAULT '30d'::character varying NOT NULL,
snmpv3_authprotocol integer DEFAULT 0 NOT NULL,
snmpv3_privprotocol integer DEFAULT 0 NOT NULL,
state integer DEFAULT 0 NOT NULL,
snmpv3_contextname character varying(255) DEFAULT ''::character varying NOT NULL,
evaltype integer DEFAULT 0 NOT NULL,
jmx_endpoint character varying(255) DEFAULT ''::character varying NOT NULL,
master_itemid bigint,
timeout character varying(255) DEFAULT '3s'::character varying NOT NULL,
url character varying(2048) DEFAULT ''::character varying NOT NULL,
query_fields character varying(2048) DEFAULT ''::character varying NOT NULL,
posts text DEFAULT ''::text NOT NULL,
status_codes character varying(255) DEFAULT '200'::character varying NOT NULL,
follow_redirects integer DEFAULT 1 NOT NULL,
post_type integer DEFAULT 0 NOT NULL,
http_proxy character varying(255) DEFAULT ''::character varying NOT NULL,
headers text DEFAULT ''::text NOT NULL,
retrieve_mode integer DEFAULT 0 NOT NULL,
request_method integer DEFAULT 0 NOT NULL,
output_format integer DEFAULT 0 NOT NULL,
ssl_cert_file character varying(255) DEFAULT ''::character varying NOT NULL,
ssl_key_file character varying(255) DEFAULT ''::character varying NOT NULL,
ssl_key_password character varying(64) DEFAULT ''::character varying NOT NULL,
verify_peer integer DEFAULT 0 NOT NULL,
verify_host integer DEFAULT 0 NOT NULL,
allow_traps integer DEFAULT 0 NOT NULL
);

ALTER TABLE public.items OWNER TO zabbix;


-- Name: items items_pkey; Type: CONSTRAINT; Schema: public; Owner: zabbix

ALTER TABLE ONLY public.items
ADD CONSTRAINT items_pkey PRIMARY KEY (itemid);


-- Name: items_1; Type: INDEX; Schema: public; Owner: zabbix

CREATE UNIQUE INDEX items_1 ON public.items USING btree (hostid, key_);


-- Name: items_3; Type: INDEX; Schema: public; Owner: zabbix

CREATE INDEX items_3 ON public.items USING btree (status);


-- Name: items_4; Type: INDEX; Schema: public; Owner: zabbix

CREATE INDEX items_4 ON public.items USING btree (templateid);


-- Name: items_5; Type: INDEX; Schema: public; Owner: zabbix

CREATE INDEX items_5 ON public.items USING btree (valuemapid);


-- Name: items_6; Type: INDEX; Schema: public; Owner: zabbix

CREATE INDEX items_6 ON public.items USING btree (interfaceid);


-- Name: items_7; Type: INDEX; Schema: public; Owner: zabbix

CREATE INDEX items_7 ON public.items USING btree (master_itemid);


-- Name: items c_items_1; Type: FK CONSTRAINT; Schema: public; Owner: zabbix

ALTER TABLE ONLY public.items
ADD CONSTRAINT c_items_1 FOREIGN KEY (hostid) REFERENCES public.hosts(hostid) ON DELETE CASCADE;


-- Name: items c_items_2; Type: FK CONSTRAINT; Schema: public; Owner: zabbix

ALTER TABLE ONLY public.items
ADD CONSTRAINT c_items_2 FOREIGN KEY (templateid) REFERENCES public.items(itemid) ON DELETE CASCADE;


-- Name: items c_items_3; Type: FK CONSTRAINT; Schema: public; Owner: zabbix

ALTER TABLE ONLY public.items
ADD CONSTRAINT c_items_3 FOREIGN KEY (valuemapid) REFERENCES public.valuemaps(valuemapid);


-- Name: items c_items_4; Type: FK CONSTRAINT; Schema: public; Owner: zabbix

ALTER TABLE ONLY public.items
ADD CONSTRAINT c_items_4 FOREIGN KEY (interfaceid) REFERENCES public.interface(interfaceid);


-- Name: items c_items_5; Type: FK CONSTRAINT; Schema: public; Owner: zabbix

ALTER TABLE ONLY public.items
ADD CONSTRAINT c_items_5 FOREIGN KEY (master_itemid) REFERENCES public.items(itemid) ON DELETE CASCADE;


-- Name: TABLE items; Type: ACL; Schema: public; Owner: zabbix

GRANT SELECT ON TABLE public.items TO zabbix_ro;


-- PostgreSQL database dump complete

Comment by James Cook [ 2019 Aug 19 ]

I have attached the item definitions for viewing

Comment by DaneT [ 2019 Aug 19 ]

Hello [email protected]
Seems something is off with your DB. I created a simple item and was able to retrieve MAC via SNMP:

Here's the output in Frontend:

Please double-check charset encoding and collation for your DB

Comment by James Cook [ 2019 Aug 20 ]

Hi Marcis,

I originally thought the same thing regarding the database encoding and checked the following:

  • Database creation command:

createdb -O <USERNAME> <DATABASE> --template=template0 --encoding=UTF8 --lc-ctype=en_AU.UTF8 --lc-collate=en_AU.UTF8

PLEASE NOTE: Unicode is an alias for UTF8 in PostgreSQL

  • Database schema creation: Used the zabbix instructions:

zcat /usr/share/doc/zabbix-server-pgsql-4.0.7/create.sql.gz | psql -U <USERNAME> -h <HOST> -p <PORT> -d <DATABASE>

  • List database i.e. psql '\l':

postgres=# \l

Name | Owner | Encoding | Collate | Ctype
-------------+-----------------------------------------------
zabbix | zabbix | UTF8 | en_AU.UTF8 | en_AU.UTF8

  • Check client encoding i.e. psql '\encoding':

postgres=# \encoding
UTF8
postgres=#

 

What should the output from psql '\l' look like?

 

Some additional information:

We are using net-snmp version 5.7.2

Comment by James Cook [ 2019 Aug 20 ]

Hi Marcis,

I have done some additional testing and debugging and found that in the same Zabbix environment the monitored item works on the server and does not work on the proxy.

I turned on debug information for the pollers on the server and proxy and received the following information:

Server (Works):

4895:20190820:160834.805 zbx_snmp_get_octet_string() full value:'STRING: 0:1d:46:8d:a:c0' hint:'1x:'
4895:20190820:160834.805 End of zbx_snmp_get_octet_string():'0:1d:46:8d:a:c0'
4895:20190820:160834.805 End of zbx_snmp_set_result():SUCCEED

Proxy (Broken):

24755:20190820:160654.761 zbx_snmp_get_octet_string() full value:'0:1d:46:8d:a:c0' hint:'1x:'
24755:20190820:160654.761 End of zbx_snmp_get_octet_string():''
24755:20190820:160654.761 End of zbx_snmp_set_result():SUCCEED

It looks like it is collecting the information however is not converting it correctly?

Cheers

James

Comment by James Cook [ 2019 Aug 21 ]

Hi Marcis,

Some further information if it helps.

I looked at the Zabbix source (src/zabbix_server/poller/checks_snmp.c) in the function zbx_snmp_get_octet_string() to see why this is not being handled correctly (Looking at the above log explains it).

The  if/else statements look for a hint and for specific strings in the buffer (i.e. Hex-String:, STRING:, OID:, BITS and converts as required.

If there is no hint or the buffer does not contain the required strings it defaults to the else clause which streats it as a hintless string and failing in this case.

Now looking at the snmpwalk output on the server and proxy, they show identicle output and both report the value as 'STRING: 0:1d:46:8d:a:c0', so for some reason Zabbix is not?

Hope this helps.

Cheers

James

 

 

Comment by DaneT [ 2019 Aug 22 ]

Hello James.

Thank you for the extended information. In this case we need to check the proxy.
Can you please provide the following information:

  • Proxy logs
  • Proxy type - active or passive?
  • Proxy version - and is it different from Zabbix server version?
  • DB version and type used by the proxy (SQlite is by default) but maybe you use Postgres for the proxy as well?

Here's output from my database:

zabbix-> # \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------------------------------------------------+----------------------
zabbix | zabbix | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)

zabbix-> # \encoding
UTF8

Comment by James Cook [ 2019 Aug 22 ]

Hi Marcis,

The proxies are active, and the server and proxies are all the same version ie 4.0.7. Both server and proxies use postgres.

The server and proxies use the same version of postgres and centos along with patches.

Please correct me if I'm wrong but the debug information from the proxy logs suggests that the value does not contain the type string for some reason which is causing the string not to be converted correctly I.e. it's not correct before it even hits the database?

Cheers
James

Comment by DaneT [ 2019 Aug 22 ]

Yes, it seems so but before i can pass it to developers i need to gather all the information.

Comment by DaneT [ 2019 Aug 22 ]

Hello James, can you duplicate this error on other proxy?
Also - can you please try to upgrade proxy to the latest - 4.0.11 and check?
I tried with both 4.0.7 and 4.0.11 version proxies and could not duplicate it

Comment by James Cook [ 2019 Aug 23 ]

Hi Marcis,

 

I will attempt an update now...

 

The following is some configuration information:

Server Version = 4.0.7

Proxy Version 4.0.7

Proxy Type = Active

PostgreSQL version = 10.5

 

The following is my proxy database information:

zabbix_test_proxy=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------------------------------------------------------+----------------------
zabbix_test_proxy | zabbix_test_proxy | UTF8 | en_AU.UTF8 | en_AU.UTF8 |
(4 rows)

zabbix_test_proxy=# \encoding
UTF8
zabbix_test_proxy=#

 

The following is max level debugging for a complete poll cycle for that one item:

708:20190823:115831.504 End of zbx_snmp_open_session()
708:20190823:115831.504 In zbx_snmp_process_standard()
708:20190823:115831.504 In zbx_snmp_translate() OID:'1.3.6.1.2.1.2.2.1.6.1'
708:20190823:115831.504 End of zbx_snmp_translate() oid_translated:'1.3.6.1.2.1.2.2.1.6.1'
708:20190823:115831.504 In zbx_snmp_get_values() num:1 level:0
708:20190823:115831.510 zbx_snmp_get_values() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 mapping_num:1
708:20190823:115831.511 In zbx_snmp_set_result() type:4
708:20190823:115831.511 In zbx_snmp_get_octet_string()
708:20190823:115831.511 zbx_snmp_get_octet_string() full value:'0:1d:46:8d:a:c0' hint:'1x:'
708:20190823:115831.511 End of zbx_snmp_get_octet_string():''
708:20190823:115831.511 End of zbx_snmp_set_result():SUCCEED
708:20190823:115831.511 End of zbx_snmp_get_values():SUCCEED
708:20190823:115831.511 End of zbx_snmp_process_standard():SUCCEED
708:20190823:115831.511 In zbx_snmp_close_session()

 

Cheers

James

Comment by James Cook [ 2019 Aug 23 ]

Hi Marcis,

I have tried 4.0.11 and its still the same result:

 

 18388:20190823:133645.190 Zabbix Proxy stopped. Zabbix 4.0.11 (revision 53bb6bc0f0)

....

18676:20190823:133841.087 zbx_snmp_get_values() snmp_synch_response() status:0 s_snmp_errno:0 errstat:0 mapping_num:1
18676:20190823:133841.087 In zbx_snmp_set_result() type:4
18676:20190823:133841.087 In zbx_snmp_get_octet_string()
18676:20190823:133841.087 zbx_snmp_get_octet_string() full value:'0:1d:46:8d:a:c0' hint:'1x:'
18676:20190823:133841.087 End of zbx_snmp_get_octet_string():''
18676:20190823:133841.087 End of zbx_snmp_set_result():SUCCEED
18676:20190823:133841.087 End of zbx_snmp_get_values():SUCCEED
18676:20190823:133841.087 End of zbx_snmp_process_standard():SUCCEED
18676:20190823:133841.087 In zbx_snmp_close_session()
18676:20190823:133841.087 End of zbx_snmp_close_session()
18676:20190823:133841.088 End of get_values_snmp()
18676:20190823:133841.088 In zbx_activate_item_host() hostid:71939 itemid:37850861 type:4
18676:20190823:133841.088 End of zbx_activate_item_host()
18676:20190823:133841.088 End of get_values():1

 

Cheers

James

Comment by DaneT [ 2019 Aug 23 ]

Hello James

I see. I will pass it to devs to see what they have to say.
Meanwhile please attach full proxy and zabbix server log.

Comment by James Cook [ 2019 Aug 23 ]

Hi Marcis,

I have run the proxy manually and it does retrieve the values correctly.

I will investigate the environment between the server / proxy and determine if there are differences.

Please wait until I provide more feedback.

Cheers

James 

Comment by DaneT [ 2019 Aug 23 ]

Hello James
Thanks a lot!
Waiting on your results.

Comment by DaneT [ 2019 Aug 23 ]

James, could you please elaborate what do you mean by " running the proxy manually"?
Retrieving value with zabbix_get?

Comment by James Cook [ 2019 Aug 23 ]

Hi Marcis,

Further information...

This is a needle in a haystack that I just happened to catch.

I have a c module loaded on the proxy that was written to enable running of embedded python scripts (super quick rather than external scripts).

It turns out when one of my python scripts that imports easysnmp pip (https://pypi.org/project/easysnmp/) is loaded Zabbix breaks as described earlier.

When I dont  import easysnmp pip Zabbix works.

I then attempted an alternate pip and imported puresnmp pip (https://pypi.org/project/puresnmp) and Zabbix works.

The question I ask and will have to find out is how is this even managing to break Zabbix itself?

I will try to find out what the cause is and get back to you....

Cheers

James

Comment by DaneT [ 2019 Aug 23 ]

Hello James
OK, thanks for the info. Will be waiting to hear from you.

Comment by DaneT [ 2019 Aug 23 ]

Hello [email protected]

I discussed issue with developers. Conclusion is that python script used by easynmp module
loads it's own SNMP library which conflicts with SNMP library used by Zabbix.
Solutions:
1. Compile Zabbix proxy without SNMP module. Might work only with easysnmp script. Rest of the monitored SNMP items might not work at all.
or
2. Use alternate python library - like puresnmp you mentioned, which is a safer way.
Apart from that it can not be considered as a bug on Zabbix side

Comment by James Cook [ 2019 Aug 24 ]

Hi Marcis,

Thanks for discussing with the developers.

That is the conclusion I came to with my colleagues as well yesterday.

I guess its something to be aware of when using loadable modules, that they can in fact overwrite / conflict with Zabbix functions.

Cheers

James

Comment by DaneT [ 2019 Aug 26 ]

Hello James

Thanks for confirming. Closing case.

Comment by DaneT [ 2019 Aug 26 ]

Issue caused by loading custom python script which uses it's own SNMP library causing conflict with SNMP library used by Zabbix





[ZBX-16473] preprocessing steps are ignored for calculated items if host is monitored by proxy Created: 2019 Aug 07  Updated: 2024 Apr 10  Resolved: 2019 Aug 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 4.2.5
Fix Version/s: 4.2.6rc1, 4.4.0alpha2, 4.4 (plan)

Type: Problem report Priority: Blocker
Reporter: Oleksii Zagorskyi Assignee: Andris Zeila
Resolution: Fixed Votes: 0
Labels: calculated, preprocessing, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-16472 query failed when proxy receives conf... Closed
Team: Team A
Team: Team A
Sprint: Sprint 55 (Aug 2019)
Story Points: 0.5

 Description   

See issue summary.



 Comments   
Comment by Vladislavs Sokurenko [ 2019 Aug 08 ]

This will also include fix for:
ZBX-16472

Comment by Vladislavs Sokurenko [ 2019 Aug 08 ]

(7) SIGSEGV if preprocessing is used for item.

==81061== Use of uninitialised value of size 8
==81061==    at 0x4CDBCA: zbx_dbsync_compare_item_preprocs (dbsync.c:3521)
==81061==    by 0x4B4EE5: DCsync_configuration (dbconfig.c:5058)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==    by 0x421B05: main (proxy.c:901)
==81061==  Uninitialised value was created by a stack allocation
==81061==    at 0x4CDAD0: zbx_dbsync_compare_item_preprocs (dbsync.c:3479)
==81061== 
==81061== Invalid read of size 8
==81061==    at 0x4CDBCA: zbx_dbsync_compare_item_preprocs (dbsync.c:3521)
==81061==    by 0x4B4EE5: DCsync_configuration (dbconfig.c:5058)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==    by 0x421B05: main (proxy.c:901)
==81061==  Address 0x8b4dc60 is 16 bytes before a block of size 8,192 free'd
==81061==    at 0x4839A0C: free (vg_replace_malloc.c:540)
==81061==    by 0x48CB2FA: free_root (my_alloc.c:461)
==81061==    by 0x48968F2: mysql_free_result (client.c:1508)
==81061==    by 0x48968F2: mysql_free_result (client.c:1491)
==81061==    by 0x55028F: DBfree_result (db.c:2194)
==81061==    by 0x4CAC73: zbx_dbsync_compare_prototype_items (dbsync.c:1945)
==81061==    by 0x4B4EA7: DCsync_configuration (dbconfig.c:5053)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==  Block was alloc'd at
==81061==    at 0x483880B: malloc (vg_replace_malloc.c:309)
==81061==    by 0x48CCCA7: my_raw_malloc (my_malloc.c:191)
==81061==    by 0x48CCCA7: my_malloc (my_malloc.c:54)
==81061==    by 0x48CAFDF: alloc_root (my_alloc.c:279)
==81061==    by 0x4899095: cli_read_metadata_ex (client.c:2113)
==81061==    by 0x4899B7B: cli_read_query_result (client.c:4895)
==81061==    by 0x489B80F: mysql_real_query (client.c:4939)
==81061==    by 0x489B80F: mysql_real_query (client.c:4926)
==81061==    by 0x550059: zbx_db_vselect (db.c:1650)
==81061==    by 0x53999A: DBselect (db.c:362)
==81061==    by 0x4CAA4F: zbx_dbsync_compare_prototype_items (dbsync.c:1898)
==81061==    by 0x4B4EA7: DCsync_configuration (dbconfig.c:5053)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061== 
 81061:20190808:192816.646 row '(null)'
==81061== Use of uninitialised value of size 8
==81061==    at 0x4CDBEF: zbx_dbsync_compare_item_preprocs (dbsync.c:3522)
==81061==    by 0x4B4EE5: DCsync_configuration (dbconfig.c:5058)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==    by 0x421B05: main (proxy.c:901)
==81061==  Uninitialised value was created by a stack allocation
==81061==    at 0x4CDAD0: zbx_dbsync_compare_item_preprocs (dbsync.c:3479)
==81061== 
==81061== Invalid read of size 8
==81061==    at 0x4CDBEF: zbx_dbsync_compare_item_preprocs (dbsync.c:3522)
==81061==    by 0x4B4EE5: DCsync_configuration (dbconfig.c:5058)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==    by 0x421B05: main (proxy.c:901)
==81061==  Address 0x8b4dc60 is 16 bytes before a block of size 8,192 free'd
==81061==    at 0x4839A0C: free (vg_replace_malloc.c:540)
==81061==    by 0x48CB2FA: free_root (my_alloc.c:461)
==81061==    by 0x48968F2: mysql_free_result (client.c:1508)
==81061==    by 0x48968F2: mysql_free_result (client.c:1491)
==81061==    by 0x55028F: DBfree_result (db.c:2194)
==81061==    by 0x4CAC73: zbx_dbsync_compare_prototype_items (dbsync.c:1945)
==81061==    by 0x4B4EA7: DCsync_configuration (dbconfig.c:5053)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==  Block was alloc'd at
==81061==    at 0x483880B: malloc (vg_replace_malloc.c:309)
==81061==    by 0x48CCCA7: my_raw_malloc (my_malloc.c:191)
==81061==    by 0x48CCCA7: my_malloc (my_malloc.c:54)
==81061==    by 0x48CAFDF: alloc_root (my_alloc.c:279)
==81061==    by 0x4899095: cli_read_metadata_ex (client.c:2113)
==81061==    by 0x4899B7B: cli_read_query_result (client.c:4895)
==81061==    by 0x489B80F: mysql_real_query (client.c:4939)
==81061==    by 0x489B80F: mysql_real_query (client.c:4926)
==81061==    by 0x550059: zbx_db_vselect (db.c:1650)
==81061==    by 0x53999A: DBselect (db.c:362)
==81061==    by 0x4CAA4F: zbx_dbsync_compare_prototype_items (dbsync.c:1898)
==81061==    by 0x4B4EA7: DCsync_configuration (dbconfig.c:5053)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061== 
==81061== Invalid read of size 1
==81061==    at 0x585469A: ____strtol_l_internal (strtol_l.c:292)
==81061==    by 0x58510A3: atoi (atoi.c:27)
==81061==    by 0x4CDBF9: zbx_dbsync_compare_item_preprocs (dbsync.c:3522)
==81061==    by 0x4B4EE5: DCsync_configuration (dbconfig.c:5058)
==81061==    by 0x543784: process_proxyconfig (proxy.c:1910)
==81061==    by 0x42B1A5: process_configuration_sync (proxyconfig.c:112)
==81061==    by 0x42B359: proxyconfig_thread (proxyconfig.c:164)
==81061==    by 0x4EBE52: zbx_thread_start (threads.c:136)
==81061==    by 0x422395: MAIN_ZABBIX_ENTRY (proxy.c:1108)
==81061==    by 0x4E63FA: daemon_start (daemon.c:386)
==81061==    by 0x421B05: main (proxy.c:901)
==81061==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==81061== 
 81061:20190808:192816.652 Got signal [signal:11(SIGSEGV),reason:1,refaddr:(nil)]. Crashing ...

vso RESOLVED in 0ebe59005dcabee638ce2a3175f458c06a01c509

wiper: CLOSED

Comment by Andris Zeila [ 2019 Aug 13 ]

Released ZBX-16473 in:

  • pre-4.2.6rc1 c232a4124b
  • pre-4.4.0alpha2 0dc090043b




[ZBX-16472] query failed when proxy receives configuration from server Created: 2019 Aug 07  Updated: 2019 Aug 09  Resolved: 2019 Aug 09

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 4.2.5
Fix Version/s: None

Type: Incident report Priority: Blocker
Reporter: Oleksii Zagorskyi Assignee: Andris Zeila
Resolution: Duplicate Votes: 0
Labels: preprocessing, proxy, sql
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-16473 preprocessing steps are ignored for c... Closed

 Description   

Having this key:

zabbix[host,,maintenance]

for a host, monitored by zabbix proxy and this item has a pre-processing step (don't ask me why).
When proxy received configuration, it gets this errors:

 20473:20190806:235257.280 received configuration data from server at "127.0.0.1", datalen 3957
 20473:20190806:235257.282 [Z3005] query failed: [1452] Cannot add or update a child row: a foreign key constraint fails (`proxy4.2`.`item_preproc`, CONSTRAINT `c_item_preproc_1` FOREIGN KEY (`itemid`) REFERENCES `items`
 (`itemid`) ON DELETE CASCADE) [insert into item_preproc (item_preprocid,itemid,step,type,params,error_handler,error_handler_params) values (7461,29271,1,6,'',0,'');
]
 20473:20190806:235257.282 failed to update local proxy configuration copy: database error

Reproducible in 4.2.5, so recent ZBX-16308 fix does not cover this case.



 Comments   
Comment by Vladislavs Sokurenko [ 2019 Aug 07 ]

If not easily reproducible then could be same logic as this one:
ZBX-16445

Comment by Vladislavs Sokurenko [ 2019 Aug 09 ]

Thank you for your report, this will be fixed under ZBX-16473





[ZBX-16440] Preprocessing fails if change 'monitored by proxy' Created: 2019 Jul 31  Updated: 2020 Sep 29

Status: Reopened
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 4.2.4
Fix Version/s: None

Type: Problem report Priority: Trivial
Reporter: Maksims Edelmans Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: items, preprocessing, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File zabbix_proxy.log    

 Description   

Steps to reproduce:

Create a host monitored by server with item:

  1. SNMPv1 agent
  2. Type: Numeric (float)
  3. units: dBm
  4. interval: 1min
  5. only 1 preprocessing step: custom multiplier 0.1
  6. change host monitored by proxy:
    update hosts set proxy_hostid = '<id>' where hostid in (select hostid from interface where ip like '<ip>';
  7. zabbix_server -R config_cache_reload
  8. zabbix_proxy -R config_cache_reload
  9. Observe this in latest values (07/31/2019 04:14:37 PM is the moment of change):
    07/31/2019 04:18:36 PM -0.7
    07/31/2019 04:17:36 PM -0.7
    07/31/2019 04:16:51 PM -0.7
    07/31/2019 04:14:37 PM -7
    07/31/2019 04:13:36 PM -0.8
    07/31/2019 04:12:36 PM -0.8
    07/31/2019 04:11:36 PM -0.8

 



 Comments   
Comment by Kaspars Mednis [ 2019 Aug 01 ]

Hello Maksim,

Can you attach the log file from the affected proxy ? I want to correlate the log file with your latest values

 

Comment by Maksims Edelmans [ 2019 Aug 01 ]

zabbix_proxy.log

Comment by Kaspars Mednis [ 2019 Aug 01 ]

what is the IP of the affected device ?

Comment by Maksims Edelmans [ 2019 Aug 01 ]

There are many of them.

For example:

172.28.16.79

172.28.16.30

172.28.16.2

Comment by Kaspars Mednis [ 2019 Aug 01 ]

Yes, i understand,  but this particular one from the latest data preview is which IP?

Comment by Maksims Edelmans [ 2019 Aug 01 ]

172.28.0.15

Comment by Kaspars Mednis [ 2019 Aug 01 ]

Here are the parts responsible for your data collection from proxy, the wrong value 07/31/2019 04:14:37 PM -7 was received exactly at the time when you forced the reload of configuration cache, which i'm currently unable to reproduce.

Are both Zabbix server and Zabbix proxy versions 4.2.4 ? the only way how to check this is by executing from commandline :

zabbix_server -V
zabbix_proxy -V

 

20001:20190731:161437.929 forced reloading of the configuration cache
20001:20190731:161455.212 received configuration data from server at "192.168.10.23", datalen 121006155
20001:20190731:161533.800 slow query: 6.502873 sec, "select i.itemid,i.hostid,i.status,i.type,i.value_type,i.key_,i.snmp_community,i.snmp_oid,i.port,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.ipmi_sensor,i.delay,i.trapper_hosts,i.logtimefmt,i.params,i.state,i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.interfaceid,i.snmpv3_authprotocol,i.snmpv3_privprotocol,i.snmpv3_contextname,i.lastlogsize,i.mtime,i.history,i.trends,i.inventory_link,i.valuemapid,i.units,i.error,i.jmx_endpoint,i.master_itemid,i.timeout,i.url,i.query_fields,i.posts,i.status_codes,i.follow_redirects,i.post_type,i.http_proxy,i.headers,i.retrieve_mode,i.request_method,i.output_format,i.ssl_cert_file,i.ssl_key_file,i.ssl_key_password,i.verify_peer,i.verify_host,i.allow_traps,i.templateid,id.parent_itemid from items i inner join hosts h on i.hostid=h.hostid left join item_discovery id on i.itemid=id.itemid where h.status in (0,1) and i.flags<>2"
20001:20190731:161541.249 slow query: 4.752467 sec, "select pp.item_preprocid,pp.itemid,pp.type,pp.params,pp.step,i.hostid,pp.error_handler,pp.error_handler_params from item_preproc pp,items i,hosts h where pp.itemid=i.itemid and i.hostid=h.hostid and h.proxy_hostid is null and h.status in (0,1) and i.flags<>2 order by pp.itemid"
Comment by Maksims Edelmans [ 2019 Aug 01 ]

[root@zabbix-server-node1 maksimse]# zabbix_server -V
zabbix_server (Zabbix) 4.2.4

 

[root@dev-zabbix-proxy maksimse]# zabbix_proxy -V
zabbix_proxy (Zabbix) 4.2.5

 

Comment by Maksims Edelmans [ 2019 Aug 01 ]

Updating proxy_hostid and reloading cache was done at the same time - 16:14

Comment by Kaspars Mednis [ 2019 Aug 02 ]

I'm still unable to reproduce this, are you using some script for this -  like update and immediate config cache reload at the same time ? the value 

07/31/2019 04:14:37 PM -7

is collected in the same second as config_cache reload

20001:20190731:161437.929 forced reloading of the configuration cache

are you executing check now in the same script ?

 

Comment by Maksims Edelmans [ 2019 Aug 02 ]

No, I am not and was not using any script for this operation.

I was not executing check now command.

I executed sql command mentioned above and then reloaded configuration cache to force zabbix collect information faster.

 

Comment by Maksims Edelmans [ 2019 Aug 02 ]

I just executed the same sql command but without reloading config cache afterwards - no problems. Seems like problem occurs only when reloading cache manually.

Comment by Maksims Edelmans [ 2019 Oct 30 ]

I just reproduced same issue without reloading config cache.

After moving checks from zabbix server back to proxy this way:

MariaDB [zabbix]> select hostid,host from hosts where status = 5;

{{MariaDB [zabbix]> update hosts set proxy_hostid = 155853 where hostid in (select }}
{{ hostid from host_inventory where tag = 155853);}}

we received a lot of false alarms due to some preprocessing (it is set Custom Multiplier = 0.1 in our case) issue:

host 1:

10/30/2019 01:07:36 PM -6
10/30/2019 01:06:36 PM -0.6
10/30/2019 01:05:36 PM -0.6

 

host 2:

10/30/2019 01:07:37 PM -33
10/30/2019 01:06:37 PM -3.3
10/30/2019 01:05:37 PM -3.4

 

host 3:

10/30/2019 01:11:04 PM -1.2
10/30/2019 01:07:58 PM -12
10/30/2019 01:06:58 PM -11
10/30/2019 01:05:58 PM -1.1

 

Any comments, support team?

Comment by Maksims Edelmans [ 2020 Sep 18 ]

Zabbix Team,

Any updates regarding this issue?

This is still present in version 5.0

Are you ignoring this?

Comment by Renats Valiahmetovs (Inactive) [ 2020 Sep 28 ]

Hello Maksims,

I am sorry for the terrible delay, I will attempt to provide some information asap.

Best Regards,

Renats





[ZBX-16264] Proxy doesn't require TLSAccept Created: 2019 Jun 14  Updated: 2024 Apr 10  Resolved: 2019 Jul 07

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.0.9
Fix Version/s: 4.4 (plan)

Type: Documentation task Priority: Trivial
Reporter: Pascal Uhlmann Assignee: Andrejs Kozlovs
Resolution: Fixed Votes: 0
Labels: proxy, tls, tls_accept, tls_connect
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 18.04.2 LTS


Team: Team A
Team: Team A
Sprint: Sprint 53 (Jun 2019), Sprint 54 (Jul 2019)
Story Points: 0

 Description   

According to the documentation the configuration parameter TLSAccept is mandatory "if TLS certificate or PSK parameters are defined". But in fact the proxy also works without setting this parameter. In contrast the agent fails to start if TLSAccept is missing.

The relevant proxy configuration parameters are set as follows:

ProxyMode=0
TLSConnect=psk
TLSPSKIdentity=proxy_identity
TLSPSKFile=/etc/zabbix/proxy_psk_file

So if it really needs to be set the proxy should behave like the agent and refuse to start. Otherwise the documentation should be corrected.



 Comments   
Comment by Andrejs Sitals [ 2019 Jun 14 ]

Documentation says that TLSAccept is "Used for a passive proxy, ignored on an active proxy." In your case proxy is in active mode (ProxyMode=0).

Comment by Pascal Uhlmann [ 2019 Jun 14 ]

OK, that makes sense. But anyway I'd suggest to clarify the documentation of TLSAccept and TLSConnect. For example it could be changed to the following:

TLSAccept:   yes for passive proxy, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no
TLSConnect:   yes for active proxy, if TLS certificate or PSK parameters are defined (even for unencrypted connection), otherwise no

Comment by Andrejs Kozlovs [ 2019 Jun 19 ]

Agree, "Mandatory" field should be updated accordingly for TLSAccept and TLSConnect . "Description" field dos not give full understanding about those parameters mandatory.





[ZBX-16004] No data collected through zabbix proxy 4.2 after update Created: 2019 Apr 16  Updated: 2023 Apr 17  Resolved: 2019 Apr 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.2.0
Fix Version/s: None

Type: Problem report Priority: Critical
Reporter: Клыков Александр Assignee: Zabbix Support Team
Resolution: Commercial support required Votes: 0
Labels: proxy, self-monitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Proxy no data.png     PNG File screenshot-1.png     File zabbix_agentd (on proxy 1).conf     Text File zabbix_agentd (on proxy 1).log     File zabbix_agentd (on server).conf     Text File zabbix_agentd (on server).log     File zabbix_proxy_1.conf     Text File zabbix_proxy_1.log     File zabbix_server.conf     Text File zabbix_server.log    

 Description   

Good day ! 

Yesterday we updated our system from 4.0.5 to 4.2.0 (server, agent, proxy) and after update we watch that data no collect and self-monitoring proxy also don't working ! Please help.

There are no errors in logs (server, agent, proxy).



 Comments   
Comment by Vladislavs Sokurenko [ 2019 Apr 16 ]

Please restart all components and provide logs with startup info

Comment by Клыков Александр [ 2019 Apr 16 ]

Logs in attachment. Last reboot was yesterday (some reboots).

Comment by Vladislavs Sokurenko [ 2019 Apr 16 ]

There is following error:

  9539:20190415:193406.459 [Z3005] query failed: [0] attempt to write a readonly database [insert into globalmacro (globalmacroid,macro,value) values (2,'{$SNMP_COMMUNITY}','mvs_monitor');
insert into globalmacro (globalmacroid,macro,value) values (3,'{$URSAUTOEXPORT}','C:\AvtoUraganConfigExport\UrsAutoExport.ini');
]

Zabbix proxy cannot work with read only database, no indication of a bug in Zabbix, closing as commercial support required

Comment by Josh Soref [ 2023 Apr 17 ]

In my case, the database was apparently owned by root:root and a simple chown zabbix:zabbix fixed it.

The error reporting is really terrible. My guess is it's also sometimes reported as https://support.zabbix.com/browse/ZBX-15602 or https://support.zabbix.com/browse/ZBX-19870  .





[ZBX-15991] Proxy net.dns check crashes agent Created: 2019 Apr 15  Updated: 2019 Apr 15  Resolved: 2019 Apr 15

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G)
Affects Version/s: 4.2.0
Fix Version/s: None

Type: Problem report Priority: Major
Reporter: Belokurov Anton Assignee: Zabbix Support Team
Resolution: Duplicate Votes: 0
Labels: crash, items, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Agent 4.2.0 Rev. 91746 installed on Windows Server 2012 R2
Zabbix Proxy 4.2.0 Rev. 91746 installed on CentOS 7.6.1810


Attachments: Text File crash_zabbix_agentd.log    
Issue Links:
Duplicate
duplicates ZBX-15972 Agent crashes on Windows Server Core ... Closed

 Description   

After update Zabbix Proxy from 4.0.6 to 4.2.0 active checks of net.dns crash Zabbix agent.

Zabbix Agent service is not starting, until net.dns check will be disabled.

Local checks via cmd  (zabbix_agentd.exe -t net.dns[10.1.124.4,domain.local,A]) is OK, agent successfully returns data.

zabbix_get from Zabbix Proxy (zabbix_get -s server3.domain.local -k net.dns[10.1.124.4,domain.local,A]) also crashes Zabbix Agent, after execution zabbix_get prints following error:
zabbix_get [18854]: Get value error: ZBX_TCP_READ() failed: [104] Connection reset by peer
zabbix_get [18854]: Check access restrictions in Zabbix agent configuration
 
Downgrading of Zabbix Agent not solving problem.



 Comments   
Comment by Glebs Ivanovskis [ 2019 Apr 15 ]

Duplicates ZBX-15972?

Comment by Vladislavs Sokurenko [ 2019 Apr 15 ]

Thank you for your report, closing as a duplicate of ZBX-15972





[ZBX-15484] Zabbix proxy can wait long time if increment offset is not 1 Created: 2019 Jan 21  Updated: 2024 Apr 10  Resolved: 2020 May 15

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.0.24, 4.0.3
Fix Version/s: 4.0.21rc1, 4.4.9rc1, 5.0.1rc1, 5.2.0alpha1, 5.2 (plan)

Type: Problem report Priority: Trivial
Reporter: Alexey Pustovalov Assignee: Michael Veksler
Resolution: Fixed Votes: 0
Labels: database, documentation, offset, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File mysqlclient.txt    
Issue Links:
Causes
causes ZBX-17801 Zabbix Server cannot connect to mysql DB Closed
Duplicate
Team: Team C
Team: Team C
Sprint: Sprint 62 (Mar 2020), Sprint 63 (Apr 2020), Sprint 64 (May 2020)
Story Points: 0.5

 Description   

It is better to document such behaviour in official documentation.

Zabbix proxy checks proxy history iteration number and if difference more than one it trying to wait uncommitted data, while increment offset is not 1 it is possible to wait forever.



 Comments   
Comment by Marina Generalova (Inactive) [ 2020 Mar 03 ]

Documentation updated:

Comment by Glebs Ivanovskis [ 2020 Mar 04 ]

What is "increment offset"? It hasn't been mentioned in Zabbix documentation before that and there are no external links to the definition. dotneft, could you please explain?

Comment by Alexey Pustovalov [ 2020 Mar 04 ]

For example this one: https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_auto_increment_offset

Comment by Glebs Ivanovskis [ 2020 Mar 04 ]

I see that database creation scripts should set this explicitly for Oracle, it is handled around here. Why can't it be done for MySQL as well here, kinda auto_increment = 1? I guess it can be done for PostgreSQL as well. SQLite seems to always start with 1. After this is done there seems to be no need in cryptic notes in documentation...

arimdjonoks It cannot be done for MySQL because MySQL has no SEQUENCE database object. We could try to write a procedure that would somehow simulate SEQUENCE but it seems like using the session auto_increment variable would be simpler and less error-prone. PostgreSQL does not need to be changed because it has no global variables. This is MySQL specific problem as only MySQL supports global variables.

cyclone Dear arimdjonoks, I don't fully understand, why do we need a sequence object in MySQL to achieve this. Both CREATE TABLE and ALTER TABLE support AUTO_INCREMENT = N syntax which sets initial value for auto increment sequence. It is the same thing auto_increment_offset is supposed to do. Unfortunately, I cannot find any information in MySQL documentation on which one takes precedence if both (table option and global/session variable) are specified. In case AUTO_INCREMENT = 1 takes upper hand, you just need to modify DB creation scripts. If auto_increment_offset turns out to have more power, then Zabbix must explicitly set this variable as part of starting MySQL session for proxy, because proxy's operation depends on this. Don't you agree?

arimdjonoks
Dear cyclone,
1) Why do I need a sequence object?
I am interested in sequence object - in Oracle because it does two things - sets the starting position and also sets the increment value. I would be happy to implement this solution in MySQL if it supported it.
2) AUTO_INCREMENT = 1 indeed takes the precedence over the global auto_increment_offset value. (in my tests). This could be a solution to this specific problem, however:
2.1) I just like you could not find the documentation about the precedence about this anywhere. I am not that sure it will work in various versions of MySQL, MariaDB, ISAM vs InnoDB etc.
2.2) In addition to this, I also need to consider the scenario when a user sets up a global auto_increment_increment value (not just auto_increment_offset). I do not see a way how to overrule it by using the alter table approach. The only proper way I could find to overrule this potential conflict is by using the session variable. Considering I have to do this anyway for auto_increment_increment - I could also do this for auto_increment_offset as well.

cyclone Dear arimdjonoks, we are on the same page regarding 1). It's a pity this corner of SQL isn't standardized, but we have what we have...
Regarding 2.1) — filing a documentation request for MySQL seems to be the best way forward. Clearly there is something missing.
Regarding 2.2) — original issue Summary, Description and also the note added to Zabbix documentation talks specifically about offset. But I'm actually happy to see that you bring increment into the question as well. The only way I can imagine to address them both would be mysql_options() + MYSQL_INIT_COMMAND:

MYSQL mysql;

mysql_init(&mysql);
mysql_options(&mysql, MYSQL_INIT_COMMAND, "set auto_increment_offset=1,auto_increment_increment=1");

arimdjonoks
Dear cyclone,
That is pretty much what I had in mind, yes. (Except I used zbx_execute() to set the up but mysql_options with MYSQL_INIT_COMMAND seems to be better suited)
Also,

set auto_increment_offset=1,auto_increment_increment=1

by default sets the session variables, however I would like to be explicit in this case:

set @@session.auto_increment_offset=1,@@session.auto_increment_increment=1

cyclone Dear arimdjonoks, running statements explicitly (with zbx_execute() or similar) will suffer from issues similar to what's described here.

arimdjonoks
Dear cyclone,
Significant inconvenience with using mysql_options() is that it is deprecated in MariaDB (replaced with mysql_optionsv() which is not available in MySQL). I will write a test to detect if either of them works in the m4.

cyclone Oh, I wasn't aware of that. However, "deprecated" does not mean it cannot be used. They don't say when it will be removed, so I guess they hugely depend on MySQL. Unless MySQL introduces their version of mysql_optionsv(), MariaDB won't be able to remove mysql_options(), otherwise they loose "drop-in replacement for MySQL" feature. I'd say for now you are safe to use mysql_options() for both. But I'm not here to teach you. Good luck!

<asitals> FYI, using AUTO_INCREMENT = N in CREATE TABLE or ALTER TABLE is not reliable as it used to lose effect after rebooting the server before MySQL 8. I can't find it in documentation anymore (though, I saw that doc page just an hour ago ), but here are some other links - bug #199, worklog #6204. Same applies to MariaDB up to 10.2.3 (it was changed in 10.2.4).

Comment by Alexander Vladishev [ 2020 Mar 04 ]

I agree with cyclone. I reopen this issue to fix it for MySQL database. Seems PostgreSQL doesn't affected by this problem.

Comment by Artjoms Rimdjonoks [ 2020 May 13 ]

Available in versions:





[ZBX-15082] Cannot delete proxy - SQL statement execution has failed Created: 2018 Oct 29  Updated: 2018 Nov 13  Resolved: 2018 Nov 06

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 3.4.13
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Marco Hofmann Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian 9 stretch amd64
Installed via repo.zabbix.com


Attachments: PNG File error-message.png    

 Description   

Steps to reproduce:

  1. I created passive Proxys serveral years ago, must have been version 2.0
  2. Now I have to delete them.
  3. I navigate to Administration -> Proxys
  4. Try to delete Proxy, after no Hosts are configured with it.
  5. -> Error message

Result:

Error in query [DELETE FROM interface WHERE hostid='10085'] [Cannot delete or update a parent row: a foreign key constraint fails (`zabbix`.`items`, CONSTRAINT `c_items_4` FOREIGN KEY (`interfaceid`) REFERENCES `interface` (`interfaceid`))]
SQL statement execution has failed "DELETE FROM interface WHERE hostid='10085'"

Expected:
Proxys gets deleted.

Several more details in my Forum Post:
https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/358661-cannot-delete-proxy-sql-statement-execution-has-failed



 Comments   
Comment by Alexander Vladishev [ 2018 Oct 29 ]

Looks like a broken database. Perhaps this is caused by bugs in the API in older versions of Zabbix.

The best way to fix this problem is to manually remove incorrectly linked items.

SQL statement to view these items:

SELECT itemid,hostid,key_ FROM items WHERE interfaceid IN (SELECT interfaceid FROM interface WHERE hostid=10085)
Comment by Marco Hofmann [ 2018 Oct 29 ]

>The best way to fix this problem is to manually remove incorrectly linked items.

How would I get this sorted out?

Output of your query:

MariaDB [zabbix]> SELECT itemid,hostid,key_ FROM items WHERE interfaceid IN (SELECT interfaceid FROM interface WHERE hostid=10085);
+--------+--------+-------------------------------+
| itemid | hostid | key_                          |
+--------+--------+-------------------------------+
|  24866 |  10085 | kernel.maxfiles               |
|  24867 |  10085 | kernel.maxproc                |
|  24868 |  10085 | net.if.discovery              |
|  24869 |  10085 | net.if.in[{#IFNAME}]          |
|  24870 |  10085 | net.if.out[{#IFNAME}]         |
|  24871 |  10085 | proc.num[,,run]               |
|  24872 |  10085 | proc.num[]                    |
|  24873 |  10085 | system.boottime               |
|  24874 |  10085 | system.cpu.intr               |
|  24875 |  10085 | system.cpu.load[percpu,avg15] |
|  24876 |  10085 | system.cpu.load[percpu,avg1]  |
|  24877 |  10085 | system.cpu.load[percpu,avg5]  |
|  24878 |  10085 | system.cpu.switches           |
|  24879 |  10085 | system.cpu.util[,idle]        |
|  24880 |  10085 | system.cpu.util[,interrupt]   |
|  24881 |  10085 | system.cpu.util[,iowait]      |
|  24882 |  10085 | system.cpu.util[,nice]        |
|  24883 |  10085 | system.cpu.util[,softirq]     |
|  24884 |  10085 | system.cpu.util[,steal]       |
|  24885 |  10085 | system.cpu.util[,system]      |
|  24886 |  10085 | system.cpu.util[,user]        |
|  24887 |  10085 | system.hostname               |
|  24888 |  10085 | system.localtime              |
|  24889 |  10085 | system.swap.size[,free]       |
|  24890 |  10085 | system.swap.size[,pfree]      |
|  24891 |  10085 | system.swap.size[,total]      |
|  24892 |  10085 | system.uname                  |
|  24893 |  10085 | system.uptime                 |
|  24894 |  10085 | system.users.num              |
|  24895 |  10085 | vfs.file.cksum[/etc/passwd]   |
|  24896 |  10085 | vfs.fs.discovery              |
|  24897 |  10085 | vfs.fs.inode[{#FSNAME},pfree] |
|  24898 |  10085 | vfs.fs.size[{#FSNAME},free]   |
|  24899 |  10085 | vfs.fs.size[{#FSNAME},pfree]  |
|  24900 |  10085 | vfs.fs.size[{#FSNAME},total]  |
|  24901 |  10085 | vfs.fs.size[{#FSNAME},used]   |
|  24902 |  10085 | vm.memory.size[available]     |
|  24903 |  10085 | vm.memory.size[total]         |
|  48304 |  10085 | icmppingloss[]                |
|  48305 |  10085 | icmppingsec[]                 |
|  48306 |  10085 | icmpping[]                    |
|  48753 |  10085 | net.tcp.service[tcp,,1494]    |
+--------+--------+-------------------------------+
42 rows in set (0.00 sec)
Comment by Edgars Melveris [ 2018 Nov 06 ]

Closing this as not a bug, let's continue in the forum.

Comment by Marco Hofmann [ 2018 Nov 13 ]

The solution for others that might face the same problem:

 

DELETE FROM `zabbix`.`items` WHERE `itemid` IN (24866,24867,24868,24869,24870,24871,24872,24873,24874,24875,24876,24877,24878,24879,24880,24881,24882,24883,24884,24885,24886,24887,24888,24889,24890,24891,24892,24893,24894,24895,24896,24897,24898,24899,24900,24901,24902,24903,48304,48305,48306,48753);

 





[ZBX-15018] Proxy not accepting commas on Server option Created: 2018 Oct 17  Updated: 2018 Oct 17  Resolved: 2018 Oct 17

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 4.0.0
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Danilo G. Baio Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Steps to reproduce:

  1. Config two or more addresses on Server option
  2. Try to start the proxy

Result:

/usr/local/sbin/zabbix_proxy -c /usr/local/etc/zabbix4/zabbix_proxy.conf
zabbix_proxy [32462]: ERROR: invalid "Server" configuration parameter: '177.XX.XXX.XX,172.16.1.50,10.0.5.50'

Expected:

### Option: Server
[...]
#     List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of }}{{Zabbix server.
#     Incoming connections will be accepted only from the addresses listed here.
#     If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
#     and '::/0' will allow any IPv4 or IPv6 address.
#     '0.0.0.0/0' can be used to allow any IPv4 address.
#     Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
[...]
# Server=

 



 Comments   
Comment by Edgars Melveris [ 2018 Oct 17 ]

Hello Danilo!

Can you please attach full zabbix_proxy.conf file? At least, paste this option here:

ProxyMode=
Comment by Danilo G. Baio [ 2018 Oct 17 ]

Server=177.XX.XXX.XX,172.16.1.50,10.0.5.50
ServerPort=10051
Hostname=xxxxxx_21
ListenIP=0.0.0.0
ListenPort=10051
PidFile=/var/run/zabbix-proxy/zabbix_proxy.pid
DBName=/var/db/zabbix-proxy/proxy.db
LogFile=/var/log/zabbix-proxy/zabbix_proxy.log
ConfigFrequency=3600
FpingLocation=/usr/local/sbin/fping
Fping6Location=/usr/local/sbin/fping6
ProxyMode=0
TLSConnect=unencrypted
TLSAccept=unencrypted
StartSNMPTrapper=0
SNMPTrapperFile=/tmp/zabbix_traps.tmp
TrapperTimeout=300
StartTrappers=5

Comment by richlv [ 2018 Oct 17 ]

I guess what Edgars was aiming for can be seen above. ProxyMode of 0 is active, and active proxy does not support multiple server addresses (that can be seen in the config file comments that were excluded from the issue description).

Comment by Danilo G. Baio [ 2018 Oct 17 ]

I understand.
Actually we were using this way with 3.0.X.
Definitely not a bug.
Thank you.

Comment by Danilo G. Baio [ 2018 Oct 17 ]

Not a bug





[ZBX-14833] Monitoring -> Discovery can display hosts from different proxies Created: 2018 Sep 11  Updated: 2024 Apr 10  Resolved: 2018 Nov 06

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 3.0.21, 3.4.13
Fix Version/s: 3.0.24rc1, 4.0.2rc1, 4.2.0alpha1, 4.2 (plan)

Type: Problem report Priority: Critical
Reporter: Alexey Pustovalov Assignee: Ivo Kurzemnieks
Resolution: Fixed Votes: 0
Labels: networkdiscovery, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-14472 Wrong hosts shown in Monitoring -> Di... Closed
duplicates ZBX-11753 Zabbix Discovery Maps Incorrect Monit... Closed
Team: Team B
Team: Team B
Sprint: Sprint 42, Sprint 43, Sprint 44, Sprint 45, Sprint 46, Nov 2018
Story Points: 0.5

 Description   

For example, if a discovery is performed from Proxy A, but Proxy B has a host with the same IP address like discovered host/IP from proxy A. In this case Monitoring->Discovery can show host from incorrect proxy B.



 Comments   
Comment by Ivo Kurzemnieks [ 2018 Sep 12 ]

RESOLVED in svn://svn.zabbix.com/branches/dev/ZBX-14833

Comment by Alexander Vladishev [ 2018 Oct 03 ]

(4) [D] Documentation needs to be updated

iivs RESOLVED

sasha CLOSED

Comment by Alexander Vladishev [ 2018 Nov 06 ]

Fixed in:

  • 3.0.24rc1 r86546
  • 4.0.2rc1 r86549
  • 4.2.0alpha1 (trunk) r86560




[ZBX-14485] Proxy fails to execute web scenario, failed to update local proxy configuration copy: column "items.params" cannot be null Created: 2018 Jun 15  Updated: 2018 Jul 13  Resolved: 2018 Jul 13

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.4.10
Fix Version/s: None

Type: Problem report Priority: Blocker
Reporter: Cloud Ops Assignee: Unassigned
Resolution: Commercial support required Votes: 0
Labels: proxy, webcheck, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File zabbix_proxy.log    

 Description   

We've set up a Zabbix Proxy but can't get it to execute web monitoring scenarios.  We get the error "failed to update local proxy configuration copy: column "items.params" cannot be null".  We've tried using PostgreSQL, MySQL, and SQLite as our proxy DB.  We've tried lifting the non-null constraint from the params column of the items table.  We've configured it as both an active and passive proxy.  We've tried versions 3.4.2, 3.4.8,  and 3.4.10.  (The server is running 3.4.8.)  We still get the same error message.

zabbix-get-3.4.10-1.el7.x86_64
zabbix-proxy-pgsql-3.4.10-1.el7.x86_64
zabbix-release-3.4-2.el7.noarch

Steps to reproduce:

  1. Create proxy
  2. Set up web scenario
  3. Assign host to proxy
  4. Check proxy log when no data collected

Result:

From /var/log/zabbix/zabbix_proxy.log:

12410:20180615:190847.385 query [txnlev:1] [select itemid,type,snmp_community,snmp_oid,hostid,key_,delay,status,value_type,trapper_hosts,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,lastlogsize,logtimefmt,params,ipmi_sensor,authtype,username,password,publickey,privatekey,mtime,flags,interfaceid,port,snmpv3_authprotocol,snmpv3_privprotocol,snmpv3_contextname,jmx_endpoint from items]
12410:20180615:190847.386 End of process_proxyconfig_table():FAIL
12410:20180615:190847.386 query [txnlev:1] [rollback;]
12410:20180615:190847.386 failed to update local proxy configuration copy: column "items.params" cannot be null
12410:20180615:190847.386 End of process_proxyconfig()
12410:20180615:190847.386 End of process_configuration_sync()
12410:20180615:190847.386 __zbx_zbx_setproctitle() title:'configuration syncer [synced config 4544 bytes in 0.037040 sec, idle 3600 sec]'
12421:20180615:190848.334 __zbx_zbx_setproctitle() title:'self-monitoring [processing data]'

 

Versions:

zabbix-get-3.4.10-1.el7.x86_64
zabbix-proxy-pgsql-3.4.10-1.el7.x86_64
zabbix-release-3.4-2.el7.noarch

 



 Comments   
Comment by Cloud Ops [ 2018 Jun 15 ]

[centos]# pg_dump -U zabbix zabbix -t items --schema-only

-- PostgreSQL database dump

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: items; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
--

CREATE TABLE items (
 itemid bigint NOT NULL,
 type integer DEFAULT 0 NOT NULL,
 snmp_community character varying(64) DEFAULT ''::character varying NOT NULL,
 snmp_oid character varying(512) DEFAULT ''::character varying NOT NULL,
 hostid bigint NOT NULL,
 name character varying(255) DEFAULT ''::character varying NOT NULL,
 key_ character varying(255) DEFAULT ''::character varying NOT NULL,
 delay character varying(1024) DEFAULT '0'::character varying NOT NULL,
 history character varying(255) DEFAULT '90d'::character varying NOT NULL,
 trends character varying(255) DEFAULT '365d'::character varying NOT NULL,
 status integer DEFAULT 0 NOT NULL,
 value_type integer DEFAULT 0 NOT NULL,
 trapper_hosts character varying(255) DEFAULT ''::character varying NOT NULL,
 units character varying(255) DEFAULT ''::character varying NOT NULL,
 snmpv3_securityname character varying(64) DEFAULT ''::character varying NOT NULL,
 snmpv3_securitylevel integer DEFAULT 0 NOT NULL,
 snmpv3_authpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
 snmpv3_privpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
 formula character varying(255) DEFAULT ''::character varying NOT NULL,
 error character varying(2048) DEFAULT ''::character varying NOT NULL,
 lastlogsize numeric(20,0) DEFAULT 0::numeric NOT NULL,
 logtimefmt character varying(64) DEFAULT ''::character varying NOT NULL,
 templateid bigint,
 valuemapid bigint,
 params text,
 ipmi_sensor character varying(128) DEFAULT ''::character varying NOT NULL,
 authtype integer DEFAULT 0 NOT NULL,
 username character varying(64) DEFAULT ''::character varying NOT NULL,
 password character varying(64) DEFAULT ''::character varying NOT NULL,
 publickey character varying(64) DEFAULT ''::character varying NOT NULL,
 privatekey character varying(64) DEFAULT ''::character varying NOT NULL,
 mtime integer DEFAULT 0 NOT NULL,
 flags integer DEFAULT 0 NOT NULL,
 interfaceid bigint,
 port character varying(64) DEFAULT ''::character varying NOT NULL,
 description text DEFAULT ''::text NOT NULL,
 inventory_link integer DEFAULT 0 NOT NULL,
 lifetime character varying(255) DEFAULT '30d'::character varying NOT NULL,
 snmpv3_authprotocol integer DEFAULT 0 NOT NULL,
 snmpv3_privprotocol integer DEFAULT 0 NOT NULL,
 state integer DEFAULT 0 NOT NULL,
 snmpv3_contextname character varying(255) DEFAULT ''::character varying NOT NULL,
 evaltype integer DEFAULT 0 NOT NULL,
 jmx_endpoint character varying(255) DEFAULT ''::character varying NOT NULL,
 master_itemid bigint
);


ALTER TABLE public.items OWNER TO postgres;

--
-- Name: items_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
--

ALTER TABLE ONLY items
 ADD CONSTRAINT items_pkey PRIMARY KEY (itemid);


--
-- Name: items_1; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--

CREATE UNIQUE INDEX items_1 ON items USING btree (hostid, key_);


--
-- Name: items_3; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--

CREATE INDEX items_3 ON items USING btree (status);


--
-- Name: items_4; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--

CREATE INDEX items_4 ON items USING btree (templateid);


--
-- Name: items_5; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--

CREATE INDEX items_5 ON items USING btree (valuemapid);


--
-- Name: items_6; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--

CREATE INDEX items_6 ON items USING btree (interfaceid);


--
-- Name: items_7; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
--

CREATE INDEX items_7 ON items USING btree (master_itemid);


--
-- Name: c_items_1; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY items
 ADD CONSTRAINT c_items_1 FOREIGN KEY (hostid) REFERENCES hosts(hostid) ON DELETE CASCADE;


--
-- Name: c_items_2; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY items
 ADD CONSTRAINT c_items_2 FOREIGN KEY (templateid) REFERENCES items(itemid) ON DELETE CASCADE;


--
-- Name: c_items_3; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY items
 ADD CONSTRAINT c_items_3 FOREIGN KEY (valuemapid) REFERENCES valuemaps(valuemapid);


--
-- Name: c_items_4; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY items
 ADD CONSTRAINT c_items_4 FOREIGN KEY (interfaceid) REFERENCES interface(interfaceid);


--
-- Name: c_items_5; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY items
 ADD CONSTRAINT c_items_5 FOREIGN KEY (master_itemid) REFERENCES items(itemid) ON DELETE CASCADE;


--
-- PostgreSQL database dump complete
--
Comment by Vladislavs Sokurenko [ 2018 Jun 16 ]

Could you also please do the same on Zabbix proxy ?

It should have been:

params text DEFAULT ''::text NOT NULL,

But looks like you have

params text,

 

Comment by Cloud Ops [ 2018 Jun 18 ]

This was done on the Zabbix proxy.  We tried modifying the default and not null constraints to work around the problem but it didn't help.

 

Comment by Cloud Ops [ 2018 Jun 20 ]

We reinstalled the Zabbix DB with the same results, here is the table creation:

 

– PostgreSQL database dump

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;


– Name: items; Type: TABLE; Schema: public; Owner: postgres; Tablespace:

CREATE TABLE items (
itemid bigint NOT NULL,
type integer DEFAULT 0 NOT NULL,
snmp_community character varying(64) DEFAULT ''::character varying NOT NULL,
snmp_oid character varying(512) DEFAULT ''::character varying NOT NULL,
hostid bigint NOT NULL,
name character varying(255) DEFAULT ''::character varying NOT NULL,
key_ character varying(255) DEFAULT ''::character varying NOT NULL,
delay character varying(1024) DEFAULT '0'::character varying NOT NULL,
history character varying(255) DEFAULT '90d'::character varying NOT NULL,
trends character varying(255) DEFAULT '365d'::character varying NOT NULL,
status integer DEFAULT 0 NOT NULL,
value_type integer DEFAULT 0 NOT NULL,
trapper_hosts character varying(255) DEFAULT ''::character varying NOT NULL,
units character varying(255) DEFAULT ''::character varying NOT NULL,
snmpv3_securityname character varying(64) DEFAULT ''::character varying NOT NULL,
snmpv3_securitylevel integer DEFAULT 0 NOT NULL,
snmpv3_authpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
snmpv3_privpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
formula character varying(255) DEFAULT ''::character varying NOT NULL,
error character varying(2048) DEFAULT ''::character varying NOT NULL,
lastlogsize numeric(20,0) DEFAULT 0::numeric NOT NULL,
logtimefmt character varying(64) DEFAULT ''::character varying NOT NULL,
templateid bigint,
valuemapid bigint,
params text DEFAULT ''::text NOT NULL,
ipmi_sensor character varying(128) DEFAULT ''::character varying NOT NULL,
authtype integer DEFAULT 0 NOT NULL,
username character varying(64) DEFAULT ''::character varying NOT NULL,
password character varying(64) DEFAULT ''::character varying NOT NULL,
publickey character varying(64) DEFAULT ''::character varying NOT NULL,
privatekey character varying(64) DEFAULT ''::character varying NOT NULL,
mtime integer DEFAULT 0 NOT NULL,
flags integer DEFAULT 0 NOT NULL,
interfaceid bigint,
port character varying(64) DEFAULT ''::character varying NOT NULL,
description text DEFAULT ''::text NOT NULL,
inventory_link integer DEFAULT 0 NOT NULL,
lifetime character varying(255) DEFAULT '30d'::character varying NOT NULL,
snmpv3_authprotocol integer DEFAULT 0 NOT NULL,
snmpv3_privprotocol integer DEFAULT 0 NOT NULL,
state integer DEFAULT 0 NOT NULL,
snmpv3_contextname character varying(255) DEFAULT ''::character varying NOT NULL,
evaltype integer DEFAULT 0 NOT NULL,
jmx_endpoint character varying(255) DEFAULT ''::character varying NOT NULL,
master_itemid bigint
);

ALTER TABLE public.items OWNER TO postgres;


– Name: items_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:

ALTER TABLE ONLY items
ADD CONSTRAINT items_pkey PRIMARY KEY (itemid);


– Name: items_1; Type: INDEX; Schema: public; Owner: postgres; Tablespace:

CREATE UNIQUE INDEX items_1 ON items USING btree (hostid, key_);


– Name: items_3; Type: INDEX; Schema: public; Owner: postgres; Tablespace:

CREATE INDEX items_3 ON items USING btree (status);


– Name: items_4; Type: INDEX; Schema: public; Owner: postgres; Tablespace:

CREATE INDEX items_4 ON items USING btree (templateid);


– Name: items_5; Type: INDEX; Schema: public; Owner: postgres; Tablespace:

CREATE INDEX items_5 ON items USING btree (valuemapid);


– Name: items_6; Type: INDEX; Schema: public; Owner: postgres; Tablespace:

CREATE INDEX items_6 ON items USING btree (interfaceid);


– Name: items_7; Type: INDEX; Schema: public; Owner: postgres; Tablespace:

CREATE INDEX items_7 ON items USING btree (master_itemid);


– Name: c_items_1; Type: FK CONSTRAINT; Schema: public; Owner: postgres

ALTER TABLE ONLY items
ADD CONSTRAINT c_items_1 FOREIGN KEY (hostid) REFERENCES hosts(hostid) ON DELETE CASCADE;


– Name: c_items_2; Type: FK CONSTRAINT; Schema: public; Owner: postgres

ALTER TABLE ONLY items
ADD CONSTRAINT c_items_2 FOREIGN KEY (templateid) REFERENCES items(itemid) ON DELETE CASCADE;


– Name: c_items_3; Type: FK CONSTRAINT; Schema: public; Owner: postgres

ALTER TABLE ONLY items
ADD CONSTRAINT c_items_3 FOREIGN KEY (valuemapid) REFERENCES valuemaps(valuemapid);


– Name: c_items_4; Type: FK CONSTRAINT; Schema: public; Owner: postgres

ALTER TABLE ONLY items
ADD CONSTRAINT c_items_4 FOREIGN KEY (interfaceid) REFERENCES interface(interfaceid);


– Name: c_items_5; Type: FK CONSTRAINT; Schema: public; Owner: postgres

ALTER TABLE ONLY items
ADD CONSTRAINT c_items_5 FOREIGN KEY (master_itemid) REFERENCES items(itemid) ON DELETE CASCADE;


– PostgreSQL database dump complete

Comment by Cloud Ops [ 2018 Jun 25 ]

We're really stuck for weeks on this and would be grateful for any help to get this proxy working for us!

 

Comment by Vladislavs Sokurenko [ 2018 Jun 27 ]

Please do show create table both on Zabbix proxy and Zabbix server, you can also try increasing log level of trapper on Zabbix proxy and attach log here.

Comment by Cloud Ops [ 2018 Jun 27 ]

show create table on Zabbix proxy is above, here is show create table on Zabbix server:

 

--
-- PostgreSQL database dump
--

-- Dumped from database version 9.6.6
-- Dumped by pg_dump version 9.6.9

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: items; Type: TABLE; Schema: public; Owner: zabbix
--

CREATE TABLE public.items (
 itemid bigint NOT NULL,
 type integer DEFAULT 0 NOT NULL,
 snmp_community character varying(64) DEFAULT ''::character varying NOT NULL,
 snmp_oid character varying(512) DEFAULT ''::character varying NOT NULL,
 hostid bigint NOT NULL,
 name character varying(255) DEFAULT ''::character varying NOT NULL,
 key_ character varying(255) DEFAULT ''::character varying NOT NULL,
 delay character varying(1024) DEFAULT '0'::character varying NOT NULL,
 history character varying(255) DEFAULT '90d'::character varying NOT NULL,
 trends character varying(255) DEFAULT '365d'::character varying NOT NULL,
 status integer DEFAULT 0 NOT NULL,
 value_type integer DEFAULT 0 NOT NULL,
 trapper_hosts character varying(255) DEFAULT ''::character varying NOT NULL,
 units character varying(255) DEFAULT ''::character varying NOT NULL,
 snmpv3_securityname character varying(64) DEFAULT ''::character varying NOT NULL,
 snmpv3_securitylevel integer DEFAULT 0 NOT NULL,
 snmpv3_authpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
 snmpv3_privpassphrase character varying(64) DEFAULT ''::character varying NOT NULL,
 formula character varying(255) DEFAULT ''::character varying NOT NULL,
 error character varying(2048) DEFAULT ''::character varying NOT NULL,
 lastlogsize bigint DEFAULT 0 NOT NULL,
 logtimefmt character varying(64) DEFAULT ''::character varying NOT NULL,
 templateid bigint,
 valuemapid bigint,
 params text,
 ipmi_sensor character varying(128) DEFAULT ''::character varying NOT NULL,
 authtype integer DEFAULT 0 NOT NULL,
 username character varying(64) DEFAULT ''::character varying NOT NULL,
 password character varying(64) DEFAULT ''::character varying NOT NULL,
 publickey character varying(64) DEFAULT ''::character varying NOT NULL,
 privatekey character varying(64) DEFAULT ''::character varying NOT NULL,
 mtime integer DEFAULT 0 NOT NULL,
 flags integer DEFAULT 0 NOT NULL,
 interfaceid bigint,
 port character varying(64) DEFAULT ''::character varying NOT NULL,
 description text,
 inventory_link integer DEFAULT 0 NOT NULL,
 lifetime character varying(255) DEFAULT '30d'::character varying NOT NULL,
 snmpv3_authprotocol integer DEFAULT 0 NOT NULL,
 snmpv3_privprotocol integer DEFAULT 0 NOT NULL,
 state integer DEFAULT 0 NOT NULL,
 snmpv3_contextname character varying(255) DEFAULT ''::character varying NOT NULL,
 evaltype integer DEFAULT 0 NOT NULL,
 jmx_endpoint character varying(255) DEFAULT ''::character varying NOT NULL,
 master_itemid bigint
);


ALTER TABLE public.items OWNER TO zabbix;

--
-- Name: items items_1_items; Type: CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT items_1_items UNIQUE (hostid, key_);


--
-- Name: items pk_items; Type: CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT pk_items PRIMARY KEY (itemid);


--
-- Name: items_3_items; Type: INDEX; Schema: public; Owner: zabbix
--

CREATE INDEX items_3_items ON public.items USING btree (status);


--
-- Name: items_4_items; Type: INDEX; Schema: public; Owner: zabbix
--

CREATE INDEX items_4_items ON public.items USING btree (templateid);


--
-- Name: items_5_items; Type: INDEX; Schema: public; Owner: zabbix
--

CREATE INDEX items_5_items ON public.items USING btree (valuemapid);


--
-- Name: items_6_items; Type: INDEX; Schema: public; Owner: zabbix
--

CREATE INDEX items_6_items ON public.items USING btree (interfaceid);


--
-- Name: items_7; Type: INDEX; Schema: public; Owner: zabbix
--

CREATE INDEX items_7 ON public.items USING btree (master_itemid);


--
-- Name: items c_items_1; Type: FK CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT c_items_1 FOREIGN KEY (hostid) REFERENCES public.hosts(hostid) ON UPDATE RESTRICT ON DELETE CASCADE;


--
-- Name: items c_items_2; Type: FK CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT c_items_2 FOREIGN KEY (templateid) REFERENCES public.items(itemid) ON UPDATE RESTRICT ON DELETE CASCADE;


--
-- Name: items c_items_3; Type: FK CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT c_items_3 FOREIGN KEY (valuemapid) REFERENCES public.valuemaps(valuemapid) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: items c_items_4; Type: FK CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT c_items_4 FOREIGN KEY (interfaceid) REFERENCES public.interface(interfaceid) ON UPDATE RESTRICT ON DELETE RESTRICT;


--
-- Name: items c_items_5; Type: FK CONSTRAINT; Schema: public; Owner: zabbix
--

ALTER TABLE ONLY public.items
 ADD CONSTRAINT c_items_5 FOREIGN KEY (master_itemid) REFERENCES public.items(itemid) ON DELETE CASCADE;


--
-- PostgreSQL database dump complete

 

Comment by Cloud Ops [ 2018 Jun 27 ]

Log attached with Debug=5.  Is there a specific option for trapper log level?  

 

zabbix_proxy.log

Comment by Cloud Ops [ 2018 Jul 09 ]

Hi @Vladislavs Sokurenko, hope there is something else we can try?

 

Comment by Vladislavs Sokurenko [ 2018 Jul 09 ]

I see that params table row does not match default zabbix schema, please change it and everything should work.

Comment by Cloud Ops [ 2018 Jul 09 ]

The proxy was installed directly from the included schema.. Did you mean the server's params table?  Which part was non default?

 

Thanks for the help!

 

Comment by Vladislavs Sokurenko [ 2018 Jul 09 ]

Sorry I meant row, It should have been:

params text DEFAULT ''::text NOT NULL,

But looks like you have

params text,
Comment by Cloud Ops [ 2018 Jul 09 ]

OK, so this applies to both server and proxy?

 

Comment by Vladislavs Sokurenko [ 2018 Jul 09 ]

Yes, schema must match your fresh installation of Zabbix this includes Zabbix server and Zabbix proxy.

Comment by Cloud Ops [ 2018 Jul 11 ]

Hi!  Thanks very much for your response on this.

 

As you suggested, I want to change

params text,

to

params text DEFAULT ''::text NOT NULL,

 

I tried to add the NOT NULL constraint to items.params but the column already has null values so it failed. Is there anything I can do without hurting the server DB? Should I try to replace the nulls with some other value?

 

Comment by Vladislavs Sokurenko [ 2018 Jul 11 ]

Yes, please replace to empty value where param is null

Comment by Cloud Ops [ 2018 Jul 12 ]

Looks like this has gotten us further!  We have other errors (maybe we had more than one problem.)  Still not able to execute web scenarios on proxy though we can gather data for other items with it.  We get errors about foreign key constraint for some of our regexes:

 

8443:20180712:190119.964 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR: insert or update on table "expressions" violates foreign key constraint "c_expressions_1"
DETAIL: Key (regexpid)=(3) is not present in table "regexps".
[insert into expressions (expressionid,regexpid,expression,expression_type,exp_delimiter,case_sensitive) values (4,3,'^(F: \(.*_Backups.*\))$',4,',',0),(5,3,'^(D: \(User Data and SQL Binaries))$',4,',',0),(6,3,'^(C: \(OS\))$',4,',',0),(7,3,'^(E: \(TEMPDB\))$',4,',',0),(8,4,'^(C:|D:|E:|F:)$',3,',',0),(9,5,'^(C:|D:|E:|F:)$',4,',',0),,,,,(10,6,'^(.*Data.*|.*HDT.*|.*Log.*)$',3,',',0),(11,7,'^(.*FTS.*)$',3,',',0),(12,8,'^(System)$',3,',',0),(13,6,'^(.*temp.*)$',4,',',0),(14,9,'^(C:|D:|E:|F:)$',3,',',0)(15,10,'^(C:|D:|E:|F:)$',4,',',0),(16,6,'^(.*User.*)$',4,',',0),(17,11,'^(channel.*)$',3,',',0),(20,12,'^(.*long.*)$',3,',',0),(21,13,'^(.*Backup.*)$',3,',',0),(22,14,'^(Z:)$',3,',',0)(23,15,'^(Z:)$',3,',',0);]
8443:20180712:190119.964 failed to update local proxy configuration copy: database error

 

 

Comment by Vladislavs Sokurenko [ 2018 Jul 13 ]

Sorry, this tracker is for bug reports only.
Please use IRC,forums or other channels for community support - see https://www.zabbix.org/wiki/Getting_help for more detail.
Alternatively contact [email protected] for commercial support.





[ZBX-13788] agent availability icon stays gray after switching host to another proxy. Created: 2018 Apr 23  Updated: 2024 Apr 10  Resolved: 2018 May 14

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.0.16, 3.4.8
Fix Version/s: 3.0.18rc1, 3.4.10rc1, 4.0.0alpha7, 4.0 (plan)

Type: Problem report Priority: Blocker
Reporter: Oleksii Zagorskyi Assignee: Antons Sincovs
Resolution: Fixed Votes: 0
Labels: availability, cache, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
causes ZBX-14447 Zabbix server not compatible between ... Closed
caused by ZBXNEXT-4427 Frontend: Check now item value withou... Closed
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 32, Sprint 33, Sprint 34
Story Points: 1

 Description   

Steps to reproduce:

We assume that ConfigFrequency of active proxies is relatively low. In real example it's 120 seconds. And CacheUpdateFrequency on server side is also 120 seconds.
In more simple words - it's highly possible that proxies will refresh configuration, while server daemon did not spot config changes in frontend.

Steps to reproduce:
1. Ha HostA monitored by active Proxy1, icon is green
2. Switch the host to monitor by active Proxy2 (host still is available in server db)
3. before server updated config cache, the Proxy2 has updated config cache
4. an item is scheduled and polled by the Proxy2 quickly enough, host detected as available and icon became green in frontend (but for short period)
4. a bit later server updated its cache and ... resets the icon to gray
DONE

Here are logs:

Proxy2 cache reload:

 23881:20180423:190828.371 forced reloading of the configuration cache
 23881:20180423:190828.377 received configuration data from server at "127.0.0.1", datalen 3453
 23902:20180423:190857.043 enabling SNMP agent checks on host "HostA": host became available

Server cache reload:

  6103:20180423:190828.377 sending configuration data to proxy "Proxy2" at "127.0.0.1", datalen 3453
  6096:20180423:190857.560 enabling SNMP agent checks on host "HostA": host became available
  6080:20180423:190907.954 forced reloading of the configuration cache

HostA availability status on server and proxies databases, different time poinds: before and after some changes. With comments:

19:08:21
			<<< HostA "monitored by" changed: Proxy1 => Proxy2
19:08:28
Server: 1
Proxy1: 1
Proxy2: 
			<<< Proxy2 cache reload:
19:08:29
Server: 1
Proxy1: 1
Proxy2: 0
			<<< server spot/got something and reseted host to unknown
19:08:30
Server: 0
Proxy1: 1
Proxy2: 0

19:08:56
Server: 0
Proxy1: 1
Proxy2: 0
			<<< an item polled and HostA detected as available
19:08:57
Server: 0
Proxy1: 1
Proxy2: 1
			<<< server received the availability update
19:08:58
Server: 1
Proxy1: 1
Proxy2: 1

19:09:07
Server: 1
Proxy1: 1
Proxy2: 1
			<<< Server config cache reload and icon magically reseted to unknown
19:09:08
Server: 0
Proxy1: 1
Proxy2: 1

Any further config cache updates will not update the icon.

The Proxy2 restart helps to update the availability icon on frontend side.

Note - we have such doc: https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300#host_availability_improvements

It might be related to recent changes in -ZBX-12971-






[ZBX-13660] Invalid type for port is used when processing discovery from proxy Created: 2018 Mar 27  Updated: 2024 Apr 10  Resolved: 2018 Apr 18

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: None
Affects Version/s: 3.0.16rc1, 3.4.8rc1, 4.0.0alpha6
Fix Version/s: 3.0.17rc1, 3.4.9rc1, 4.0.0alpha6, 4.0 (plan)

Type: Problem report Priority: Major
Reporter: Vladislavs Sokurenko Assignee: Andris Mednis
Resolution: Fixed Votes: 0
Labels: discovery, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBX-12349 CVE-2017-2824 zabbix: Multiple vulner... Closed
Team: Team A
Team: Team A
Sprint: Sprint 30, Sprint 31, Sprint 32
Story Points: 3

 Description   

Invalid type is used in combination with is_ushort, this can result in problems on big endian systems.
In newer version if port is not initialized this can cause port to contain garbage value.

See:
process_dhis_data()
Port is integer.

See
process_areg_data()
Port is unsigned short

Expected:
Both places are unsigned short.



 Comments   
Comment by Andris Mednis [ 2018 Apr 12 ]

For 3.0 fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-13660-30
For trunk fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-13660

Comment by Andris Mednis [ 2018 Apr 17 ]

Available in versions:

  • pre-3.0.17rc1 r79803
  • pre-3.4.9rc1 r79812
  • pre-4.0.0alpha6 (trunk) r79816




[ZBX-13599] Update proxy functions in the table Created: 2018 Mar 09  Updated: 2018 Mar 19  Resolved: 2018 Mar 17

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Documentation (D)
Affects Version/s: 3.4.7
Fix Version/s: 4.0 (plan)

Type: Documentation task Priority: Trivial
Reporter: Oleg Ivanivskyi Assignee: Martins Valkovskis
Resolution: Fixed Votes: 0
Labels: functions, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: Sprint 29
Story Points: 0

 Description   

The proxy functions table has no details about latest features, e.g. pre-processing, dependent items, correlation, remote commands should be Yes, etc. It would be great to add them in the table (https://www.zabbix.com/documentation/3.4/manual/distributed_monitoring/proxies).



 Comments   
Comment by Martins Valkovskis [ 2018 Mar 16 ]

Thanks for the reminder. Updated for 3.4 and 4.0. And for 3.2 regarding event correlation.

Comment by Oleg Ivanivskyi [ 2018 Mar 16 ]

I have nothing to add. Thank you!





[ZBX-13568] Zabbix Proxy crashed while monitoring VMware Created: 2018 Mar 03  Updated: 2018 Mar 03  Resolved: 2018 Mar 03

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.4.6
Fix Version/s: None

Type: Problem report Priority: Critical
Reporter: Alireza Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: crah, proxy, vmware
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

vCenter 5.5 u
CentOS 6.9
Zabbix proxy 3.4.6
mysql-server 5.1.73


Issue Links:
Duplicate
duplicates ZBX-13441 Zabbix Server stopped Closed

 Description   

I'm monitoring my vCenter with zabbix VMware template from a proxy. After a while my proxy crashed with the below logs:

 29077:20180228:213330.370 Got signal [signal:11(SIGSEGV),reason:1,refaddr:0x100000021]. Crashing ...
 29077:20180228:213330.370 ====== Fatal information: ======
 29077:20180228:213330.370 Program counter: 0x7f626ffe18cc
 29077:20180228:213330.370 === Registers: ===
 29077:20180228:213330.370 r8      = ffffffffffffffed = 18446744073709551597 =                  -19
 29077:20180228:213330.370 r9      = ffffffffffffffec = 18446744073709551596 =                  -20
 29077:20180228:213330.370 r10     =     7f62702f4170 =      140060765667696 =      140060765667696
 29077:20180228:213330.370 r11     =     7f626ffe9e5d =      140060762480221 =      140060762480221
 29077:20180228:213330.370 r12     =     7f6273c0dcec =      140060825541868 =      140060825541868
 29077:20180228:213330.370 r13     =                2 =                    2 =                    2
 29077:20180228:213330.370 r14     =                0 =                    0 =                    0
 29077:20180228:213330.370 r15     =                0 =                    0 =                    0
 29077:20180228:213330.371 rdi     =        100000029 =           4294967337 =           4294967337
 29077:20180228:213330.371 rsi     =              5f5 =                 1525 =                 1525
 29077:20180228:213330.371 rbp     =     7ffcf0836c70 =      140724343630960 =      140724343630960
 29077:20180228:213330.371 rbx     =     7f62748d9ef0 =      140060838960880 =      140060838960880
 29077:20180228:213330.371 rdx     =        100000029 =           4294967337 =           4294967337
 29077:20180228:213330.371 rax     =                0 =                    0 =                    0
 29077:20180228:213330.371 rcx     =     7f6270d97174 =      140060776821108 =      140060776821108
 29077:20180228:213330.371 rsp     =     7ffcf0836c38 =      140724343630904 =      140724343630904
 29077:20180228:213330.371 rip     =     7f626ffe18cc =      140060762446028 =      140060762446028
 29077:20180228:213330.371 efl     =            10202 =                66050 =                66050
 29077:20180228:213330.371 csgsfs  =               33 =                   51 =                   51
 29077:20180228:213330.371 err     =                4 =                    4 =                    4
 29077:20180228:213330.371 trapno  =                e =                   14 =                   14
 29077:20180228:213330.371 oldmask =                0 =                    0 =                    0
 29077:20180228:213330.371 cr2     =        100000021 =           4294967329 =           4294967329
 29077:20180228:213330.371 === Backtrace: ===
 29077:20180228:213330.375 14: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](zbx_log_fatal_info+0x13c) [0x7f6273b96956]
 29077:20180228:213330.375 13: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](+0xcbd6d) [0x7f6273b96d6d]
 29077:20180228:213330.376 12: /lib64/libc.so.6(+0x32510) [0x7f626ff98510]
 29077:20180228:213330.376 11: /lib64/libc.so.6(cfree+0x1c) [0x7f626ffe18cc]
 29077:20180228:213330.376 10: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](zbx_strdup2+0x32) [0x7f6273ba859f]
 29077:20180228:213330.376 9: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](+0x6c3ac) [0x7f6273b373ac]
 29077:20180228:213330.376 8: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](+0x6ee59) [0x7f6273b39e59]
 29077:20180228:213330.376 7: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](+0x70c6b) [0x7f6273b3bc6b]
 29077:20180228:213330.376 6: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](vmware_thread+0x32a) [0x7f6273b3d98e]
 29077:20180228:213330.376 5: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](zbx_thread_start+0x37) [0x7f6273ba6667]
 29077:20180228:213330.376 4: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](MAIN_ZABBIX_ENTRY+0xb32) [0x7f6273b00308]
 29077:20180228:213330.376 3: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](daemon_start+0x325) [0x7f6273b96074]
 29077:20180228:213330.377 2: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](main+0x313) [0x7f6273aff7cf]
 29077:20180228:213330.377 1: /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f626ff84d1d]
 29077:20180228:213330.378 0: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000009 sec, querying VMware services](+0x32fb9) [0x7f6273afdfb9]
 29077:20180228:213330.378 === Memory map: ===
 29077:20180228:213330.378 7f6229262000-7f6229278000 r-xp 00000000 fd:00 1044482                    /lib64/libgcc_s-4.4.7-20120601.so.1
 29077:20180228:213330.378 7f6229278000-7f6229477000 ---p 00016000 fd:00 1044482                    /lib64/libgcc_s-4.4.7-20120601.so.1
 29077:20180228:213330.378 7f6229477000-7f6229478000 rw-p 00015000 fd:00 1044482                    /lib64/libgcc_s-4.4.7-20120601.so.1
 29077:20180228:213330.378 7f6229478000-7f622949e000 r-xp 00000000 fd:00 1176354                    /usr/lib64/libnssdbm3.so
 29077:20180228:213330.379 7f622949e000-7f622969e000 ---p 00026000 fd:00 1176354                    /usr/lib64/libnssdbm3.so
 29077:20180228:213330.379 7f622969e000-7f622969f000 r--p 00026000 fd:00 1176354                    /usr/lib64/libnssdbm3.so
 29077:20180228:213330.379 7f622969f000-7f62296a0000 rw-p 00027000 fd:00 1176354                    /usr/lib64/libnssdbm3.so
 29077:20180228:213330.379 7f62296a0000-7f62296c4000 r-xp 00000000 fd:00 1180137                    /usr/lib64/libnsspem.so
 29077:20180228:213330.380 7f62296c4000-7f62298c4000 ---p 00024000 fd:00 1180137                    /usr/lib64/libnsspem.so
 29077:20180228:213330.380 7f62298c4000-7f62298c6000 r--p 00024000 fd:00 1180137                    /usr/lib64/libnsspem.so
 29077:20180228:213330.380 7f62298c6000-7f62298c7000 rw-p 00026000 fd:00 1180137                    /usr/lib64/libnsspem.so
 29077:20180228:213330.380 7f62298c7000-7f62298c9000 r-xp 00000000 fd:00 1178673                    /usr/lib64/libnsssysinit.so
 29077:20180228:213330.380 7f62298c9000-7f6229ac8000 ---p 00002000 fd:00 1178673                    /usr/lib64/libnsssysinit.so
 29077:20180228:213330.380 7f6229ac8000-7f6229ac9000 r--p 00001000 fd:00 1178673                    /usr/lib64/libnsssysinit.so
 29077:20180228:213330.380 7f6229ac9000-7f6229aca000 rw-p 00002000 fd:00 1178673                    /usr/lib64/libnsssysinit.so
 29077:20180228:213330.380 7f6229aca000-7f6229b3c000 r-xp 00000000 fd:00 1044489                    /lib64/libfreeblpriv3.so
 29077:20180228:213330.380 7f6229b3c000-7f6229d3c000 ---p 00072000 fd:00 1044489                    /lib64/libfreeblpriv3.so
 29077:20180228:213330.381 7f6229d3c000-7f6229d3e000 r--p 00072000 fd:00 1044489                    /lib64/libfreeblpriv3.so
 29077:20180228:213330.381 7f6229d3e000-7f6229d3f000 rw-p 00074000 fd:00 1044489                    /lib64/libfreeblpriv3.so
 29077:20180228:213330.382 7f6229d3f000-7f6229d43000 rw-p 00000000 00:00 0
 29077:20180228:213330.382 7f6229d43000-7f6229dce000 r-xp 00000000 fd:00 1176325                    /usr/lib64/libsqlite3.so.0.8.6
 29077:20180228:213330.382 7f6229dce000-7f6229fce000 ---p 0008b000 fd:00 1176325                    /usr/lib64/libsqlite3.so.0.8.6
 29077:20180228:213330.382 7f6229fce000-7f6229fd1000 rw-p 0008b000 fd:00 1176325                    /usr/lib64/libsqlite3.so.0.8.6
 29077:20180228:213330.382 7f6229fd1000-7f6229fd2000 rw-p 00000000 00:00 0
 29077:20180228:213330.382 7f6229fd2000-7f622a010000 r-xp 00000000 fd:00 1176356                    /usr/lib64/libsoftokn3.so
 29077:20180228:213330.382 7f622a010000-7f622a20f000 ---p 0003e000 fd:00 1176356                    /usr/lib64/libsoftokn3.so
 29077:20180228:213330.382 7f622a20f000-7f622a211000 r--p 0003d000 fd:00 1176356                    /usr/lib64/libsoftokn3.so
 29077:20180228:213330.382 7f622a211000-7f622a212000 rw-p 0003f000 fd:00 1176356                    /usr/lib64/libsoftokn3.so
 29077:20180228:213330.382 7f622a212000-7f622a217000 r-xp 00000000 fd:00 1044509                    /lib64/libnss_dns-2.12.so
 29077:20180228:213330.383 7f622a217000-7f622a416000 ---p 00005000 fd:00 1044509                    /lib64/libnss_dns-2.12.so
 29077:20180228:213330.383 7f622a416000-7f622a417000 r--p 00004000 fd:00 1044509                    /lib64/libnss_dns-2.12.so
 29077:20180228:213330.383 7f622a417000-7f622a418000 rw-p 00005000 fd:00 1044509                    /lib64/libnss_dns-2.12.so
 29077:20180228:213330.383 7f622a418000-7f626a418000 rw-s 00000000 00:04 4325381                    /SYSV00000000 (deleted)
 29077:20180228:213330.383 7f626a418000-7f626aae5000 rw-s 00000000 00:04 4227074                    /SYSV00000000 (deleted)
 29077:20180228:213330.384 7f626aae5000-7f626aee5000 rw-s 00000000 00:04 4194305                    /SYSV00000000 (deleted)
 29077:20180228:213330.384 7f626aee5000-7f626bee5000 rw-s 00000000 00:04 4161536                    /SYSV00000000 (deleted)
 29077:20180228:213330.384 7f626bee5000-7f626c8d2000 r--s 00000000 fd:00 130637                     /var/lib/sss/mc/initgroups
 29077:20180228:213330.384 7f626c8d2000-7f626c8da000 r-xp 00000000 fd:00 1044512                    /lib64/libnss_sss.so.2
 29077:20180228:213330.384 7f626c8da000-7f626cad9000 ---p 00008000 fd:00 1044512                    /lib64/libnss_sss.so.2
 29077:20180228:213330.384 7f626cad9000-7f626cada000 rw-p 00007000 fd:00 1044512                    /lib64/libnss_sss.so.2
 29077:20180228:213330.384 7f626cada000-7f626cae7000 r-xp 00000000 fd:00 1044887                    /lib64/libnss_files-2.12.so
 29077:20180228:213330.384 7f626cae7000-7f626cce6000 ---p 0000d000 fd:00 1044887                    /lib64/libnss_files-2.12.so
 29077:20180228:213330.384 7f626cce6000-7f626cce7000 r--p 0000c000 fd:00 1044887                    /lib64/libnss_files-2.12.so
 29077:20180228:213330.384 7f626cce7000-7f626cce8000 rw-p 0000d000 fd:00 1044887                    /lib64/libnss_files-2.12.so
 29077:20180228:213330.385 7f626cce8000-7f626cd05000 r-xp 00000000 fd:00 1044563                    /lib64/libselinux.so.1
 29077:20180228:213330.385 7f626cd05000-7f626cf04000 ---p 0001d000 fd:00 1044563                    /lib64/libselinux.so.1
 29077:20180228:213330.385 7f626cf04000-7f626cf05000 r--p 0001c000 fd:00 1044563                    /lib64/libselinux.so.1
 29077:20180228:213330.385 7f626cf05000-7f626cf06000 rw-p 0001d000 fd:00 1044563                    /lib64/libselinux.so.1
 29077:20180228:213330.385 7f626cf06000-7f626cf07000 rw-p 00000000 00:00 0
 29077:20180228:213330.385 7f626cf07000-7f626cf24000 r-xp 00000000 fd:00 1044539                    /lib64/libtinfo.so.5.7
 29077:20180228:213330.385 7f626cf24000-7f626d123000 ---p 0001d000 fd:00 1044539                    /lib64/libtinfo.so.5.7
 29077:20180228:213330.385 7f626d123000-7f626d127000 rw-p 0001c000 fd:00 1044539                    /lib64/libtinfo.so.5.7
 29077:20180228:213330.385 7f626d127000-7f626d128000 rw-p 00000000 00:00 0
 29077:20180228:213330.385 7f626d128000-7f626d12a000 r-xp 00000000 fd:00 1044664                    /lib64/libkeyutils.so.1.3
 29077:20180228:213330.385 7f626d12a000-7f626d329000 ---p 00002000 fd:00 1044664                    /lib64/libkeyutils.so.1.3
 29077:20180228:213330.385 7f626d329000-7f626d32a000 r--p 00001000 fd:00 1044664                    /lib64/libkeyutils.so.1.3
 29077:20180228:213330.385 7f626d32a000-7f626d32b000 rw-p 00002000 fd:00 1044664                    /lib64/libkeyutils.so.1.3
 29077:20180228:213330.385 7f626d32b000-7f626d335000 r-xp 00000000 fd:00 1044674                    /lib64/libkrb5support.so.0.1
 29077:20180228:213330.385 7f626d335000-7f626d534000 ---p 0000a000 fd:00 1044674                    /lib64/libkrb5support.so.0.1
 29077:20180228:213330.386 7f626d534000-7f626d535000 r--p 00009000 fd:00 1044674                    /lib64/libkrb5support.so.0.1
 29077:20180228:213330.386 7f626d535000-7f626d536000 rw-p 0000a000 fd:00 1044674                    /lib64/libkrb5support.so.0.1
 29077:20180228:213330.386 7f626d536000-7f626d568000 r-xp 00000000 fd:00 1044581                    /lib64/libidn.so.11.6.1
 29077:20180228:213330.386 7f626d568000-7f626d767000 ---p 00032000 fd:00 1044581                    /lib64/libidn.so.11.6.1
 29077:20180228:213330.386 7f626d767000-7f626d768000 rw-p 00031000 fd:00 1044581                    /lib64/libidn.so.11.6.1
 29077:20180228:213330.386 7f626d768000-7f626d7a1000 r-xp 00000000 fd:00 1044559                    /lib64/libnspr4.so
 29077:20180228:213330.386 7f626d7a1000-7f626d9a1000 ---p 00039000 fd:00 1044559                    /lib64/libnspr4.so
 29077:20180228:213330.386 7f626d9a1000-7f626d9a2000 r--p 00039000 fd:00 1044559                    /lib64/libnspr4.so
 29077:20180228:213330.386 7f626d9a2000-7f626d9a4000 rw-p 0003a000 fd:00 1044559                    /lib64/libnspr4.so
 29077:20180228:213330.386 7f626d9a4000-7f626d9a6000 rw-p 00000000 00:00 0
 29077:20180228:213330.386 7f626d9a6000-7f626d9aa000 r-xp 00000000 fd:00 1044560                    /lib64/libplc4.so
 29077:20180228:213330.386 7f626d9aa000-7f626dba9000 ---p 00004000 fd:00 1044560                    /lib64/libplc4.so
 29077:20180228:213330.386 7f626dba9000-7f626dbaa000 r--p 00003000 fd:00 1044560                    /lib64/libplc4.so
 29077:20180228:213330.386 7f626dbaa000-7f626dbab000 rw-p 00004000 fd:00 1044560                    /lib64/libplc4.so
 29077:20180228:213330.386 7f626dbab000-7f626dbae000 r-xp 00000000 fd:00 1044561                    /lib64/libplds4.so
 29077:20180228:213330.387 7f626dbae000-7f626ddad000 ---p 00003000 fd:00 1044561                    /lib64/libplds4.so
 29077:20180228:213330.387 7f626ddad000-7f626ddae000 r--p 00002000 fd:00 1044561                    /lib64/libplds4.so
 29077:20180228:213330.387 7f626ddae000-7f626ddaf000 rw-p 00003000 fd:00 1044561                    /lib64/libplds4.so
 29077:20180228:213330.387 7f626ddaf000-7f626ddd5000 r-xp 00000000 fd:00 1176047                    /usr/lib64/libnssutil3.so
 29077:20180228:213330.387 7f626ddd5000-7f626dfd4000 ---p 00026000 fd:00 1176047                    /usr/lib64/libnssutil3.so
 29077:20180228:213330.387 7f626dfd4000-7f626dfdb000 r--p 00025000 fd:00 1176047                    /usr/lib64/libnssutil3.so
 29077:20180228:213330.387 7f626dfdb000-7f626dfdc000 rw-p 0002c000 fd:00 1176047                    /usr/lib64/libnssutil3.so
 29077:20180228:213330.387 7f626dfdc000-7f626e116000 r-xp 00000000 fd:00 1177280                    /usr/lib64/libnss3.so
 29077:20180228:213330.387 7f626e116000-7f626e315000 ---p 0013a000 fd:00 1177280                    /usr/lib64/libnss3.so
 29077:20180228:213330.387 7f626e315000-7f626e31b000 r--p 00139000 fd:00 1177280                    /usr/lib64/libnss3.so
 29077:20180228:213330.387 7f626e31b000-7f626e31d000 rw-p 0013f000 fd:00 1177280                    /usr/lib64/libnss3.so
 29077:20180228:213330.387 7f626e31d000-7f626e31f000 rw-p 00000000 00:00 0
 29077:20180228:213330.387 7f626e31f000-7f626e347000 r-xp 00000000 fd:00 1178674                    /usr/lib64/libsmime3.so
 29077:20180228:213330.387 7f626e347000-7f626e546000 ---p 00028000 fd:00 1178674                    /usr/lib64/libsmime3.so
 29077:20180228:213330.387 7f626e546000-7f626e54a000 r--p 00027000 fd:00 1178674                    /usr/lib64/libsmime3.so
 29077:20180228:213330.388 7f626e54a000-7f626e54b000 rw-p 0002b000 fd:00 1178674                    /usr/lib64/libsmime3.so
 29077:20180228:213330.388 7f626e54b000-7f626e592000 r-xp 00000000 fd:00 1180138                    /usr/lib64/libssl3.so
 29077:20180228:213330.388 7f626e592000-7f626e792000 ---p 00047000 fd:00 1180138                    /usr/lib64/libssl3.so
 29077:20180228:213330.388 7f626e792000-7f626e796000 r--p 00047000 fd:00 1180138                    /usr/lib64/libssl3.so
 29077:20180228:213330.388 7f626e796000-7f626e797000 rw-p 0004b000 fd:00 1180138                    /usr/lib64/libssl3.so
 29077:20180228:213330.388 7f626e797000-7f626e798000 rw-p 00000000 00:00 0
 29077:20180228:213330.388 7f626e798000-7f626e7b1000 r-xp 00000000 fd:00 1176328                    /usr/lib64/libsasl2.so.2.0.23
 29077:20180228:213330.388 7f626e7b1000-7f626e9b0000 ---p 00019000 fd:00 1176328                    /usr/lib64/libsasl2.so.2.0.23
 29077:20180228:213330.388 7f626e9b0000-7f626e9b1000 r--p 00018000 fd:00 1176328                    /usr/lib64/libsasl2.so.2.0.23
 29077:20180228:213330.388 7f626e9b1000-7f626e9b2000 rw-p 00019000 fd:00 1176328                    /usr/lib64/libsasl2.so.2.0.23
 29077:20180228:213330.388 7f626e9b2000-7f626e9b8000 r-xp 00000000 fd:00 1177308                    /usr/lib64/libgdbm.so.2.0.0
 29077:20180228:213330.388 7f626e9b8000-7f626ebb7000 ---p 00006000 fd:00 1177308                    /usr/lib64/libgdbm.so.2.0.0
 29077:20180228:213330.388 7f626ebb7000-7f626ebb8000 rw-p 00005000 fd:00 1177308                    /usr/lib64/libgdbm.so.2.0.0
 29077:20180228:213330.388 7f626ebb8000-7f626ebda000 r-xp 00000000 fd:00 1044535                    /lib64/libncurses.so.5.7
 29077:20180228:213330.388 7f626ebda000-7f626edd9000 ---p 00022000 fd:00 1044535                    /lib64/libncurses.so.5.7
 29077:20180228:213330.388 7f626edd9000-7f626edda000 rw-p 00021000 fd:00 1044535                    /lib64/libncurses.so.5.7
 29077:20180228:213330.389 7f626edda000-7f626ede1000 r-xp 00000000 fd:00 1181664                    /usr/lib64/libOpenIPMIutils.so.0.0.1
 29077:20180228:213330.389 7f626ede1000-7f626efe1000 ---p 00007000 fd:00 1181664                    /usr/lib64/libOpenIPMIutils.so.0.0.1
 29077:20180228:213330.389 7f626efe1000-7f626efe2000 rw-p 00007000 fd:00 1181664                    /usr/lib64/libOpenIPMIutils.so.0.0.1
 29077:20180228:213330.389 7f626efe2000-7f626eff9000 r-xp 00000000 fd:00 1044519                    /lib64/libpthread-2.12.so
 29077:20180228:213330.389 7f626eff9000-7f626f1f9000 ---p 00017000 fd:00 1044519                    /lib64/libpthread-2.12.so
 29077:20180228:213330.389 7f626f1f9000-7f626f1fa000 r--p 00017000 fd:00 1044519                    /lib64/libpthread-2.12.so
 29077:20180228:213330.389 7f626f1fa000-7f626f1fb000 rw-p 00018000 fd:00 1044519                    /lib64/libpthread-2.12.so
 29077:20180228:213330.389 7f626f1fb000-7f626f1ff000 rw-p 00000000 00:00 0
 29077:20180228:213330.389 7f626f1ff000-7f626f208000 r-xp 00000000 fd:00 1181587                    /usr/lib64/libltdl.so.7.2.1
 29077:20180228:213330.389 7f626f208000-7f626f407000 ---p 00009000 fd:00 1181587                    /usr/lib64/libltdl.so.7.2.1
 29077:20180228:213330.389 7f626f407000-7f626f408000 rw-p 00008000 fd:00 1181587                    /usr/lib64/libltdl.so.7.2.1
 29077:20180228:213330.389 7f626f408000-7f626f431000 r-xp 00000000 fd:00 1044670                    /lib64/libk5crypto.so.3.1
 29077:20180228:213330.389 7f626f431000-7f626f631000 ---p 00029000 fd:00 1044670                    /lib64/libk5crypto.so.3.1
 29077:20180228:213330.389 7f626f631000-7f626f632000 r--p 00029000 fd:00 1044670                    /lib64/libk5crypto.so.3.1
 29077:20180228:213330.389 7f626f632000-7f626f633000 rw-p 0002a000 fd:00 1044670                    /lib64/libk5crypto.so.3.1
 29077:20180228:213330.390 7f626f633000-7f626f634000 rw-p 00000000 00:00 0
 29077:20180228:213330.390 7f626f634000-7f626f637000 r-xp 00000000 fd:00 1044555                    /lib64/libcom_err.so.2.1
 29077:20180228:213330.390 7f626f637000-7f626f836000 ---p 00003000 fd:00 1044555                    /lib64/libcom_err.so.2.1
 29077:20180228:213330.390 7f626f836000-7f626f837000 r--p 00002000 fd:00 1044555                    /lib64/libcom_err.so.2.1
 29077:20180228:213330.390 7f626f837000-7f626f838000 rw-p 00003000 fd:00 1044555                    /lib64/libcom_err.so.2.1
 29077:20180228:213330.390 7f626f838000-7f626f914000 r-xp 00000000 fd:00 1044672                    /lib64/libkrb5.so.3.3
 29077:20180228:213330.390 7f626f914000-7f626fb13000 ---p 000dc000 fd:00 1044672                    /lib64/libkrb5.so.3.3
 29077:20180228:213330.390 7f626fb13000-7f626fb1d000 r--p 000db000 fd:00 1044672                    /lib64/libkrb5.so.3.3
 29077:20180228:213330.390 7f626fb1d000-7f626fb1f000 rw-p 000e5000 fd:00 1044672                    /lib64/libkrb5.so.3.3
 29077:20180228:213330.390 7f626fb1f000-7f626fb60000 r-xp 00000000 fd:00 1044666                    /lib64/libgssapi_krb5.so.2.2
 29077:20180228:213330.390 7f626fb60000-7f626fd60000 ---p 00041000 fd:00 1044666                    /lib64/libgssapi_krb5.so.2.2
 29077:20180228:213330.390 7f626fd60000-7f626fd61000 r--p 00041000 fd:00 1044666                    /lib64/libgssapi_krb5.so.2.2
 29077:20180228:213330.390 7f626fd61000-7f626fd63000 rw-p 00042000 fd:00 1044666                    /lib64/libgssapi_krb5.so.2.2
 29077:20180228:213330.390 7f626fd63000-7f626fd65000 r-xp 00000000 fd:00 1044487                    /lib64/libfreebl3.so
 29077:20180228:213330.390 7f626fd65000-7f626ff64000 ---p 00002000 fd:00 1044487                    /lib64/libfreebl3.so
 29077:20180228:213330.390 7f626ff64000-7f626ff65000 r--p 00001000 fd:00 1044487                    /lib64/libfreebl3.so
 29077:20180228:213330.391 7f626ff65000-7f626ff66000 rw-p 00002000 fd:00 1044487                    /lib64/libfreebl3.so
 29077:20180228:213330.391 7f626ff66000-7f62700f0000 r-xp 00000000 fd:00 1044495                    /lib64/libc-2.12.so
 29077:20180228:213330.391 7f62700f0000-7f62702f0000 ---p 0018a000 fd:00 1044495                    /lib64/libc-2.12.so
 29077:20180228:213330.391 7f62702f0000-7f62702f4000 r--p 0018a000 fd:00 1044495                    /lib64/libc-2.12.so
 29077:20180228:213330.391 7f62702f4000-7f62702f6000 rw-p 0018e000 fd:00 1044495                    /lib64/libc-2.12.so
 29077:20180228:213330.391 7f62702f6000-7f62702fa000 rw-p 00000000 00:00 0
 29077:20180228:213330.391 7f62702fa000-7f6270326000 r-xp 00000000 fd:00 1044579                    /lib64/libpcre.so.0.0.1
 29077:20180228:213330.391 7f6270326000-7f6270526000 ---p 0002c000 fd:00 1044579                    /lib64/libpcre.so.0.0.1
 29077:20180228:213330.391 7f6270526000-7f6270527000 rw-p 0002c000 fd:00 1044579                    /lib64/libpcre.so.0.0.1
 29077:20180228:213330.391 7f6270527000-7f6270529000 r-xp 00000000 fd:00 1176288                    /usr/lib64/libpcreposix.so.0.0.0
 29077:20180228:213330.391 7f6270529000-7f6270728000 ---p 00002000 fd:00 1176288                    /usr/lib64/libpcreposix.so.0.0.0
 29077:20180228:213330.391 7f6270728000-7f6270729000 rw-p 00001000 fd:00 1176288                    /usr/lib64/libpcreposix.so.0.0.0
 29077:20180228:213330.391 7f6270729000-7f627073f000 r-xp 00000000 fd:00 1044891                    /lib64/libresolv-2.12.so
 29077:20180228:213330.391 7f627073f000-7f627093f000 ---p 00016000 fd:00 1044891                    /lib64/libresolv-2.12.so
 29077:20180228:213330.391 7f627093f000-7f6270940000 r--p 00016000 fd:00 1044891                    /lib64/libresolv-2.12.so
 29077:20180228:213330.391 7f6270940000-7f6270941000 rw-p 00017000 fd:00 1044891                    /lib64/libresolv-2.12.so
 29077:20180228:213330.392 7f6270941000-7f6270943000 rw-p 00000000 00:00 0
 29077:20180228:213330.392 7f6270943000-7f627094a000 r-xp 00000000 fd:00 1044893                    /lib64/librt-2.12.so
 29077:20180228:213330.392 7f627094a000-7f6270b49000 ---p 00007000 fd:00 1044893                    /lib64/librt-2.12.so
 29077:20180228:213330.392 7f6270b49000-7f6270b4a000 r--p 00006000 fd:00 1044893                    /lib64/librt-2.12.so
 29077:20180228:213330.392 7f6270b4a000-7f6270b4b000 rw-p 00007000 fd:00 1044893                    /lib64/librt-2.12.so
 29077:20180228:213330.392 7f6270b4b000-7f6270b4d000 r-xp 00000000 fd:00 1044511                    /lib64/libdl-2.12.so
 29077:20180228:213330.392 7f6270b4d000-7f6270d4d000 ---p 00002000 fd:00 1044511                    /lib64/libdl-2.12.so
 29077:20180228:213330.392 7f6270d4d000-7f6270d4e000 r--p 00002000 fd:00 1044511                    /lib64/libdl-2.12.so
 29077:20180228:213330.392 7f6270d4e000-7f6270d4f000 rw-p 00003000 fd:00 1044511                    /lib64/libdl-2.12.so
 29077:20180228:213330.392 7f6270d4f000-7f6270da2000 r-xp 00000000 fd:00 1177393                    /usr/lib64/libcurl.so.4.1.1
 29077:20180228:213330.392 7f6270da2000-7f6270fa1000 ---p 00053000 fd:00 1177393                    /usr/lib64/libcurl.so.4.1.1
 29077:20180228:213330.392 7f6270fa1000-7f6270fa4000 rw-p 00052000 fd:00 1177393                    /usr/lib64/libcurl.so.4.1.1
 29077:20180228:213330.392 7f6270fa4000-7f6270fb2000 r-xp 00000000 fd:00 1044676                    /lib64/liblber-2.4.so.2.10.3
 29077:20180228:213330.392 7f6270fb2000-7f62711b1000 ---p 0000e000 fd:00 1044676                    /lib64/liblber-2.4.so.2.10.3
 29077:20180228:213330.392 7f62711b1000-7f62711b2000 r--p 0000d000 fd:00 1044676                    /lib64/liblber-2.4.so.2.10.3
 29077:20180228:213330.393 7f62711b2000-7f62711b3000 rw-p 0000e000 fd:00 1044676                    /lib64/liblber-2.4.so.2.10.3
 29077:20180228:213330.393 7f62711b3000-7f6271201000 r-xp 00000000 fd:00 1044678                    /lib64/libldap-2.4.so.2.10.3
 29077:20180228:213330.393 7f6271201000-7f6271400000 ---p 0004e000 fd:00 1044678                    /lib64/libldap-2.4.so.2.10.3
 29077:20180228:213330.393 7f6271400000-7f6271402000 r--p 0004d000 fd:00 1044678                    /lib64/libldap-2.4.so.2.10.3
 29077:20180228:213330.393 7f6271402000-7f6271404000 rw-p 0004f000 fd:00 1044678                    /lib64/libldap-2.4.so.2.10.3
 29077:20180228:213330.393 7f6271404000-7f627141d000 r-xp 00000000 fd:00 1181644                    /usr/lib64/libevent-1.4.so.2.1.3
 29077:20180228:213330.393 7f627141d000-7f627161d000 ---p 00019000 fd:00 1181644                    /usr/lib64/libevent-1.4.so.2.1.3
 29077:20180228:213330.393 7f627161d000-7f627161e000 rw-p 00019000 fd:00 1181644                    /usr/lib64/libevent-1.4.so.2.1.3
 29077:20180228:213330.393 7f627161e000-7f627161f000 rw-p 00000000 00:00 0
 29077:20180228:213330.393 7f627161f000-7f6271624000 r-xp 00000000 fd:00 1181658                    /usr/lib64/libOpenIPMIposix.so.0.0.1
 29077:20180228:213330.393 7f6271624000-7f6271823000 ---p 00005000 fd:00 1181658                    /usr/lib64/libOpenIPMIposix.so.0.0.1
 29077:20180228:213330.393 7f6271823000-7f6271824000 rw-p 00004000 fd:00 1181658                    /usr/lib64/libOpenIPMIposix.so.0.0.1
 29077:20180228:213330.393 7f6271824000-7f627190c000 r-xp 00000000 fd:00 1181652                    /usr/lib64/libOpenIPMI.so.0.0.5
 29077:20180228:213330.393 7f627190c000-7f6271b0c000 ---p 000e8000 fd:00 1181652                    /usr/lib64/libOpenIPMI.so.0.0.5
 29077:20180228:213330.393 7f6271b0c000-7f6271b28000 rw-p 000e8000 fd:00 1181652                    /usr/lib64/libOpenIPMI.so.0.0.5
 29077:20180228:213330.393 7f6271b28000-7f6271b2c000 rw-p 00000000 00:00 0
 29077:20180228:213330.394 7f6271b2c000-7f6271b53000 r-xp 00000000 fd:00 1177392                    /usr/lib64/libssh2.so.1.0.1
 29077:20180228:213330.394 7f6271b53000-7f6271d52000 ---p 00027000 fd:00 1177392                    /usr/lib64/libssh2.so.1.0.1
 29077:20180228:213330.394 7f6271d52000-7f6271d54000 rw-p 00026000 fd:00 1177392                    /usr/lib64/libssh2.so.1.0.1
 29077:20180228:213330.394 7f6271d54000-7f6271df5000 r-xp 00000000 fd:00 1180727                    /usr/lib64/libnetsnmp.so.20.0.0
 29077:20180228:213330.394 7f6271df5000-7f6271ff4000 ---p 000a1000 fd:00 1180727                    /usr/lib64/libnetsnmp.so.20.0.0
 29077:20180228:213330.394 7f6271ff4000-7f6271ff7000 r--p 000a0000 fd:00 1180727                    /usr/lib64/libnetsnmp.so.20.0.0
 29077:20180228:213330.394 7f6271ff7000-7f6271ff9000 rw-p 000a3000 fd:00 1180727                    /usr/lib64/libnetsnmp.so.20.0.0
 29077:20180228:213330.394 7f6271ff9000-7f627202f000 rw-p 00000000 00:00 0
 29077:20180228:213330.394 7f627202f000-7f627208e000 r-xp 00000000 fd:00 1181608                    /usr/lib64/libodbc.so.2.0.0
 29077:20180228:213330.394 7f627208e000-7f627228d000 ---p 0005f000 fd:00 1181608                    /usr/lib64/libodbc.so.2.0.0
 29077:20180228:213330.394 7f627228d000-7f6272295000 rw-p 0005e000 fd:00 1181608                    /usr/lib64/libodbc.so.2.0.0
 29077:20180228:213330.394 7f6272295000-7f6272296000 rw-p 00000000 00:00 0
 29077:20180228:213330.394 7f6272296000-7f62723df000 r-xp 00000000 fd:00 1176445                    /usr/lib64/libxml2.so.2.7.6
 29077:20180228:213330.394 7f62723df000-7f62725de000 ---p 00149000 fd:00 1176445                    /usr/lib64/libxml2.so.2.7.6
 29077:20180228:213330.394 7f62725de000-7f62725e8000 rw-p 00148000 fd:00 1176445                    /usr/lib64/libxml2.so.2.7.6
 29077:20180228:213330.394 7f62725e8000-7f62725e9000 rw-p 00000000 00:00 0
 29077:20180228:213330.395 7f62725e9000-7f62727a3000 r-xp 00000000 fd:00 1177333                    /usr/lib64/libcrypto.so.1.0.1e
 29077:20180228:213330.395 7f62727a3000-7f62729a3000 ---p 001ba000 fd:00 1177333                    /usr/lib64/libcrypto.so.1.0.1e
 29077:20180228:213330.395 7f62729a3000-7f62729be000 r--p 001ba000 fd:00 1177333                    /usr/lib64/libcrypto.so.1.0.1e
 29077:20180228:213330.395 7f62729be000-7f62729ca000 rw-p 001d5000 fd:00 1177333                    /usr/lib64/libcrypto.so.1.0.1e
 29077:20180228:213330.395 7f62729ca000-7f62729ce000 rw-p 00000000 00:00 0
 29077:20180228:213330.395 7f62729ce000-7f6272a30000 r-xp 00000000 fd:00 1177335                    /usr/lib64/libssl.so.1.0.1e
 29077:20180228:213330.395 7f6272a30000-7f6272c30000 ---p 00062000 fd:00 1177335                    /usr/lib64/libssl.so.1.0.1e
 29077:20180228:213330.395 7f6272c30000-7f6272c34000 r--p 00062000 fd:00 1177335                    /usr/lib64/libssl.so.1.0.1e
 29077:20180228:213330.395 7f6272c34000-7f6272c3a000 rw-p 00066000 fd:00 1177335                    /usr/lib64/libssl.so.1.0.1e
 29077:20180228:213330.395 7f6272c3a000-7f6272cbd000 r-xp 00000000 fd:00 1044521                    /lib64/libm-2.12.so
 29077:20180228:213330.395 7f6272cbd000-7f6272ebc000 ---p 00083000 fd:00 1044521                    /lib64/libm-2.12.so
 29077:20180228:213330.395 7f6272ebc000-7f6272ebd000 r--p 00082000 fd:00 1044521                    /lib64/libm-2.12.so
 29077:20180228:213330.395 7f6272ebd000-7f6272ebe000 rw-p 00083000 fd:00 1044521                    /lib64/libm-2.12.so
 29077:20180228:213330.395 7f6272ebe000-7f6272ed4000 r-xp 00000000 fd:00 1044525                    /lib64/libnsl-2.12.so
 29077:20180228:213330.395 7f6272ed4000-7f62730d3000 ---p 00016000 fd:00 1044525                    /lib64/libnsl-2.12.so
 29077:20180228:213330.395 7f62730d3000-7f62730d4000 r--p 00015000 fd:00 1044525                    /lib64/libnsl-2.12.so
 29077:20180228:213330.396 7f62730d4000-7f62730d5000 rw-p 00016000 fd:00 1044525                    /lib64/libnsl-2.12.so
 29077:20180228:213330.396 7f62730d5000-7f62730d7000 rw-p 00000000 00:00 0
 29077:20180228:213330.396 7f62730d7000-7f62730de000 r-xp 00000000 fd:00 1044499                    /lib64/libcrypt-2.12.so
 29077:20180228:213330.396 7f62730de000-7f62732de000 ---p 00007000 fd:00 1044499                    /lib64/libcrypt-2.12.so
 29077:20180228:213330.396 7f62732de000-7f62732df000 r--p 00007000 fd:00 1044499                    /lib64/libcrypt-2.12.so
 29077:20180228:213330.396 7f62732df000-7f62732e0000 rw-p 00008000 fd:00 1044499                    /lib64/libcrypt-2.12.so
 29077:20180228:213330.396 7f62732e0000-7f627330e000 rw-p 00000000 00:00 0
 29077:20180228:213330.396 7f627330e000-7f6273323000 r-xp 00000000 fd:00 1044547                    /lib64/libz.so.1.2.3
 29077:20180228:213330.396 7f6273323000-7f6273522000 ---p 00015000 fd:00 1044547                    /lib64/libz.so.1.2.3
 29077:20180228:213330.396 7f6273522000-7f6273523000 r--p 00014000 fd:00 1044547                    /lib64/libz.so.1.2.3
 29077:20180228:213330.396 7f6273523000-7f6273524000 rw-p 00015000 fd:00 1044547                    /lib64/libz.so.1.2.3
 29077:20180228:213330.397 7f6273524000-7f627365a000 r-xp 00000000 fd:00 1177507                    /usr/lib64/mysql/libmysqlclient.so.16.0.0
 29077:20180228:213330.397 7f627365a000-7f6273859000 ---p 00136000 fd:00 1177507                    /usr/lib64/mysql/libmysqlclient.so.16.0.0
 29077:20180228:213330.397 7f6273859000-7f62738a7000 rw-p 00135000 fd:00 1177507                    /usr/lib64/mysql/libmysqlclient.so.16.0.0
 29077:20180228:213330.397 7f62738a7000-7f62738a8000 rw-p 00000000 00:00 0
 29077:20180228:213330.397 7f62738a8000-7f62738c8000 r-xp 00000000 fd:00 1044490                    /lib64/ld-2.12.so
 29077:20180228:213330.397 7f6273ac8000-7f6273ac9000 r--p 00020000 fd:00 1044490                    /lib64/ld-2.12.so
 29077:20180228:213330.397 7f6273ac9000-7f6273aca000 rw-p 00021000 fd:00 1044490                    /lib64/ld-2.12.so
 29077:20180228:213330.397 7f6273aca000-7f6273acb000 rw-p 00000000 00:00 0
 29077:20180228:213330.397 7f6273acb000-7f6273c5f000 r-xp 00000000 fd:00 1181821                    /usr/sbin/zabbix_proxy_mysql
 29077:20180228:213330.397 7f6273d0d000-7f6273e41000 rw-s 00000000 00:04 4259843                    /SYSV00000000 (deleted)
 29077:20180228:213330.397 7f6273e41000-7f6273e57000 rw-p 00000000 00:00 0
 29077:20180228:213330.397 7f6273e59000-7f6273e5a000 rw-p 00000000 00:00 0
 29077:20180228:213330.397 7f6273e5a000-7f6273e5d000 rw-s 00000000 00:04 4292612                    /SYSV00000000 (deleted)
 29077:20180228:213330.397 7f6273e5d000-7f6273e5e000 rw-p 00000000 00:00 0
 29077:20180228:213330.397 7f6273e5e000-7f6273e5f000 rw-p 00000000 00:00 0
 29077:20180228:213330.397 7f6273e5f000-7f6273ec7000 r--p 00194000 fd:00 1181821                    /usr/sbin/zabbix_proxy_mysql
 29077:20180228:213330.398 7f6273ec7000-7f6273ed0000 rw-p 001fc000 fd:00 1181821                    /usr/sbin/zabbix_proxy_mysql
 29077:20180228:213330.398 7f6273ed0000-7f6273ed7000 rw-p 00000000 00:00 0
 29077:20180228:213330.398 7f62748ab000-7f62748cc000 rw-p 00000000 00:00 0
 29077:20180228:213330.398 7f62748cc000-7f62748fa000 rw-p 00000000 00:00 0
 29077:20180228:213330.398 7f62748fa000-7f62749d3000 rw-p 00000000 00:00 0
 29077:20180228:213330.398 7ffcf0825000-7ffcf083a000 rw-p 00000000 00:00 0                          [stack]
 29077:20180228:213330.398 7ffcf08b5000-7ffcf08b6000 r-xp 00000000 00:00 0                          [vdso]
 29077:20180228:213330.398 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
 29077:20180228:213330.398 ================================
 29077:20180228:213330.398 Please consider attaching a disassembly listing to your bug report.
 29077:20180228:213330.398 This listing can be produced with, e.g., objdump -DSswx zabbix_proxy.
 29077:20180228:213330.398 ================================
 29049:20180228:213330.402 One child process died (PID:29077,exitcode/signal:1). Exiting ...
 29049:20180228:213332.403 syncing history data...
 29049:20180228:213332.415 syncing history data done
 29049:20180228:213332.415 Zabbix Proxy stopped. Zabbix 3.4.6 (revision 76823).


 Comments   
Comment by Vladislavs Sokurenko [ 2018 Mar 03 ]

Please update to 3.4.7 or increase VMwareTimeout as a workaround, thank you for your report, closing as duplicate.





[ZBX-13477] Proxy Crash VMware Collector Created: 2018 Feb 15  Updated: 2018 Feb 16  Resolved: 2018 Feb 15

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.4.6
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: AndrwSmmr Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: crash, proxy, server, vmware
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: HTML File proxy_crash_vmware     File zabbix-crash.tar    
Issue Links:
Duplicate
duplicates ZBX-13441 Zabbix Server stopped Closed

 Description   

My VMware Proxy crashes regularly because of the VMware Collector.
I originally deployed a Proxy for monitoring VMware because my Main Server kept crashing. (Because of VMware Collector)

I would really appreciate any help:

 19359:20180215:115611.533 === Backtrace: ===
 19359:20180215:115611.534 14: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](zbx_log_fatal_info+0x176) [0x5644a912ff72]
 19359:20180215:115611.534 13: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](+0xd5401) [0x5644a9130401]
 19359:20180215:115611.534 12: /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390) [0x7f492488f390]
 19359:20180215:115611.534 11: /lib/x86_64-linux-gnu/libc.so.6(cfree+0x22) [0x7f4921a05512]
 19359:20180215:115611.534 10: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](zbx_strdup2+0x32) [0x5644a9142853]
 19359:20180215:115611.534 9: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](+0x6e48d) [0x5644a90c948d]
 19359:20180215:115611.534 8: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](+0x713ca) [0x5644a90cc3ca]
 19359:20180215:115611.534 7: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](+0x73677) [0x5644a90ce677]
 19359:20180215:115611.534 6: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](vmware_thread+0x303) [0x5644a90d0548]
 19359:20180215:115611.534 5: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](zbx_thread_start+0x37) [0x5644a914063c]
 19359:20180215:115611.534 4: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](MAIN_ZABBIX_ENTRY+0xb34) [0x5644a908ecc7]
 19359:20180215:115611.534 3: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](daemon_start+0x31f) [0x5644a912f5ca]
 19359:20180215:115611.534 2: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](main+0x305) [0x5644a908e17d]
 19359:20180215:115611.534 1: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f49219a1830]
 19359:20180215:115611.534 0: /usr/sbin/zabbix_proxy: vmware collector #2 [updated 0, removed 0 VMware services in 0.000005 sec, querying VMware services](_start+0x29) [0x5644a908c8e9]

I attached the full crash log.
How do I attach the Objectdump ? its 40MBs big...

Thanks!



 Comments   
Comment by AndrwSmmr [ 2018 Feb 15 ]

Proxy is running on Ubuntu 16.04.3 LTS 4.4.0-112-generic #135

Comment by Vladislavs Sokurenko [ 2018 Feb 15 ]

Looks like a duplicate of ZBX-13441

Could you please increase log level of vmware collectors and attach log ?

zabbix_proxy -R log_level_increase='vmware collector'
Comment by AndrwSmmr [ 2018 Feb 15 ]

Log with increased log level. Thank you!

Comment by Vladislavs Sokurenko [ 2018 Feb 15 ]

For some reason log level is only increase of one process of vmware collectors, can you please try again and make sure that all processes have started when you increase log level ?

Comment by Glebs Ivanovskis (Inactive) [ 2018 Feb 15 ]

Thank you for the log file!

 29598:20180215:145103.065 In vmware_service_get_hv_list()
 29598:20180215:145133.068 Got signal [signal:11(SIGSEGV),reason:1,refaddr:0x10000001c]. Crashing ...

This is definitely a Duplicate of ZBX-13441. Closing.

Update to 3.4.7rc2, recompile Zabbix with the patch attached to ZBX-13441 or try to increase VMwareTimeout as a temporary countermeasure.

Comment by AndrwSmmr [ 2018 Feb 16 ]

I doubled the timeout from 30 -> 60 seems stable now.

Thank you very much for your quick help!





[ZBX-13130] Not registered Zabbix proxies may cause high traffic/overload Zabbix server network interface Created: 2017 Dec 02  Updated: 2024 Apr 10  Resolved: 2018 Jan 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.4.4
Fix Version/s: 3.4.7rc1, 4.0.0alpha3, 4.0 (plan)

Type: Problem report Priority: Major
Reporter: Oleg Ivanivskyi Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 0
Labels: encryption, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 3.4.4 with active proxies


Attachments: PNG File traffic.png    
Team: Team A
Team: Team A
Sprint: Sprint 25
Story Points: 1

 Description   

Steps to reproduce:

  1. Install several Zabbix proxies (use active mode)
  2. Enable PSK based encryption for the proxies
  3. Don't add proxies in the frontend for now
  4. Wait for an hour
  5. Check incoming traffic on Zabbix server

Result:
Each proxy generates ~11 Mbps of traffic. I.e. 10 proxies will push ~110 Mbps. Imagine if you have 1000 of proxies... These not registered proxies may overload Zabbix server network interface easily.

Steps to reproduce:

  1. Add these new proxies in the frontend (Administration --> Proxies)
  2. Wait for a moment and check incoming traffic graph again. You will see that each proxy will use ~10Kbps now (proxy has no monitored hosts).

Expected:
Not registered proxy should generate less traffic or send configuration request not so frequently.

Notes:

  • I didn't test passive proxies
  • I didn't test proxies without encryption


 Comments   
Comment by Oleg Ivanivskyi [ 2017 Dec 02 ]

Missing proxies were added in Zabbix at 9:33-9:37.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Dec 04 ]

https://en.wikipedia.org/wiki/Exponential_backoff

Comment by Vladislavs Sokurenko [ 2018 Jan 08 ]

Fixed in development branch:
svn://svn.zabbix.com/branches/dev/ZBX-13130

Comment by Vladislavs Sokurenko [ 2018 Jan 08 ]

It's not related to encryption.

Comment by Andris Zeila [ 2018 Jan 09 ]

(1)
I think for described situation 1 second sending interval is still too much. It would be better either to use predefined larger interval in the case of sending error (1minute for example) or as Gleb suggested - increase the interval exponentially until some limit.

wiper After short discussion it was decided to send empty proxy data requests after failing to put data to server until server returns success response.

vso RESOLVED in r76714

wiper tested with a slight variation in r76729, please review

vso CLOSED with small style fixes in 76729:r76731

Comment by Vladislavs Sokurenko [ 2018 Jan 16 ]

Fixed in:

  • pre-3.4.7rc1 r76887
  • pre-4.0.0alpha3 (trunk) r76888




[ZBX-12971] Agent icon does not become green due to monitoring via proxy. Created: 2017 Nov 01  Updated: 2024 Apr 10  Resolved: 2017 Nov 17

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.0.13, 3.4.4, 4.0.0alpha1
Fix Version/s: 3.0.14rc1, 3.4.5rc1, 4.0.0alpha1, 4.0 (plan)

Type: Problem report Priority: Major
Reporter: Kazuo Ito Assignee: Vladislavs Sokurenko
Resolution: Fixed Votes: 1
Labels: availability, interfaces, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix3.0.10


Attachments: PNG File Host.png     PNG File Host2.png     PNG File Item.png     PNG File Latest_data.png    
Issue Links:
Duplicate
Team: Team A
Team: Team A
Sprint: Sprint 20, Sprint 21
Story Points: 0.25

 Description   

In the following cases the icon will not change green.
1)Register host via proxy(Status is disable).

2)Register item of "Zabbix agent" type

3)Change host as enable.


Monitoring is done but the icon does not change green.

Host is not available but data has been acquired.

mysql> select hostid, host, status, available, lastaccess from hosts where host = 'test';
+--------+------+--------+-----------+------------+
| hostid | host | status | available | lastaccess |
+--------+------+--------+-----------+------------+
|  10114 | test |      0 |         0 |          0 |
+--------+------+--------+-----------+------------+
1 row in set (0.00 sec)

mysql> select itemid, name , key_ from items where key_ = 'agent.ping' and hostid =10114;
+--------+------+------------+
| itemid | name | key_       |
+--------+------+------------+
|  23677 | test | agent.ping |
+--------+------+------------+
1 row in set (0.00 sec)

mysql> select itemid, from_unixtime(clock), value from history_uint where itemid=23677 limit 0,1;
+--------+----------------------+-------+
| itemid | from_unixtime(clock) | value |
+--------+----------------------+-------+
|  23677 | 2017-11-01 16:23:53  |     1 |
+--------+----------------------+-------+
1 row in set (0.00 sec)


When you restart Zabbix proxy, the icon changes to green.



 Comments   
Comment by Andrea Biscuola (Inactive) [ 2017 Nov 01 ]

Hi kazuo.ito

I'm not actually able to reproduce it with the latest version released for the 3.0 branch.
Could you be so kind to try and reproduce the issue with 3.0.12?
Also, can you provide informations on how the proxy is setup? Active or Passive?

Thanks!

Comment by Kazuo Ito [ 2017 Nov 02 ]

Hi Andrea Biscuola

proxy is Active.

I confirmed this problem at 3.0.10.
I will check it in 3.0.12 from now.

Thanks.

Comment by Kazuo Ito [ 2017 Nov 02 ]

Hi Andrea Biscuola

I checked with Zabbix 3.0.12.
This problem no longer occurred.

I confirmed the occurrence of this problem at 3.0.10.
I think that it was solved by the correction of 3.0.11 or 3.0.12.

Thanks!

Comment by Andrea Biscuola (Inactive) [ 2017 Nov 02 ]

Close the problem as FIXED. Being solved between 3.0.11 and 3.0.12

Comment by Andrea Biscuola (Inactive) [ 2017 Nov 02 ]

I can confirm that the issue was fixed in 3.0.11, was able to reproduce on 3.0.10 as
the user reported. I'm finalizing the search of the commit that fixed this.

Comment by Andrea Biscuola (Inactive) [ 2017 Nov 03 ]

I'm not able to pin-point exactly where it was fixed, the issue seems to be
not consistently reproducible across 3.0.11 commits. It seems related to
some race condition in a database update, but I was not able to find still
the exact commit where this condition was "fixed". As I need to switch to
finish ZBXNEXT-4002, I'll go back investigating this later.

Comment by Valdis Kauķis (Inactive) [ 2017 Nov 06 ]

I could reproduce a very similar scenario with Zabbix 3.0.13 r74314:

  • Initially agent is running, proxy and server are not.
  • Create and disable some host to be accessed via passive proxy, add (passive) item agent.ping
  • Manually reset host to gray: UPDATE `zabbix30`.`hosts` SET `available`='0' WHERE `hostid`=10122
  • Start proxy
  • Start server
  • Enable the host in Frontend
  • agent.ping data starts coming, but status remains gray (available==0).
  • kill proxy, start proxy
  • status turns green (available==1).

In this sequence, proxy and server can be started in any order – status update does not happen.
Server can afterwards be killed and restarted many times – status does not change (stays gray).
As you restart proxy, status soon becomes green (available).

Comment by Andrea Biscuola (Inactive) [ 2017 Nov 07 ]

valdis

If something similar can happen with the latest version, it seems
that we definitely have a race or concurrency problem somewhere
that cause this kind of behaviour.
It's absolutely possible that some and I think, completely unrelated
commit fixed the particular case the user reported but the root
cause is still there.
Can you confirm, eventually, that reproducing the issue as the user
reported (through the procedure the user suggest to do), is not
possible with 3.0.13?

Comment by Alexander Vladishev [ 2017 Nov 07 ]

Steps to reproduce:

0. Start Zabbix server, active proxy and agent
1. Register disabled host with ZA item with 5s update interval, monitored by proxy
2. Update configuration cache on server
3. Update configuration cache on proxy
4. Enable host
5. Update configuration cache on proxy
6. Wait >10 seconds
7. Update configuration cache on server

Reproducible on 3.0.10 and latest 3.0.13.

I confirm this issue.

Comment by Andris Zeila [ 2017 Nov 16 ]

Successfully tested (3.0, 3.4)

Comment by Vladislavs Sokurenko [ 2017 Nov 16 ]

Fixed in:

  • pre-3.0.14rc1 r74664
  • pre-3.4.5rc1 r74665
  • pre-4.0.0alpha1 (trunk) r74666
Comment by Oleksii Zagorskyi [ 2018 Apr 23 ]

There might be a regression or another use case - ZBX-13788

Comment by Marc [ 2018 Jul 30 ]

Since ZBX-14447 was reverted due to compatibility issues, what is the current status on this? Will it be implemented differently in one of the next updates or in the next major release only?

Comment by richlv [ 2018 Aug 12 ]

As per Marc's question above, can this please be reopened?

Comment by Vladislavs Sokurenko [ 2018 Aug 12 ]

Could you please be so kind and describe issue that you are having ? Is it same issue as in ZBX-13788 ?

Comment by richlv [ 2018 Aug 13 ]

The fix for this issue was supposedly reverted. When upgrading, should users be aware of the problem, reported in this issue, returning after the revert?

Comment by Vladislavs Sokurenko [ 2018 Aug 13 ]

ZBX-13788 fix was rolled back

Comment by richlv [ 2018 Aug 13 ]

Thank you, but that issue has no comment indicating it and is closed as fixed - is that correct?





[ZBX-12637] SNMP and/or Zabbix Agent data stops sync Created: 2017 Aug 29  Updated: 2017 Aug 29  Resolved: 2017 Aug 29

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.2.7
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Érick Rangel Gomes Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: proxy, server, synchronization
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian 8, 64 bits, 4 VCPU, 8GB, 530.94 nvps


Attachments: PNG File Zabbix error 2.PNG     PNG File Zabbix error.PNG     File zabbix_server.log.old    

 Description   

I'm facing a weird behavior.
I have one Zabbix Server and four Zabbix Proxies, running in differents infraestructures. Sometimes, a randomly host stops sync Zabbix Agent or SNMP data to Zabbix Server, without stoping the ICMP data. And sometimes too, after a few days or hours, the hosts returns to sync.If I delete the host and create it again, the new data starts do sync normally. My Zabbix DB it's in another vm.
Looking in the zabbix_server.log and zabbix_proxy.log I didn't found any errors that explain this. This occurs with different hosts and proxies.
I attached my log in debuglevel=4 zabbix_server.log.



 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2017 Aug 29 ]

Sorry, what do you mean by this?

host stops sync Zabbix Agent or SNMP data to Zabbix Server

Comment by Érick Rangel Gomes [ 2017 Aug 29 ]

The data from this host stopped to arrive on Zabbix Server, but it is reachable by SNMP, and when I execute a snmpwalk or snmpget it return value.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Aug 29 ]

There is no indication of a bug. For available support options please see http://zabbix.org/wiki/Getting_help

Closing as Won't Fix.

Comment by Érick Rangel Gomes [ 2017 Aug 29 ]

Here an example, executing from the Zabbix Proxy, getting the data.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Aug 29 ]

What is update interval of these items?

Comment by Érick Rangel Gomes [ 2017 Aug 29 ]

60 seconds





[ZBX-12575] Redeploy proxy after agent restart. Created: 2017 Aug 23  Updated: 2017 Aug 23  Resolved: 2017 Aug 23

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P)
Affects Version/s: 3.2.7, 3.4.0
Fix Version/s: None

Type: Problem report Priority: Minor
Reporter: Nicki Bo Otte Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: agent, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-12549 Items can be stuck when host becomes ... Closed

 Description   

We just started using zabbix proxy for about 3 months ago.

When we have deployed (Monitored by proxy tab on host), and restart the zabbix agent on the given server, every zabbix agent item like 'agent.ping' gives no data. Userparameters, still seem to work.
If we then redeploy(Save no proxy, and then puts the same proxy on again), it seems to work again.

We have seen this happen on 3.2.x and now on 3.4.x

We now run with 3.4 on the proxy, server and on the client agent.



 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2017 Aug 23 ]

Closing as Duplicate of ZBX-12549.





[ZBX-12462] Proxy DB upgrade to 3.4.0alpha2 fails Created: 2017 Aug 03  Updated: 2024 Apr 10  Resolved: 2017 Aug 23

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 3.4.0alpha2
Fix Version/s: 3.4.0beta2

Type: Problem report Priority: Major
Reporter: dimir Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: failure, proxy, upgrade
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian GNU/Linux 9


Attachments: File zabbix-3.4.0alpha2-proxy-upgrade.patch    
Team: Team B
Team: Team B
Sprint: Sprint 13, Sprint 14, Sprint 15
Story Points: 0.25

 Description   

Upgrading from 3.2.7 to 3.4.0alpha2, server succeeded, proxy exited with the following error:

[...]
 17440:20170803:130830.175 completed 94% of database upgrade
 17440:20170803:130830.176 query [txnlev:1] [begin;]
 17440:20170803:130830.176 query [txnlev:1] [insert into dashboard (dashboardid,name,userid,private) values (1,'Dashboard',(select min(userid) from users where type=3),0)]
 17440:20170803:130830.177 [Z3005] query failed: [1048] Column 'userid' cannot be null [insert into dashboard (dashboardid,name,userid,private) values (1,'Dashboard',(select min(userid) from users where type=3),0)]
 17440:20170803:130830.177 query [insert into dashboard (dashboardid,name,userid,private) values (1,'Dashboard',(select min(userid) from users where type=3),0)] failed, setting transaction as failed
 17440:20170803:130830.177 query [txnlev:1] [rollback;]
 17440:20170803:130830.177 database upgrade failed
 17440:20170803:130830.177 End of DBcheck_version():FAIL
[...]


 Comments   
Comment by dimir [ 2017 Aug 03 ]

Introduced in ZBXNEXT-2102.

I guess we need to add if (ZBX_PROGRAM_TYPE_SERVER == program_type) to that SQL statement.

Patch attached.

Comment by Alexander Vladishev [ 2017 Aug 03 ]

dimir, thanks for a patch. Successfully tested and merged directly to 3.4.0beta2 (trunk) r70903.





[ZBX-12445] Deadlock on SQLite reconnect Created: 2017 Jul 31  Updated: 2017 Jul 31

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Vladislavs Sokurenko Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: proxy, sqlite
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File deadlock.diff    
Story Points: 0.5

 Description   

Even though errors are unlikely with SQLite, Proxy will hang when trying to reconnect if SQLite error is encountered during transaction.

Patch attached.






[ZBX-12399] UserParameter JSON with zabbix-proxy Created: 2017 Jul 20  Updated: 2024 Apr 10  Resolved: 2017 Aug 21

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: 3.2.6
Fix Version/s: None

Type: Problem report Priority: Major
Reporter: mzhuravlev Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: LLD, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

OS: RHEL 7; DBServer: oracle; DBProxy: postgresql; Agent platform: Windows: Script(UserParameter: VBS


Issue Links:
Duplicate
duplicates ZBX-11855 Carriage Return Causes Data Truncatio... Closed
Team: Team C
Team: Team C
Sprint: Sprint 13, Sprint 14

 Description   

Does not work LLD if the agent works through zabbix-proxy (Error: value should be a JSON object), but if the agent works through a server, everything works fine.
As a test we made a static item of type TEXT.
The result of his work:
Proxy:

{

"data":[

{

"{#G}":"company",

"{#F}":"OS_ISO",

"{#S}":"ServerName",

"{#R}":"KEY"

Server:

{

"data":[

{

"{#G}":"company",

"{#F}":"OS_ISO",

"{#S}":"ServerName",

"{#R}":"KEY"

}

]

}


 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2017 Jul 23 ]

What is the version of Zabbix proxy you are using? 3.2.4? May be a duplicate of ZBX-11855.

Comment by mzhuravlev [ 2017 Aug 21 ]

The problem was solved after the upgrade to 3.2.6
Thank you!

Comment by mzhuravlev [ 2017 Aug 21 ]

The problem was solved after the upgrade to 3.2.6

Comment by Glebs Ivanovskis (Inactive) [ 2017 Aug 21 ]

Reopening to change Resolution.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Aug 21 ]

Closing as Duplicate of ZBX-11855.





[ZBX-12079] Discovery reporting error "Values should be a JSON object" on proper JSON Created: 2017 Apr 19  Updated: 2017 May 30  Resolved: 2017 Apr 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.2.4
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Nick Duke Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: discovery, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 16.10 running Zabbix Server 3.2.4 and Proxy versions 3.2.4 or 3.0.4


Attachments: PNG File 304-proxy.PNG     PNG File 324-proxy.PNG    
Issue Links:
Duplicate
duplicates ZBX-11855 Carriage Return Causes Data Truncatio... Closed

 Description   

I have an issue where running a discovery is failing. This has been working for years. When looking at the host configuration > discovery there is the red "!" and it says "Value should be a JSON object." Every server, new or old, is now failing where it used to work.

Our script or agent config hasn't changed. I have recently updated the server and all proxies except 1 to 3.2.4. The discovery items are working on servers running under the one proxy that is still on 3.0.4.

I ran zabbix_get from the proxy to the servers to see what was being returned from the discovery, and it is in fact good JSON. I used an online validation tool to verify.

This is an example of the discovery that shows as failed from a 3.2.4 proxy:

$zabbix_proxy --version
zabbix_proxy (Zabbix) 3.2.4
Revision 65975 27 February 2017, compilation time: Mar  1 2017 04:52:47
$zabbix_get -s server1 -k hp.discovery[fans]
{
        "data":
        [
                {
                        "{#FANNO}":"1_2",
                        "{#FANNAME}":"System board 1",
                        "{#FANTYPE}":"System board",
                        "{#FANVARSPEED}":"True"
                },
                {
                        "{#FANNO}":"3_2",
                        "{#FANNAME}":"System board 2",
                        "{#FANTYPE}":"System board",
                        "{#FANVARSPEED}":"True"
                },
                {
                        "{#FANNO}":"4_2",
                        "{#FANNAME}":"System board 3",
                        "{#FANTYPE}":"System board",
                        "{#FANVARSPEED}":"True"
                }
        ]
}

And here is a discovery that is working from the 3.0.4 proxy:

$ zabbix_proxy --version
zabbix_proxy (Zabbix) 3.0.4
Revision 61185 15 July 2016, compilation time: Aug  6 2016 04:21:45
$zabbix_get -s server2 -k hp.discovery[fans]
{
        "data":
        [
                {
                        "{#FANNO}":"1_2",
                        "{#FANNAME}":"System board 1",
                        "{#FANTYPE}":"System board",
                        "{#FANVARSPEED}":"True"
                },
                {
                        "{#FANNO}":"3_2",
                        "{#FANNAME}":"System board 2",
                        "{#FANTYPE}":"System board",
                        "{#FANVARSPEED}":"True"
                },
                {
                        "{#FANNO}":"4_2",
                        "{#FANNAME}":"System board 3",
                        "{#FANTYPE}":"System board",
                        "{#FANVARSPEED}":"True"
                }
        ]
}

When compared, they are the exact same. The only difference is what proxy they are going through. Attached are screenshots of the failed and working configuration > host > discovery rules pages.



 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2017 Apr 19 ]

Closing as Duplicate of ZBX-11855.

Comment by richlv [ 2017 Apr 19 ]

it's probably worth noting that mixing 3.0 and 3.2 server/proxy is not supported (not related to the problem here)

Comment by Nick Duke [ 2017 Apr 19 ]

richlv, thanks for specifying for any others that might see this. In our case, it is at a site we are decommissioning, so I haven't bothered to update it as it will just be going away. Hopefully the fix in 3.2.5 can get out to the others soon enough as we don't have hardware health monitoring without it.





[ZBX-11893] Zabbix admins cannot import hosts that have a proxy configured Created: 2017 Mar 10  Updated: 2024 Apr 10  Resolved: 2018 Feb 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 3.0.7
Fix Version/s: 2.2.18rc1, 3.0.9rc1, 3.2.5rc1, 3.4.0alpha1

Type: Incident report Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: Configuration, hosts, import, permissions, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team B
Team: Team B
Sprint: Sprint 3, Sprint 4
Story Points: 0.5

 Description   

Zabbix admins cannot import hosts that have a proxy configured.

I presume it could be caused by expecting Read-write permission to the proxies one wants to resolve its names to ids. What is kind of pointless in regards to proxies, isn't it?

resolveHostReferences()
  resolveProxy()
    selectProxyes()
      $dbProxy = API::Proxy()->get([
        'filter' => ['host' => $this->proxies],
        'output' => ['hostid', 'host'],
        'preservekeys' => true,
        'editable' => true
      ]);


 Comments   
Comment by Valdis Murzins [ 2017 Mar 14 ]

(1) No translation strings changed.

sasha CLOSED

Comment by Valdis Murzins [ 2017 Mar 14 ]

Fixed in svn://svn.zabbix.com/branches/dev/ZBX-11893

Comment by Valdis Murzins [ 2017 Mar 22 ]

Fixed in 2.2.18rc1 r66644, 3.0.9rc1 r66646, 3.2.5rc1 r66647, 3.4.0alpha1 r66652

Comment by Ivo Kurzemnieks [ 2018 Feb 15 ]

(2) [D] API documentation is missing for this fix.

sasha WON'T FIX





[ZBX-11889] Zabbix do not update lastaccess for passive proxy Created: 2017 Mar 09  Updated: 2024 Apr 10  Resolved: 2017 Apr 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 3.2.4
Fix Version/s: 3.0.9rc1, 3.2.5rc1, 3.4.0alpha1

Type: Incident report Priority: Blocker
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: passiveproxy, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix passive proxy


Team: Team A
Team: Team A
Sprint: Sprint 3, Sprint 4, Sprint 5
Story Points: 3

 Description   

If proxy has more than 1000 values to send, Zabbix server does not update lastaccess (last seen) field.



 Comments   
Comment by Vladislavs Sokurenko [ 2017 Mar 09 ]

Is there some kind of warning like:

"proxy \"%s\" at \"%s\" returned no history" " data: check allowed connection types and access rights", proxy.host, proxy.addr

What does get_data_from_proxy() return ? Do you have log ?

Comment by Viktors Tjarve [ 2017 Mar 16 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-11889

This issue has to do with receiving more than 1000 values from proxy and then after handling the first 1000 loosing connection or receiving invalid data instead of the the rest of the values. Now if any valid data is received before something going wrong, the lastaccess will be updated.

Comment by Sergejs Paskevics [ 2017 Mar 24 ]

(1) This way to setting the lastaccess time is not quite correct since it sets the time of the first error, but you need the time of the last successful update.

viktors.tjarve RESOLVED in r66746 and r66747.

s.paskevics CLOSED.

Comment by Viktors Tjarve [ 2017 Mar 28 ]

(2) Initialise the new variable last_access for every host that is being processed. Also set the current time value when configuration data to proxy has been successful sent and data for host availability has been received.

viktors.tjarve RESOLVED in r66846.

s.paskevics CLOSED.

Comment by Sergejs Paskevics [ 2017 Apr 03 ]

(3) Function comments are not updated in svn://svn.zabbix.com/branches/dev/ZBX-11889_34 - proxy_get_data, proxy_get_host_availability, proxy_get_history_data, proxy_get_discovery_data and proxy_get_auto_registration. Please check my minor changes r67128.

viktors.tjarve RESOLVED in r67140.
Also fixed function header in ^/branches/dev/ZBX-11889 - r67141.

Changes in r67128 look good.

s.paskevics CLOSED.

Comment by Sergejs Paskevics [ 2017 Apr 07 ]

Successfully tested.

Comment by Viktors Tjarve [ 2017 Apr 10 ]

Released in:

  • 3.0.9rc1 r67165
  • 3.2.5rc1 r67171
  • 3.4.0alpha1 r67173




[ZBX-11768] "cannot find open problem events for triggerid" message appears in zabbix_server.log after upgrade to 3.2.2 Created: 2017 Feb 02  Updated: 2024 Apr 10  Resolved: 2017 Nov 22

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 3.2.2, 3.4.0alpha1
Fix Version/s: None

Type: Problem report Priority: Major
Reporter: Oleksii Zagorskyi Assignee: Unassigned
Resolution: Duplicate Votes: 3
Labels: delay, events, problems, proxy, timer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-12251 New values aren't counted towards tri... Closed
Team: Team A
Team: Team A
Sprint: Sprint 14, Sprint 15, Sprint 16, Sprint 17, Sprint 18, Sprint 19, Sprint 20, Sprint 21
Story Points: 0

 Description   

This a a followup of ZBX-11454, which fixed a mysterious issue by workaround it, which is not any bad.
But actual reason why the issue happens - is unknown yet.
When it happens, starting from 3.2.2, server log file this warning is written:

cannot find open problem events for triggerid:812922, lastchange:1480003403

The ZBX-11454 contains some data of my investigation on a production installation.



 Comments   
Comment by Stefan Priebe [ 2017 Apr 18 ]

I'm running zabbix_server (Zabbix) 3.2.4 and i'm seeing the same issue:
26194:20170418:114904.245 cannot find open problem events for triggerid:308108, lastchange:1492508938
26192:20170418:115205.743 cannot find open problem events for triggerid:100787, lastchange:1492509125
26194:20170418:120454.294 cannot find open problem events for triggerid:100349, lastchange:1492509893

Comment by Alexander Vladishev [ 2017 Aug 10 ]

Related issue: ZBX-11426

Comment by Vladislavs Sokurenko [ 2017 Aug 10 ]

Please zalex_ua next time check if housekeeper was executed between trigger entered into problem state and this message you mention was displayed, also please check if there were any failed queries that could cause history synchronization transaction to fail.

As I see in original issue you say

Housekeeper is configured to keep 180 days of trigger events.

I see it this way:
timer generates a PROBLEM (as it should), a second+ later syncer processes data from proxy (delayed by 1-5 seconds) and closes the PROBLEM but does NOT switch trigger to OK.
After 30 seconds timer sees the trigger still in PROBLEM and tries to close it, but could not find opened problem.

So I believe there is more possibility that it is related to ZBX-12251

Comment by Vladislavs Sokurenko [ 2017 Nov 22 ]

It has been reported that issue is still present in 3.4.4 so closing as duplicate of ZBX-12251





[ZBX-10819] Cannot compile Zabbix server/proxy on Solaris 10 Created: 2016 May 18  Updated: 2017 May 30  Resolved: 2016 Jun 07

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.0.1, 3.0.2
Fix Version/s: 2.0.19rc1, 2.2.14rc1, 3.0.4rc1, 3.2.0alpha1

Type: Incident report Priority: Major
Reporter: Anton Alekseev Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, server, solaris
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Solaris 10 SPARC



 Description   

Compilation of Zabbix server/proxy on Solaris SPARC fails with error:

snmptrapper.c: In function `read_traps':
snmptrapper.c:416: error: `INT_MAX' undeclared (first use in this function)
snmptrapper.c:416: error: (Each undeclared identifier is reported only once
snmptrapper.c:416: error: for each function it appears in.)
snmptrapper.c: In function `open_trap_file':
snmptrapper.c:475: error: `INT_MAX' undeclared (first use in this function)
snmptrapper.c: In function `get_latest_data':
snmptrapper.c:541: error: `INT_MAX' undeclared (first use in this function)

I solved it by replacing INT_MAX with ZBX_MAX_UINT64 in file src/zabbix_server/snmptrapper/snmptrapper.c:

416c416
<               if (INT_MAX < (zbx_uint64_t)trap_lastsize + nbytes)
---
>               if (ZBX_MAX_UINT64 < (zbx_uint64_t)trap_lastsize + nbytes)
475c475
<       if (INT_MAX < file_buf.st_size)
---
>       if (ZBX_MAX_UINT64 < file_buf.st_size)
541c541
<               else if (INT_MAX < file_buf.st_size)
---
>               else if (ZBX_MAX_UINT64 < file_buf.st_size)

There were the issues like this before: ZBX-5782 and ZBX-4555.



 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2016 May 18 ]

You are probably the first man to compile Zabbix server and proxy on Solaris!

Your solution does not seem correct to me, because INT_MAX is not used there to check for numeric overflow, but to restrict SNMP trap file. This piece of code clearly shows this:

	if (INT_MAX < file_buf.st_size)
	{
		if (0 == overflow_warning)
		{
			zabbix_log(LOG_LEVEL_CRIT, "cannot process SNMP trapper file \"%s\":"
					" file size exceeds the maximum supported size of 2 GB",
					CONFIG_SNMPTRAP_FILE);
			overflow_warning = 1;
		}
		goto out;
	}

Proper solution would be to #define ZBX_MAX_SNMP_TRAP_FILE (2 * ZBX_GIBIBYTE) and use it in snmptrapper.c instead of INT_MAX. (Actually, one should be very cautious with int overflow in #define.)

Caused by ZBX-9858.

Comment by Viktors Tjarve [ 2016 Jun 02 ]

Tested on Solaris 10
Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-10819

Comment by Alexander Vladishev [ 2016 Jun 06 ]

(1) compilation warnings:

In file included from snmptrapper.c:20:0:
snmptrapper.c: In function ‘read_traps’:
../../../include/common.h:859:39: warning: integer overflow in expression [-Woverflow]
 #define ZBX_SNMP_TRAPFILE_MAX_SIZE (2 * ZBX_GIBIBYTE)
                                       ^
snmptrapper.c:405:7: note: in expansion of macro ‘ZBX_SNMP_TRAPFILE_MAX_SIZE’
   if (ZBX_SNMP_TRAPFILE_MAX_SIZE < (zbx_uint64_t)trap_lastsize + nbytes)
       ^
snmptrapper.c: In function ‘open_trap_file’:
../../../include/common.h:859:39: warning: integer overflow in expression [-Woverflow]
 #define ZBX_SNMP_TRAPFILE_MAX_SIZE (2 * ZBX_GIBIBYTE)
                                       ^
snmptrapper.c:464:6: note: in expansion of macro ‘ZBX_SNMP_TRAPFILE_MAX_SIZE’
  if (ZBX_SNMP_TRAPFILE_MAX_SIZE < file_buf.st_size)
      ^
snmptrapper.c: In function ‘get_latest_data’:
../../../include/common.h:859:39: warning: integer overflow in expression [-Woverflow]
 #define ZBX_SNMP_TRAPFILE_MAX_SIZE (2 * ZBX_GIBIBYTE)
                                       ^
snmptrapper.c:530:12: note: in expansion of macro ‘ZBX_SNMP_TRAPFILE_MAX_SIZE’
   else if (ZBX_SNMP_TRAPFILE_MAX_SIZE < file_buf.st_size)
            ^

sasha RESOLVED in r60517

viktors.tjarve CLOSED

Comment by Alexander Vladishev [ 2016 Jun 06 ]

Successfully tested! Close (1) before a merge.

Comment by Viktors Tjarve [ 2016 Jun 06 ]

(2) compilation warnings:

snmptrapper.c: In function ‘open_trap_file’:
snmptrapper.c:464:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (ZBX_SNMP_TRAPFILE_MAX_SIZE <= file_buf.st_size)
                                 ^
snmptrapper.c: In function ‘get_latest_data’:
snmptrapper.c:530:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   else if (ZBX_SNMP_TRAPFILE_MAX_SIZE <= file_buf.st_size)

viktors.tjarve RESOLVED in r60527

sasha Thanks! CLOSED

Comment by Viktors Tjarve [ 2016 Jun 07 ]

Released in:

  • 2.0.19rc1 r60552
  • 2.2.14rc1 r60553
  • 3.0.4rc1 r60554
  • 3.1.0 r60557




[ZBX-10766] hosts monitored by proxy do not switch triggers to Unknown if host becomes unavailable Created: 2016 May 09  Updated: 2022 Oct 08  Resolved: 2019 Mar 26

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.0.17, 2.2.12, 3.0.2
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Oleksii Zagorskyi Assignee: Zabbix Development Team
Resolution: Won't fix Votes: 1
Labels: availability, internalevents, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

If host (agent) is monitored by proxy - only host status will be updated but its triggers will stay Normal, which is not consistent when you monitor agent directly by server.

Server debug log for host monitored by proxy:

 29734:20160509:121040.332 __zbx_zbx_setproctitle() title:'escalator #1 [processed 0 escalations in 0.000639 sec, idle 3 sec]'
 29719:20160509:121040.645 __zbx_zbx_setproctitle() title:'trapper #5 [processing data]'
 29719:20160509:121040.645 trapper got '{"request":"host availability","host":"first_test_proxy","data":[{"hostid":10106,"available":2,"error":"Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused","snmp_available":0,"snmp_error":"","ipmi_available":0,"ipmi_error":"","jmx_available":0,"jmx_error":""}]}'
 29719:20160509:121040.645 In recv_host_availability()
 29719:20160509:121040.645 In process_host_availability()
 29719:20160509:121040.645 query [txnlev:1] [begin;]
 29719:20160509:121040.645 query [txnlev:1] [update hosts set available=2,error='Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused' where hostid=10106;]
 29719:20160509:121040.645 query [txnlev:1] [commit;]
 29719:20160509:121040.645 End of process_host_availability()
 29719:20160509:121040.645 In zbx_send_response()
 29719:20160509:121040.646 zbx_send_response() '{"response":"success"}'
 29719:20160509:121040.646 End of zbx_send_response():SUCCEED
 29719:20160509:121040.646 End of recv_host_availability()
 29719:20160509:121040.646 __zbx_zbx_setproctitle() title:'trapper #5 [processed data in 0.000867 sec, waiting for connection]'

server log if host monitored by server:

 23107:20160506:135845.206 __zbx_zbx_setproctitle() title:'unreachable poller #1 [got 0 values in 0.000055 sec, getting values]'
 23107:20160506:135845.206 In get_values()
 23107:20160506:135845.206 In DCconfig_get_poller_items() poller_type:1
 23107:20160506:135845.206 End of DCconfig_get_poller_items():1
 23107:20160506:135845.206 In substitute_key_macros() data:'vfs.fs.size[/,pfree]'
 23107:20160506:135845.206 End of substitute_key_macros():SUCCEED data:'vfs.fs.size[/,pfree]'
 23107:20160506:135845.206 In substitute_simple_macros() data:'10050'
 23107:20160506:135845.206 In get_value() key:'vfs.fs.size[/,pfree]'
 23107:20160506:135845.206 In get_value_agent() host:'test-host2' addr:'127.0.0.1' key:'vfs.fs.size[/,pfree]' conn:'unencrypted'
 23107:20160506:135845.206 End of get_value_agent():NETWORK_ERROR
 23107:20160506:135845.206 Item [test-host2:vfs.fs.size[/,pfree]] error: Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused
 23107:20160506:135845.206 End of get_value():NETWORK_ERROR
 23107:20160506:135845.206 In deactivate_host() hostid:10113 itemid:23843 type:0
 23107:20160506:135845.206 query [txnlev:1] [begin;]
 23107:20160506:135845.206 query [txnlev:1] [update hosts set available=2,error='Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused',disable_until=1462532385 where hostid=10113]
 23107:20160506:135845.207 query [txnlev:1] [commit;]
 23107:20160506:135845.207 temporarily disabling Zabbix agent checks on host "test-host2": host unavailable
 23107:20160506:135845.207 In update_triggers_status_to_unknown() hostid:10113
 23107:20160506:135845.207 query [txnlev:0] [select distinct t.triggerid,t.description,t.expression,t.priority,t.type,t.value,t.state,t.error,t.lastchange from items i,functions f,triggers t,hosts h where i.itemid=f.itemid and f.triggerid=t.triggerid and i.hostid=h.hostid and i.status=0 and i.state=0 and i.type in (0) and f.function not in ('nodata','date','dayofmonth','dayofweek','time','now') and t.status=0 and h.hostid=10113 and h.status=0 and not exists (select 1 from functions f2,items i2,hosts h2 where f2.triggerid=f.triggerid and f2.itemid=i2.itemid and i2.hostid=h2.hostid and (f2.function in ('nodata','date','dayofmonth','dayofweek','time','now') or (i2.type not in (0) and (i2.type not in (0,1,4,6,12,16) or (i2.type in (0) and h2.available=1) or (i2.type in (1,4,6) and h2.snmp_available=1) or (i2.type in (12) and h2.ipmi_available=1) or (i2.type in (16) and h2.jmx_available=1)))) and i2.status=0 and i2.state=0 and h2.status=0) order by t.triggerid]
 23107:20160506:135845.207 In process_trigger() triggerid:13646 value:0(0) new_value:2
 23107:20160506:135845.207 End of process_trigger():SUCCEED
 23107:20160506:135845.207 query [txnlev:1] [begin;]
 23107:20160506:135845.207 query [txnlev:1] [update triggers set state=1,error='Agent is unavailable.' where triggerid=13646]
 23107:20160506:135845.207 query [txnlev:1] [commit;]
 23107:20160506:135845.208 In process_trigger() triggerid:13647 value:0(0) new_value:2
 23107:20160506:135845.208 End of process_trigger():SUCCEED
 23107:20160506:135845.208 query [txnlev:1] [begin;]
 23107:20160506:135845.208 query [txnlev:1] [update triggers set state=1,error='Agent is unavailable.' where triggerid=13647]
 23107:20160506:135845.208 query [txnlev:1] [commit;]
 23107:20160506:135845.208 In process_trigger() triggerid:13648 value:0(0) new_value:2
 23107:20160506:135845.208 End of process_trigger():SUCCEED
 23107:20160506:135845.208 query [txnlev:1] [begin;]
 23107:20160506:135845.208 query [txnlev:1] [update triggers set state=1,error='Agent is unavailable.' where triggerid=13648]
 23107:20160506:135845.208 query [txnlev:1] [commit;]
 23107:20160506:135845.208 query [txnlev:1] [begin;]
 23107:20160506:135845.208 In process_events() events_num:3
 23107:20160506:135845.208 In DCget_nextid() table:'events' num:3
 23107:20160506:135845.208 query [txnlev:1] [select max(eventid) from events where eventid between 0 and 9223372036854775807]
 23107:20160506:135845.208 End of DCget_nextid() table:'events' [71:73]
 23107:20160506:135845.208 query [txnlev:1] [insert into events (eventid,source,object,objectid,clock,ns,value) values (71,3,0,13646,1462532325,206661718,1),(72,3,0,13647,1462532325,206661718,1),(73,3,0,13648,1462532325,206661718,1);]
 23107:20160506:135845.208 In process_actions() events_num:3
 23107:20160506:135845.208 In zbx_dc_get_actions_eval()
 23107:20160506:135845.208 End of zbx_dc_get_actions_eval() actions:1
 23107:20160506:135845.208 In check_action_conditions() actionid:8
 23107:20160506:135845.208 In check_action_condition() actionid:8 conditionid:12 cond.value:'4'
 23107:20160506:135845.208 In check_internal_condition()
 23107:20160506:135845.208 End of check_internal_condition():SUCCEED
 23107:20160506:135845.208 End of check_action_condition():SUCCEED
 23107:20160506:135845.208 End of check_action_conditions():SUCCEED
 23107:20160506:135845.208 In DCget_nextid() table:'escalations' num:1
 23107:20160506:135845.208 query [txnlev:1] [select max(escalationid) from escalations where escalationid between 0 and 9223372036854775807]
 23107:20160506:135845.208 End of DCget_nextid() table:'escalations' [1:1]
 23107:20160506:135845.208 In check_action_conditions() actionid:8
 23107:20160506:135845.208 In check_action_condition() actionid:8 conditionid:12 cond.value:'4'
 23107:20160506:135845.208 In check_internal_condition()
 23107:20160506:135845.208 End of check_internal_condition():SUCCEED
 23107:20160506:135845.208 End of check_action_condition():SUCCEED
 23107:20160506:135845.208 End of check_action_conditions():SUCCEED
 23107:20160506:135845.208 In DCget_nextid() table:'escalations' num:1
 23107:20160506:135845.208 End of DCget_nextid() table:'escalations' [2:2]
 23107:20160506:135845.208 In check_action_conditions() actionid:8
 23107:20160506:135845.208 In check_action_condition() actionid:8 conditionid:12 cond.value:'4'
 23107:20160506:135845.208 In check_internal_condition()
 23107:20160506:135845.208 End of check_internal_condition():SUCCEED
 23107:20160506:135845.208 End of check_action_condition():SUCCEED
 23107:20160506:135845.208 End of check_action_conditions():SUCCEED
 23107:20160506:135845.208 In DCget_nextid() table:'escalations' num:1
 23107:20160506:135845.208 End of DCget_nextid() table:'escalations' [3:3]
 23107:20160506:135845.208 query [txnlev:1] [insert into escalations (escalationid,actionid,status,triggerid,itemid,eventid,r_eventid) values (1,8,0,13646,null,71,null),(2,8,0,13647,null,72,null),(3,8,0,13648,null,73,null);]
 23107:20160506:135845.208 End of process_actions()
 23107:20160506:135845.208 In DBupdate_itservices()
 23107:20160506:135845.208 End of DBupdate_itservices():SUCCEED
 23107:20160506:135845.208 End of process_events()
 23107:20160506:135845.208 query [txnlev:1] [commit;]
 23107:20160506:135845.208 End of update_triggers_status_to_unknown()
 23107:20160506:135845.208 deactivate_host() errors_from:1462532280 available:2
 23107:20160506:135845.209 End of deactivate_host()
 23107:20160506:135845.209 End of get_values():1
 23107:20160506:135845.209 __zbx_zbx_setproctitle() title:'unreachable poller #1 [got 1 values in 0.002552 sec, getting values]'
 23107:20160506:135845.209 In get_values()
 23107:20160506:135845.209 In DCconfig_get_poller_items() poller_type:1
 23107:20160506:135845.209 End of DCconfig_get_poller_items():0
 23107:20160506:135845.209 In DCconfig_get_poller_nextcheck() poller_type:1
 23107:20160506:135845.209 End of DCconfig_get_poller_nextcheck():1462532385
 23107:20160506:135845.209 End of get_values():0
 23107:20160506:135845.209 __zbx_zbx_setproctitle() title:'unreachable poller #1 [got 0 values in 0.000055 sec, idle 5 sec]'

Such inconsistency may mislead.



 Comments   
Comment by Oleksii Zagorskyi [ 2016 May 09 ]

It might be closed as won't fix if ZBX-10767 will be implemented as solution #1.
But I've reported it as a separate ZBX because it simply could be decided to be fixed separately.

Comment by Alexander Vladishev [ 2016 Aug 01 ]

From version 3.2.0 triggers won't change the state upon transition of a host in not available state. See ZBXNEXT-3274 for more details.

Comment by Alexander Vladishev [ 2019 Mar 26 ]

Zabbix 3.0 is no longer fully supported. Newer versions are not affected by this problem.

Closed as "Won't Fix".





[ZBX-10726] Active proxy inefficiently processes ids from proxy_history if the itemids are removed from configuration but values are still in unsent buffer Created: 2016 Apr 29  Updated: 2017 May 30  Resolved: 2016 Sep 24

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.4.8
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Ingus Vilnis Assignee: Unassigned
Resolution: Duplicate Votes: 2
Labels: history, ids, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Tested on 2.4.7, supposedly affects all other branches. RHEL 6.7


Attachments: XML File Zabbix_agent_load_test_1000_nvps.xml    
Issue Links:
Duplicate
duplicates ZBX-5448 Zabbix proxy datasender doesn't manag... Closed

 Description   

Steps to visibly reproduce the issue

  1. Setup: Zabbix server, active proxy, agent
  2. Set the agent to be monitored by active proxy. Ideally if that is a test setup where the proxy does not monitor other hosts.
  3. Open two parallel SSH sessions to proxy host where one session continuously displays amount of items still unsent to Zabbix server in the proxy buffer.
  4. Command to display the values.
    while true; do mysql zabbix_proxy -sNe "select max(id)-(select nextid from ids where table_name ='proxy_history' limit 1) from proxy_history";sleep 1; done
    
  5. Import the attached Zabbix agent load test template to server.
  6. Link the template to the host monitored by proxy.
  7. Reload the proxy configuration cache by running
    zabbix_proxy -R config_cache_reload
  8. Watch the items unsent to Zabbix server. Normally there should be 0 items but occasionally some values may appear in the list.
  9. Stop communication between proxy and server by e.g. closing the firewall port (or optionally stopping Zabbix server).
  10. Watch as the amount of unsent items on the proxy rapidly increases.
  11. Let it collect the data for around 5 minutes so that there is some data to process.
  12. Meanwhile Unlink and clear the template from the monitored test agent.
  13. Link some other small template, e.g. Template App OS Linux
  14. Wait until Zabbix server reloads configuration cache (by default in 60 seconds).
  15. Re-enable the communication between proxy and server.
  16. Watch as the amount of unsent items on the proxy rapidly decreases while the items are still in the proxy configuration cache. It attempts to clear the buffer by sending 1000 item ids multiple times per second even if the items do not exist on the server anymore.
  17. It is visible in the proxy log with DebugLevel=4 that it sends full chunks of collected data.
  18. Reload the proxy configuration cache by running zabbix_proxy -R config_cache_reload . At this moment proxy learns from the server that there are no more load test items in its cache.
  19. Watch as the amount of unsent items on the proxy decreases only by 1000 ids every second because the proxy scans 1000 ids but sends only the values of the items that still remain in the configuration cache for from those 1000 ids.
  20. The actual bug. In case from scanned 1000 ids there will be at least one item removed from the cache, the proxy data sender will send only the values for the items found in the cache and sleep for 1 second thus the buffer may clear very slowly even though there are much more values to send in the buffer.
  21. There is no way to speed up clearing of the backlog without losing the collected history. For this the proxy must be stopped and the following queries must be executed in proxy database:
    truncate table ids;
    truncate table proxy_history;
    
  22. After starting the proxy and configuration cache reload the unsent buffer will be 0 again.


 Comments   
Comment by Oleksii Zagorskyi [ 2016 Sep 07 ]

Looks like it could be fixed in ZBX-5448

sasha Yes, it was fixed in ZBX-5448.

I close this issue as duplicate of ZBX-5448.





[ZBX-10462] Trigger status stuck Created: 2016 Feb 29  Updated: 2017 Jul 31  Resolved: 2017 Jul 31

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: None
Affects Version/s: 2.4.7
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Maris Danne Assignee: Unassigned
Resolution: Duplicate Votes: 2
Labels: icmpping, proxy, simplechecks, triggerstatus
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Server and proxy CentOS 6.7


Attachments: JPEG File Berzaines-PP_Latest_data.JPG     JPEG File Berzaines-PP_Trigger_state.JPG    
Issue Links:
Duplicate
duplicates ZBX-12251 New values aren't counted towards tri... Closed

 Description   

We have trigger (icmpping) that stuck in problem state.
23.02.2016 05:07:21 - host was really not responding, after a while host started to respond, but the trigger didn't change status to OK.

Host is monitored by the proxy.

  • - This is second time it happened. We had another host with same problem fixed with "unlink and clear" template, but we don't want to lose data this time.

Attachment:
Screenshot from Latest data and trigger status.



 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Feb 29 ]

Does this trigger have any dependencies which could prevent it from being re-evaluated?
Could you please show some DebugLevel=4 log which shows how this trigger is evaluated?

Comment by Maris Danne [ 2016 Mar 03 ]

No, triggers have no dependencies.
DebugLevel=4 is not readable we have > 3k NVPS
TriggerID = 924684
Itemids = 1760180, 1760181, 822334

* - We had to make server restart, after that trigger changed status to OK.

DebugLeve=4 log:

  1678:20160229:115410.951 In __get_function_parameter_uint31() parameters:'0' Nparam:1
  1676:20160229:115410.951 get_function_parameter_str() value:'0'
  1675:20160229:115410.951 In process_trigger() triggerid:924674 value:0(1) new_value:2
  1678:20160229:115410.951 In substitute_simple_macros() data:'0'
  1676:20160229:115410.951 End of get_function_parameter_str():SUCCEED
  1675:20160229:115410.951 End of process_trigger():FAIL
  1633:20160229:115410.951 In substitute_discovery_macros() data:'{#ADVSNMPINDEX2}'
  1678:20160229:115410.952 __get_function_parameter_uint31() flag:0 value:0
  1676:20160229:115410.952 In get_function_parameter_str() parameters:'3600,0,"ne"' Nparam:3
  1675:20160229:115410.952 In process_trigger() triggerid:924684 value:0(0) new_value:0
  1633:20160229:115410.952 End of substitute_discovery_macros():SUCCEED data:'2099066532'
  1678:20160229:115410.952 End of __get_function_parameter_uint31():SUCCEED
  1676:20160229:115410.952 In substitute_simple_macros() data:'ne'
  1675:20160229:115410.952 End of process_trigger():FAIL
  1633:20160229:115410.952 In substitute_discovery_macros() data:'{#ADVSNMPINDEX3}'
  1678:20160229:115410.952 In zbx_vc_get_value_range() itemid:1562674 value_type:3 seconds:0 count:1 timestamp:1456736893
  1676:20160229:115410.952 get_function_parameter_str() value:'ne'
  1675:20160229:115410.952 In process_trigger() triggerid:924685 value:0(0) new_value:0
  1633:20160229:115410.952 End of substitute_discovery_macros():SUCCEED data:'459583345'
  1678:20160229:115410.952 End of zbx_vc_get_value_range():SUCCEED count:1 cached:1
--
  1677:20160229:115433.006 get_function_parameter_str() value:'0'
  1658:20160229:115433.006 __get_function_parameter_uint31() flag:0 value:30
  1661:20160229:115433.006 In evaluate_function() function:'P1-RR:bgpconfig.[78.154.153.55].nodata(30)'
  1663:20160229:115433.006 In evaluate_NODATA()
  1632:20160229:115433.007 End of substitute_discovery_macros():SUCCEED data:'300000'
  1633:20160229:115433.007 End of substitute_discovery_macros():SUCCEED data:'1099657283'
  1662:20160229:115433.007 In evaluate_NODATA()
  1676:20160229:115433.007 End of evaluate_LAST():SUCCEED
  1678:20160229:115433.007 End of evaluate_STR():SUCCEED
  1660:20160229:115433.007 End of __get_function_parameter_uint31():SUCCEED
  1675:20160229:115433.007 In process_trigger() triggerid:924684 value:0(0) new_value:0
  1679:20160229:115433.007 End of get_N_functionid():SUCCEED
  1657:20160229:115433.007 In evaluate_NODATA()
Comment by Aleksandrs Saveljevs [ 2016 Mar 07 ]

In the posted log fragment the only lines that seem to be relevant are:

  1675:20160229:115410.952 In process_trigger() triggerid:924684 value:0(0) new_value:0
  1675:20160229:115410.952 End of process_trigger():FAIL
--
  1675:20160229:115433.007 In process_trigger() triggerid:924684 value:0(0) new_value:0

This is a bit too little information to make a conclusion. If it happens again, please post a longer evaluation part like the following (note that it is enough to increase logging level for history syncers only):

 15935:20160302:125519.002 history syncer #1 [synced 27 items in 0.007314 sec, syncing history]
 15935:20160302:125519.002 In DCsync_history() history_first:23768 history_num:32
 15935:20160302:125519.002 query [txnlev:1] [begin;]
 15935:20160302:125519.002 In DCmass_update_items()
 15935:20160302:125519.002 End of DCmass_update_items()
 15935:20160302:125519.002 In DCmass_add_history()
 15935:20160302:125519.002 query [txnlev:1] [insert into history (itemid,clock,ns,value) values (23304,1456916114,742792762,0.000000),(23254,1456916114,743287214,0.016943),(23274,1456916114,743758452,99.998282),(23264,1456916114,744635871,0.660793),(23625,1456916115,747348515,162.926305),(23255,1456916115,747872801,0.000000),(23265,1456916115,748484053,0.016943),(23275,1456916115,748976833,100.000000),(23295,1456916115,750143526,0.032500),(23305,1456916115,752221179,0.336285),(23276,1456916116,754013285,99.663734),(23296,1456916116,754620646,0.105000),(23266,1456916116,754793764,0.033887),(23256,1456916116,754964475,0.000000),(23306,1456916116,755322653,1.322110),(23257,1456916117,758504344,0.203321),(23277,1456916117,758798423,6.267762),(23297,1456916117,760288899,0.038750),(23268,1456916118,760880523,0.016943),(23628,1456916118,762118061,0.000000),(23258,1456916118,762526086,0.000000);
 15935:20160302:125519.003 query [txnlev:1] [insert into history_uint (itemid,clock,ns,value) values (23294,1456916114,744370398,400),(23314,1456916114,746800753,4),(23315,1456916115,751191242,527275241),(23316,1456916116,753662567,3912450048),(23287,1456916117,758078114,1),(23317,1456916117,759422253,8260120576),(23308,1456916118,762932196,1456916118),(23298,1456916118,763346265,2264);
 15935:20160302:125519.003 query [txnlev:1] [insert into history_str (itemid,clock,ns,value) values (23307,1456916117,756381800,'asaveljevs'),(23327,1456916117,757404563,'Zabbix server'),(23288,1456916118,761748239,'3.1.0');
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23304 value_type:0 timestamp:1456916114.742792762
 15935:20160302:125519.003 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23254 value_type:0 timestamp:1456916114.743287214
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23274 value_type:0 timestamp:1456916114.743758452
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23294 value_type:3 timestamp:1456916114.744370398
 15935:20160302:125519.003 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23264 value_type:0 timestamp:1456916114.744635871
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23314 value_type:3 timestamp:1456916114.746800753
 15935:20160302:125519.003 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23625 value_type:0 timestamp:1456916115.747348515
 15935:20160302:125519.003 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23255 value_type:0 timestamp:1456916115.747872801
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23265 value_type:0 timestamp:1456916115.748484053
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23275 value_type:0 timestamp:1456916115.748976833
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23295 value_type:0 timestamp:1456916115.750143526
 15935:20160302:125519.003 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23315 value_type:3 timestamp:1456916115.751191242
 15935:20160302:125519.003 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.003 In zbx_vc_add_value() itemid:23305 value_type:0 timestamp:1456916115.752221179
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23316 value_type:3 timestamp:1456916116.753662567
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23276 value_type:0 timestamp:1456916116.754013285
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23296 value_type:0 timestamp:1456916116.754620646
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23266 value_type:0 timestamp:1456916116.754793764
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23256 value_type:0 timestamp:1456916116.754964475
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23306 value_type:0 timestamp:1456916116.755322653
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23307 value_type:1 timestamp:1456916117.756381800
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23327 value_type:1 timestamp:1456916117.757404563
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23287 value_type:3 timestamp:1456916117.758078114
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23257 value_type:0 timestamp:1456916117.758504344
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23277 value_type:0 timestamp:1456916117.758798423
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23317 value_type:3 timestamp:1456916117.759422253
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23297 value_type:0 timestamp:1456916117.760288899
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23268 value_type:0 timestamp:1456916118.760880523
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23288 value_type:1 timestamp:1456916118.761748239
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23628 value_type:0 timestamp:1456916118.762118061
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23258 value_type:0 timestamp:1456916118.762526086
 15935:20160302:125519.004 End of zbx_vc_add_value():SUCCEED
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23308 value_type:3 timestamp:1456916118.762932196
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 In zbx_vc_add_value() itemid:23298 value_type:3 timestamp:1456916118.763346265
 15935:20160302:125519.004 End of zbx_vc_add_value():FAIL
 15935:20160302:125519.004 End of DCmass_add_history()
 15935:20160302:125519.004 In DCmass_update_triggers()
 15935:20160302:125519.004 In evaluate_expressions() tr_num:19
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13104}>75) or ({TRIGGER.VALUE}=1 and {13104}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13104}>75) or (0=1 and {13104}>65)'
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13106}>75) or ({TRIGGER.VALUE}=1 and {13106}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13106}>75) or (0=1 and {13106}>65)'
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13108}>75) or ({TRIGGER.VALUE}=1 and {13108}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13108}>75) or (0=1 and {13108}>65)'
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13110}>75) or ({TRIGGER.VALUE}=1 and {13110}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13110}>75) or (0=1 and {13110}>65)'
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13112}>75) or ({TRIGGER.VALUE}=1 and {13112}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13112}>75) or (0=1 and {13112}>65)'
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13124}>75) or ({TRIGGER.VALUE}=1 and {13124}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13124}>75) or (0=1 and {13124}>65)'
 15935:20160302:125519.004 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13126}>75) or ({TRIGGER.VALUE}=1 and {13126}>65)'
 15935:20160302:125519.004 End substitute_simple_macros() data:'(0=0 and {13126}>75) or (0=1 and {13126}>65)'
 15935:20160302:125519.005 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13030}>75) or ({TRIGGER.VALUE}=1 and {13030}>65)'
 15935:20160302:125519.005 End substitute_simple_macros() data:'(0=0 and {13030}>75) or (0=1 and {13030}>65)'
 15935:20160302:125519.005 In substitute_simple_macros() data:'({TRIGGER.VALUE}=0 and {13130}>75) or ({TRIGGER.VALUE}=1 and {13130}>65)'
 15935:20160302:125519.005 End substitute_simple_macros() data:'(0=0 and {13130}>75) or (0=1 and {13130}>65)'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12897}<25'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12897}<25'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12898}<25'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12898}<25'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12899}<25'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12899}<25'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12900}=1'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12900}=1'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12928}>0'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12928}>0'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{13079}>5'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{13079}>5'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12908}>0'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12908}>0'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12912}>0'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12912}>0'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12913}<20M'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12913}<20M'
 15935:20160302:125519.005 In substitute_simple_macros() data:'{12938}>0'
 15935:20160302:125519.005 End substitute_simple_macros() data:'{12938}>0'
 15935:20160302:125519.005 In substitute_functions()
 15935:20160302:125519.005 In zbx_extract_functionids() tr_num:19
 15935:20160302:125519.005 End of zbx_extract_functionids() functionids_num:19
 15935:20160302:125519.005 In zbx_populate_function_items() functionids_num:19
 15935:20160302:125519.005 End of zbx_populate_function_items() ifuncs_num:19
 15935:20160302:125519.005 In zbx_evaluate_item_functions() ifuncs_num:19
 15935:20160302:125519.005 In evaluate_function() function:'Zabbix server:zabbix[process,db watchdog,avg,busy].avg(10m)'
 15935:20160302:125519.005 In evaluate_AVG()
 15935:20160302:125519.005 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.005 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.005 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.005 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.005 In zbx_vc_get_value_range() itemid:23254 value_type:0 seconds:600 count:0 timestamp:1456916114
 15935:20160302:125519.005 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.005 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.005 End of evaluate_function():SUCCEED value:'0.006778'
 15935:20160302:125519.005 In evaluate_function() function:'Zabbix server:zabbix[process,discoverer,avg,busy].avg(10m)'
 15935:20160302:125519.005 In evaluate_AVG()
 15935:20160302:125519.005 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.005 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.005 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.005 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.005 In zbx_vc_get_value_range() itemid:23255 value_type:0 seconds:600 count:0 timestamp:1456916115
 15935:20160302:125519.005 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.005 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.005 End of evaluate_function():SUCCEED value:'0.003389'
 15935:20160302:125519.005 In evaluate_function() function:'Zabbix server:zabbix[process,escalator,avg,busy].avg(10m)'
 15935:20160302:125519.005 In evaluate_AVG()
 15935:20160302:125519.005 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.006 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.006 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.006 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.006 In zbx_vc_get_value_range() itemid:23256 value_type:0 seconds:600 count:0 timestamp:1456916116
 15935:20160302:125519.006 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.006 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.006 End of evaluate_function():SUCCEED value:'0.018074'
 15935:20160302:125519.006 In evaluate_function() function:'Zabbix server:zabbix[process,history syncer,avg,busy].avg(10m)'
 15935:20160302:125519.006 In evaluate_AVG()
 15935:20160302:125519.006 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.006 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.006 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.006 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.006 In zbx_vc_get_value_range() itemid:23257 value_type:0 seconds:600 count:0 timestamp:1456916117
 15935:20160302:125519.006 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.006 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.006 End of evaluate_function():SUCCEED value:'0.232138'
 15935:20160302:125519.006 In evaluate_function() function:'Zabbix server:zabbix[process,housekeeper,avg,busy].avg(30m)'
 15935:20160302:125519.006 In evaluate_AVG()
 15935:20160302:125519.006 In __get_function_parameter_uint31() parameters:'30m' Nparam:1
 15935:20160302:125519.006 In substitute_simple_macros() data:'30m'
 15935:20160302:125519.006 __get_function_parameter_uint31() flag:0 value:1800
 15935:20160302:125519.006 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.006 In zbx_vc_get_value_range() itemid:23258 value_type:0 seconds:1800 count:0 timestamp:1456916118
 15935:20160302:125519.006 End of zbx_vc_get_value_range():SUCCEED count:180 cached:1
 15935:20160302:125519.006 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.006 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.006 In evaluate_function() function:'Zabbix server:zabbix[process,poller,avg,busy].avg(10m)'
 15935:20160302:125519.006 In evaluate_AVG()
 15935:20160302:125519.006 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.006 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.006 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.006 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.006 In zbx_vc_get_value_range() itemid:23264 value_type:0 seconds:600 count:0 timestamp:1456916114
 15935:20160302:125519.006 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.006 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.006 End of evaluate_function():SUCCEED value:'0.568487'
 15935:20160302:125519.006 In evaluate_function() function:'Zabbix server:zabbix[process,proxy poller,avg,busy].avg(10m)'
 15935:20160302:125519.006 In evaluate_AVG()
 15935:20160302:125519.006 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.006 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.006 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.006 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.006 In zbx_vc_get_value_range() itemid:23265 value_type:0 seconds:600 count:0 timestamp:1456916115
 15935:20160302:125519.006 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.006 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.006 End of evaluate_function():SUCCEED value:'0.00819'
 15935:20160302:125519.006 In evaluate_function() function:'Zabbix server:zabbix[process,self-monitoring,avg,busy].min(10m)'
 15935:20160302:125519.006 In evaluate_MIN()
 15935:20160302:125519.006 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.006 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.006 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.006 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.006 In zbx_vc_get_value_range() itemid:23266 value_type:0 seconds:600 count:0 timestamp:1456916116
 15935:20160302:125519.006 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.006 End of evaluate_MIN():SUCCEED
 15935:20160302:125519.007 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.007 In evaluate_function() function:'Zabbix server:zabbix[process,timer,avg,busy].avg(10m)'
 15935:20160302:125519.007 In evaluate_AVG()
 15935:20160302:125519.007 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.007 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.007 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.007 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.007 In zbx_vc_get_value_range() itemid:23268 value_type:0 seconds:600 count:0 timestamp:1456916118
 15935:20160302:125519.007 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.007 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.007 End of evaluate_function():SUCCEED value:'0.005931'
 15935:20160302:125519.007 In evaluate_function() function:'Zabbix server:zabbix[wcache,history,pfree].min(10m)'
 15935:20160302:125519.007 In evaluate_MIN()
 15935:20160302:125519.007 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.007 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.007 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.007 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.007 In zbx_vc_get_value_range() itemid:23274 value_type:0 seconds:600 count:0 timestamp:1456916114
 15935:20160302:125519.007 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.007 End of evaluate_MIN():SUCCEED
 15935:20160302:125519.007 End of evaluate_function():SUCCEED value:'99.986252'
 15935:20160302:125519.007 In evaluate_function() function:'Zabbix server:zabbix[wcache,text,pfree].min(10m)'
 15935:20160302:125519.007 In evaluate_MIN()
 15935:20160302:125519.007 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.007 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.007 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.007 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.007 In zbx_vc_get_value_range() itemid:23275 value_type:0 seconds:600 count:0 timestamp:1456916115
 15935:20160302:125519.007 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.007 End of evaluate_MIN():SUCCEED
 15935:20160302:125519.007 End of evaluate_function():SUCCEED value:'99.999475'
 15935:20160302:125519.007 In evaluate_function() function:'Zabbix server:zabbix[wcache,trend,pfree].min(10m)'
 15935:20160302:125519.007 In evaluate_MIN()
 15935:20160302:125519.007 In __get_function_parameter_uint31() parameters:'10m' Nparam:1
 15935:20160302:125519.007 In substitute_simple_macros() data:'10m'
 15935:20160302:125519.007 __get_function_parameter_uint31() flag:0 value:600
 15935:20160302:125519.007 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.007 In zbx_vc_get_value_range() itemid:23276 value_type:0 seconds:600 count:0 timestamp:1456916116
 15935:20160302:125519.007 End of zbx_vc_get_value_range():SUCCEED count:60 cached:1
 15935:20160302:125519.007 End of evaluate_MIN():SUCCEED
 15935:20160302:125519.007 End of evaluate_function():SUCCEED value:'99.663734'
 15935:20160302:125519.007 In evaluate_function() function:'Zabbix server:agent.ping.nodata(5m)'
 15935:20160302:125519.007 In evaluate_NODATA()
 15935:20160302:125519.007 In __get_function_parameter_uint31() parameters:'5m' Nparam:1
 15935:20160302:125519.007 In substitute_simple_macros() data:'5m'
 15935:20160302:125519.007 __get_function_parameter_uint31() flag:0 value:300
 15935:20160302:125519.007 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.007 In zbx_vc_get_value_range() itemid:23287 value_type:3 seconds:0 count:1 timestamp:1456916119
 15935:20160302:125519.007 End of zbx_vc_get_value_range():SUCCEED count:1 cached:1
 15935:20160302:125519.007 End of evaluate_NODATA():SUCCEED
 15935:20160302:125519.007 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.007 In evaluate_function() function:'Zabbix server:agent.version.diff(0)'
 15935:20160302:125519.007 In evaluate_DIFF()
 15935:20160302:125519.007 In zbx_vc_get_value_range() itemid:23288 value_type:1 seconds:0 count:2 timestamp:1456916118
 15935:20160302:125519.007 End of zbx_vc_get_value_range():SUCCEED count:2 cached:1
 15935:20160302:125519.007 End of evaluate_DIFF():SUCCEED
 15935:20160302:125519.008 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.008 In evaluate_function() function:'Zabbix server:system.cpu.load[percpu,avg1].avg(5m)'
 15935:20160302:125519.008 In evaluate_AVG()
 15935:20160302:125519.008 In __get_function_parameter_uint31() parameters:'5m' Nparam:1
 15935:20160302:125519.008 In substitute_simple_macros() data:'5m'
 15935:20160302:125519.008 __get_function_parameter_uint31() flag:0 value:300
 15935:20160302:125519.008 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.008 In zbx_vc_get_value_range() itemid:23296 value_type:0 seconds:300 count:0 timestamp:1456916116
 15935:20160302:125519.008 End of zbx_vc_get_value_range():SUCCEED count:30 cached:1
 15935:20160302:125519.008 End of evaluate_AVG():SUCCEED
 15935:20160302:125519.008 End of evaluate_function():SUCCEED value:'0.0245'
 15935:20160302:125519.008 In evaluate_function() function:'Zabbix server:system.hostname.diff(0)'
 15935:20160302:125519.008 In evaluate_DIFF()
 15935:20160302:125519.008 In zbx_vc_get_value_range() itemid:23307 value_type:1 seconds:0 count:2 timestamp:1456916117
 15935:20160302:125519.008 End of zbx_vc_get_value_range():SUCCEED count:2 cached:1
 15935:20160302:125519.008 End of evaluate_DIFF():SUCCEED
 15935:20160302:125519.008 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.008 In evaluate_function() function:'Zabbix server:vfs.file.cksum[/etc/passwd].diff(0)'
 15935:20160302:125519.008 In evaluate_DIFF()
 15935:20160302:125519.008 In zbx_vc_get_value_range() itemid:23315 value_type:3 seconds:0 count:2 timestamp:1456916115
 15935:20160302:125519.008 End of zbx_vc_get_value_range():SUCCEED count:2 cached:1
 15935:20160302:125519.008 End of evaluate_DIFF():SUCCEED
 15935:20160302:125519.008 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.008 In evaluate_function() function:'Zabbix server:vm.memory.size[available].last(0)'
 15935:20160302:125519.008 In evaluate_LAST()
 15935:20160302:125519.008 In __get_function_parameter_uint31() parameters:'0' Nparam:1
 15935:20160302:125519.008 In substitute_simple_macros() data:'0'
 15935:20160302:125519.008 __get_function_parameter_uint31() flag:0 value:0
 15935:20160302:125519.008 End of __get_function_parameter_uint31():SUCCEED
 15935:20160302:125519.008 In zbx_vc_get_value_range() itemid:23316 value_type:3 seconds:0 count:1 timestamp:1456916116
 15935:20160302:125519.008 End of zbx_vc_get_value_range():SUCCEED count:1 cached:1
 15935:20160302:125519.008 End of evaluate_LAST():SUCCEED
 15935:20160302:125519.008 End of evaluate_function():SUCCEED value:'3912450048'
 15935:20160302:125519.008 In evaluate_function() function:'Zabbix server:agent.hostname.diff(0)'
 15935:20160302:125519.008 In evaluate_DIFF()
 15935:20160302:125519.008 In zbx_vc_get_value_range() itemid:23327 value_type:1 seconds:0 count:2 timestamp:1456916117
 15935:20160302:125519.008 End of zbx_vc_get_value_range():SUCCEED count:2 cached:1
 15935:20160302:125519.008 End of evaluate_DIFF():SUCCEED
 15935:20160302:125519.008 End of evaluate_function():SUCCEED value:'0'
 15935:20160302:125519.008 End of zbx_evaluate_item_functions()
 15935:20160302:125519.008 In zbx_substitute_functions_results() ifuncs_num:19 tr_num:19
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[0]:'(0=0 and {13104}>75) or (0=1 and {13104}>65)' => '(0=0 and 0.006778>75) or (0=1 and 0.006778>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[1]:'(0=0 and {13106}>75) or (0=1 and {13106}>65)' => '(0=0 and 0.003389>75) or (0=1 and 0.003389>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[2]:'(0=0 and {13108}>75) or (0=1 and {13108}>65)' => '(0=0 and 0.018074>75) or (0=1 and 0.018074>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[3]:'(0=0 and {13110}>75) or (0=1 and {13110}>65)' => '(0=0 and 0.232138>75) or (0=1 and 0.232138>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[4]:'(0=0 and {13112}>75) or (0=1 and {13112}>65)' => '(0=0 and 0>75) or (0=1 and 0>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[5]:'(0=0 and {13124}>75) or (0=1 and {13124}>65)' => '(0=0 and 0.568487>75) or (0=1 and 0.568487>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[6]:'(0=0 and {13126}>75) or (0=1 and {13126}>65)' => '(0=0 and 0.00819>75) or (0=1 and 0.00819>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[7]:'(0=0 and {13030}>75) or (0=1 and {13030}>65)' => '(0=0 and 0>75) or (0=1 and 0>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[8]:'(0=0 and {13130}>75) or (0=1 and {13130}>65)' => '(0=0 and 0.005931>75) or (0=1 and 0.005931>65)'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[9]:'{12897}<25' => '99.986252<25'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[10]:'{12898}<25' => '99.999475<25'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[11]:'{12899}<25' => '99.663734<25'
 15935:20160302:125519.008 zbx_substitute_functions_results() expression[12]:'{12900}=1' => '0=1'
 15935:20160302:125519.009 zbx_substitute_functions_results() expression[13]:'{12928}>0' => '0>0'
 15935:20160302:125519.009 zbx_substitute_functions_results() expression[14]:'{13079}>5' => '0.0245>5'
 15935:20160302:125519.009 zbx_substitute_functions_results() expression[15]:'{12908}>0' => '0>0'
 15935:20160302:125519.009 zbx_substitute_functions_results() expression[16]:'{12912}>0' => '0>0'
 15935:20160302:125519.009 zbx_substitute_functions_results() expression[17]:'{12913}<20M' => '3912450048<20M'
 15935:20160302:125519.009 zbx_substitute_functions_results() expression[18]:'{12938}>0' => '0>0'
 15935:20160302:125519.009 End of zbx_substitute_functions_results()
 15935:20160302:125519.009 End of substitute_functions()
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.006778>75) or (0=1 and 0.006778>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.003389>75) or (0=1 and 0.003389>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.018074>75) or (0=1 and 0.018074>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.232138>75) or (0=1 and 0.232138>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0>75) or (0=1 and 0>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.568487>75) or (0=1 and 0.568487>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.00819>75) or (0=1 and 0.00819>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0>75) or (0=1 and 0>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'(0=0 and 0.005931>75) or (0=1 and 0.005931>65)'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'99.986252<25'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'99.999475<25'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'99.663734<25'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'0=1'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'0>0'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'0.0245>5'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'0>0'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'0>0'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'3912450048<20M'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 In evaluate() expression:'0>0'
 15935:20160302:125519.009 End of evaluate() value:0.000000
 15935:20160302:125519.009 End of evaluate_expressions()
 15935:20160302:125519.009 In process_triggers() values_num:19
 15935:20160302:125519.009 In process_trigger() triggerid:13469 value:0(0) new_value:0
 15935:20160302:125519.009 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13470 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13471 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13472 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13473 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13479 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13480 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13481 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13483 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13488 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13489 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13490 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13491 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13492 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13497 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13499 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13503 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13504 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 In process_trigger() triggerid:13509 value:0(0) new_value:0
 15935:20160302:125519.010 End of process_trigger():FAIL
 15935:20160302:125519.010 End of process_triggers()
 15935:20160302:125519.010 End of DCmass_update_triggers()
 15935:20160302:125519.010 In DCmass_update_trends()
 15935:20160302:125519.010 End of DCmass_update_trends()
 15935:20160302:125519.010 In DCflush_nextchecks() nextcheck_num:0
 15935:20160302:125519.010 End of DCflush_nextchecks()
 15935:20160302:125519.010 In process_events() events_num:0
 15935:20160302:125519.010 End of process_events()
 15935:20160302:125519.010 query [txnlev:1] [commit;]
 15935:20160302:125519.011 history syncer #1 [synced 32 items in 0.009006 sec, idle 5 sec]

For simplicity, you can just post everything between "history syncer #1 [synced 27 items in 0.007314 sec, syncing history]" and "history syncer #1 [synced 32 items in 0.009006 sec, idle 5 sec]".

Comment by Aleksandrs Saveljevs [ 2016 Mar 07 ]

I also wonder whether ZBX-10221 could be relevant.

Comment by richlv [ 2017 Jun 22 ]

could this be the same as ZBX-12251 ?





[ZBX-10253] Cannot disable hosts from Administration -> Proxies Created: 2016 Jan 12  Updated: 2024 Apr 10  Resolved: 2018 Feb 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A), Frontend (F)
Affects Version/s: 3.0.0alpha6
Fix Version/s: 3.0.10rc1, 3.2.6rc1, 3.4.0alpha1

Type: Incident report Priority: Blocker
Reporter: Glebs Ivanovskis (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: frontend, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-11552 host.update API method requires tls_p... Closed
Team: Team B
Team: Team B
Sprint: Sprint 3, Sprint 4, Sprint 5, Sprint 6, Sprint 7
Story Points: 1

 Description   

Seems like encryption settings are not passed correctly, but this affects configuration without encryption as well.

Scenario:

  • create new host "Test host" in new group "Test" with all default parameters;
  • create new proxy "Test proxy" to monitor "Test host" with all default parameters;
  • go to Administration -> Proxies, select "Test proxy" and press Disable hosts button.

In this particular scenario one gets:

Cannot update host encryption settings. Connection settings for both directions should be specified.

In different scenarios there can be different errors, I have not checked them all, but Disable hosts button is more likely to fail than not to fail.



 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Jan 12 ]

Seems like a continuation of (144) in ZBXNEXT-1263.

Comment by Miks Kronkalns [ 2017 Mar 20 ]

(1) Translation string changes.

Strings added:

  • an even number of hexadecimal characters is expected
  • minimum length is %1$s characters

sasha UPDATED after commit in r67186, r67189

Miks.Kronkalns CLOSED

Comment by Miks Kronkalns [ 2017 Mar 20 ]

RESOLVED in svn://svn.zabbix.com/branches/dev/ZBX-10253

Comment by Alexander Vladishev [ 2017 Apr 10 ]

(2) We cannot move validateUpdate() method after foreach. It can cause "Undefined index" errors.

sasha RESOLVED in r67186, r67189

Miks.Kronkalns CLOSED.

Comment by Miks Kronkalns [ 2017 May 02 ]

Fixed:

  • 3.0.10rc1 r67763
  • 3.2.6rc1 r67748, r67767, r67769
  • 3.4.0alpha1 (trunk) r67750, r67770
Comment by Ivo Kurzemnieks [ 2018 Feb 15 ]

(3) [D] API documentation seems to be missing for this fix. It was not just a frontend issue.

sasha WON'T FIX





[ZBX-10042] Improper handling of interrupted system calls Created: 2015 Nov 03  Updated: 2019 Dec 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G), Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Glebs Ivanovskis (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: agent, logging, proxy, runtimecontrol, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: DEV-591
Story Points: 10

 Description   

This was moved from (93) of ZBXNEXT-1263.

Something is improper with dynamically changing logging levels.
...
A GnuTLS proxy initially logs the following every second:

 32419:20151001:104527.821 zbx_tls_accept(): gnutls_handshake() returned: -50 The request is invalid.
 32419:20151001:104527.821 failed to accept an incoming connection: from 127.0.0.1: zbx_tls_accept(): gnutls_handshake() failed: -50 The request is invalid.

After we increase the log level once and decrease it once, it starts logging just the following:

   343:20151001:104844.013 Got signal [signal:10(SIGUSR1),sender_pid:339,sender_uid:1000,value_int:1538(0x00000602)].
   343:20151001:104844.013 log level has been decreased to 3 (warning)
   343:20151001:104845.002 zbx_tls_accept(): gnutls_handshake() returned: -50 The request is invalid.
   343:20151001:104846.006 zbx_tls_accept(): gnutls_handshake() returned: -50 The request is invalid.
   343:20151001:104847.015 zbx_tls_accept(): gnutls_handshake() returned: -50 The request is invalid.

Server/proxy trapper processes and agent's listener processes spend most of their time waiting inside one of select()/accept()/recv() system calls within zbx_tcp_accept() function. When we issue a runtime command we have almost 100% chance of interrupting one of these calls with a signal. That causes system call to fail with errno set to EINTR. Before encryption was introduced in ZBXNEXT-1263 zbx_tcp_accept() could only fail because of select()/accept()/recv() fail which meant we could check errno on zbx_tcp_accept() failure and rely on the fact that errno is overwritten by system call on every such occasion. With encryption zbx_tcp_accept() has new reasons to fail which don't overwrite errno.

So, after we increase/decrease debug level once errno will be set to EINTR. If there are no more system call fails errno will be "stuck" in EINTR state and when zbx_tcp_accept() fails for some encryption related reason second error message will disappear from log file since we print it only if errno != EINTR.

This is probably not the only place where incoming signals can have such an effect if they interrupt system calls. But it is very hard to discover other places "by chance" since the probability of interrupting shorter calls is very small.

The way to completely eliminate such places in Zabbix code is to follow best error handling practices:



 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2016 Jan 13 ]

Revision 57561 introduced global variable zbx_timed_out and now we have a way do distinguish calls which return error a) because something really bad happened; b) because they were interrupted by alarm signal; c) because they were interrupted by some other signal. With c) being not a valid reason to fail previously we could not distinguish it from b) and therefore failed on both occasions. Now at least TLS branches of zbx_tls_read() and zbx_tls_write() handle non-fatal interruptions of system calls as close as possible to system calls themselves. This is a step forward. Let's add similar handling of EINTR and zbx_timed_out in unencrypted branches of zbx_tls_read/write()!

Comment by Orion Poplawski [ 2017 May 24 ]

Shouldn't calls the return EINTR simply be retried?

Comment by Glebs Ivanovskis (Inactive) [ 2017 Jul 10 ]

In most cases, yes.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Jul 10 ]

(1) Related issue:

$ zabbix_get -s localhost -k 'system.run[sleep 1]'& zabbix_agentd -R log_level_decrease
[3] 1865
zabbix_agentd [1866]: command sent successfully
[2]   Done                    zabbix_get -s localhost -k 'system.run[sleep 1]'
ZBX_NOTSUPPORTED: Timeout while executing a shell script.

zbx_waitpid() does not handle situation when waitpid() is interrupted.

Comment by Larry Dorman [ 2017 Aug 23 ]

This sounds like the same problem I just discovered with one of my 2.4.8 proxies... increased log level with no problem. When I decreased the log level the proxy quit communicating with the server entirely and had to be restarted. Repeated the steps with the same effect. Have not experienced this with the Server or Agent.





[ZBX-10016] No need to store host connection details in server configuration cache if the host is monitored by proxy Created: 2015 Oct 28  Updated: 2019 Dec 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Glebs Ivanovskis (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: cache, cachesize, memory, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Seems like we can save up some space in server configuration cache by not loading there some of the information about hosts monitored by proxies. Since server does not connect directly to these hosts there is no need to store respective host interfaces and encryption settings in server configuration cache.

This is related to (78) of ZBXNEXT-1263.



 Comments   
Comment by Andris Mednis [ 2015 Oct 28 ]

Server escalator process may connect directly to hosts monitored via proxies if remote commands are configured to run on hosts agents. But in this case connection details for host are fetched from DB, not from server configuration cache. (There is ZBXNEXT-936 to support remote commands through proxies).

Comment by Oleksii Zagorskyi [ 2015 Oct 29 ]

Take a look to https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300#performance_improvements1

When an active proxy connects to Zabbix server information about this proxy is retrieved from server configuration cache (in earlier versions it was retrieved directly from database). This improves performance and reduces database load. On the other hand, active proxy configuration change now has not instant effect. It has to wait until server configuration cache is synchronized with database (can be enforced from commandline).

It we will not include the connection data to configuration cache - it will break the improvement.

Comment by Marc [ 2015 Oct 29 ]

ZBXNEXT-1285 might need to remain that information on Zabbix server too.

Comment by Glebs Ivanovskis (Inactive) [ 2015 Oct 29 ]

Thank you all for the comments! Of course, more thorough investigation is needed before we proceed with this idea and maybe it is not a good idea at all.

Regarding active proxy configuration... Here are two places where configuration data is sent to proxies (I would imagine one is for active and the other is for passive proxies):

$ grep -r "sending configuration data to proxy"
src/zabbix_server/trapper/proxyconfig.c:	zabbix_log(LOG_LEVEL_WARNING, "sending configuration data to proxy \"%s\" at \"%s\", datalen " ZBX_FS_SIZE_T,
src/zabbix_server/proxypoller/proxypoller.c:				zabbix_log(LOG_LEVEL_WARNING, "sending configuration data to proxy \"%s\" at \"%s\","

Same function is called in both cases:

$ grep -r "get_proxyconfig_data"
src/libs/zbxdbhigh/proxy.c:int	get_proxyconfig_data(zbx_uint64_t proxy_hostid, struct zbx_json *j, char **error)
src/zabbix_server/trapper/proxyconfig.c:	if (SUCCEED != get_proxyconfig_data(proxy_hostid, &j, &error))
src/zabbix_server/proxypoller/proxypoller.c:			if (SUCCEED != (ret = get_proxyconfig_data(proxy.hostid, &j, &error)))
include/proxy.h:int	get_proxyconfig_data(zbx_uint64_t proxy_hostid, struct zbx_json *j, char **error);

Function get_proxyconfig_data() then calls get_proxy_monitored_hosts() which in turn calls DBselect().

Apparently, large part of this issue is out of my scope. Much more time needed to grasp all the details.





[ZBX-9949] Undefined index in proxy edit form Created: 2015 Oct 12  Updated: 2017 May 30  Resolved: 2015 Nov 04

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 3.0.0alpha3
Fix Version/s: 3.0.0alpha4

Type: Incident report Priority: Major
Reporter: Oleg Egorov (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, undefinedindex, update
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-9954 Undefined index in proxy edit form Closed

 Description   
Undefined index: interfaceid [zabbix.php:21 ? require_once() ? ZBase->run() ? ZBase->processRequest() ? CView->getOutput() ? include() in app\views\administration.proxy.edit.php:30]

How to reproduce:
1. Create proxy with name "test"
2. Create proxy with name "test2" and Proxy mode: Active
3. Update proxy "test2", set name "test" and Proxy mode: Passive



 Comments   
Comment by Gunars Pujats (Inactive) [ 2015 Oct 13 ]

(1) No translation strings changed.

sasha CLOSED

Comment by Gunars Pujats (Inactive) [ 2015 Oct 13 ]

RESOLVED in development branch svn://svn.zabbix.com/branches/dev/ZBX-9949

Comment by Alexander Vladishev [ 2015 Nov 04 ]

Successfully tested! Take a look at my changes in r56521.

gunarspujats CLOSED

Comment by Gunars Pujats (Inactive) [ 2015 Nov 04 ]

Fixed in:

  • pre-3.0.0alpha4 (trunk) r56527




[ZBX-9883] Hosts assignment issue for proxy create/update Created: 2015 Sep 17  Updated: 2017 May 30  Resolved: 2015 Oct 13

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 2.5.0
Fix Version/s: 3.0.0alpha3

Type: Incident report Priority: Major
Reporter: Oleg Egorov (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: host, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-2973 cannot add a host to be monitored by ... Closed
is duplicated by ZBX-9907 Edit proxy does not update host list Closed

 Description   

Via frontend just try to add new hosts to "Proxy hosts" list



 Comments   
Comment by Aleksandrs Saveljevs [ 2015 Sep 17 ]

If we try that, what will be the problem?

oleg.egorov Action will be ignored

Comment by Bezaleel Ramos [ 2015 Sep 21 ]

Hello Aleksandrs,

I'm with problem at moment what I add one Host in the proxy.

it appears status Update,but not display in the proxy.

Comment by Aleksandrs Saveljevs [ 2015 Sep 21 ]

As a workaround, you can set "Monitored by proxy" field in host configuration. It seems to work.

Comment by Gunars Pujats (Inactive) [ 2015 Sep 28 ]

(1) No translation strings changed.

iivs CLOSED.

Comment by Gunars Pujats (Inactive) [ 2015 Sep 28 ]

RESOLVED in development branch svn://svn.zabbix.com/branches/dev/ZBX-9883

Comment by Ivo Kurzemnieks [ 2015 Oct 05 ]

(2) CTweenbox::get() should not be dependant on form name. JS should find the parent form and append the fields there.

gunarspujats RESOLVED in r55956.

iivs Yet again we have multiple ways of implementing the same thing. Upon several discussions we decided to use jQuery(this).closest('form') as opposed to jQuery(this.form). Please see my changes in r56000

gunarspujats CLOSED

Comment by Ivo Kurzemnieks [ 2015 Oct 08 ]

TESTED,
but please close (2) before merging.

Comment by Gunars Pujats (Inactive) [ 2015 Oct 09 ]

Fixed in:

  • pre-3.0.0alpha3 (trunk) r56011




[ZBX-9432] Multiple consecutive events the same type (OK or PROBLEM) Created: 2015 Mar 25  Updated: 2019 Dec 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.4.3
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Maris Danne Assignee: Unassigned
Resolution: Unresolved Votes: 7
Labels: delay, events, multiple, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Selection_038.png     PNG File screenshot-1.png     PNG File screenshot-2.png     PNG File screenshot-3.png     JPEG File xen_events.JPG     JPEG File xen_events2.JPG    
Issue Links:
Duplicate
is duplicated by ZBX-9658 Problem/OK event status swapped for n... Closed
is duplicated by ZBX-9707 multiple events raised even though Mu... Closed
is duplicated by ZBX-9856 Event duration and status errors Closed

 Description   

I'm monitoring hosts (discovored by host prototype) by Proxy. One day I observed that events act strange.
1. There are multiple events generated (no check mark for multiple event generation)
2. There is no recovery event shown. (but in e-mail we have both, the OK/PROBLEM mails)

It looks like zabbix server is just generating events, like the trigged had a check mark for multiple events generation.

I'm confused because on the other zabbix server (no proxy) we monitor the same hosts with the same templates, but there is no problem with the events.



 Comments   
Comment by richlv [ 2015 Mar 25 ]

what's the item type for the xen.sysuptime item ?

Comment by Maris Danne [ 2015 Mar 25 ]

It's SNMPv2 agent.

Comment by Oleksii Zagorskyi [ 2015 Mar 26 ]

2nd column is "Host" and we see that they are different.

It looks more like support request but not a bug report.
http://www.zabbix.org/wiki/Docs/bug_reporting_guidelines#Before_reporting

Comment by richlv [ 2015 Mar 26 ]

i'd agree with zalex. we can't even see full hostnames to verify the source of the events. sounds like support options should be evaluated at https://www.zabbix.org/wiki/Getting_help

Comment by Raimonds Treimanis [ 2015 Mar 26 ]

Tehere are 4 xen hosts and all of them have same problem. Thats why you see different hostnames in event source. I can attach screenshoty with full hostanmes if it helps...

Comment by richlv [ 2015 Mar 26 ]

screenshot showing duplicate hostnames would be beneficial, yes.

Comment by Raimonds Treimanis [ 2015 Mar 26 ]

Hostnames are not duplicate, there are something wrong with events.
As You can see first we get OK event for all hosts, then PROBLEM event twice for each host. At the same time if you look at trigger state, its not in PROBLEM but in OK

Comment by Oleksii Zagorskyi [ 2015 Mar 26 ]

So, we see 4 different hosts and 2 PROBLEM events for every host

I suppose it's duplicate of ZBXNEXT-2355
Raimonds, please check it and confirm.

Comment by Raimonds Treimanis [ 2015 Mar 26 ]

As i see ZBXNEXT-2355 is about maintenance and missing alerts. In our case there is no maintenance involved and alerts are sent without problems.
Problem is in wrong events.
When exactly is nodata() function evaluated and what times are compared? I suspect that if i receive data from proxy with 6 min delay 5 min nodata trigger will go off - is that correct?

Comment by Raimonds Treimanis [ 2015 Mar 28 ]

Today got more of those events, screenshots 2 and 3. 5 OK events per host followed by same amount of PROBLEM events, every minute.
Our MySQL backend lags from time to time due to high load, and looks like those events get generated when data is more than 5 min behind current time. But question is why events are generated every minute? Since expression is nodata(300), there should not be any PROBLEM event within 5 min range of OK event. But there are, many.
And why OK events are first, followed by PROBLEM events?

Comment by Oleksii Zagorskyi [ 2015 May 12 ]

ZBX-9201 can cause events creation like in current issue.
Flood of a lot of values for 3 log* items blocked history write cache for 30 minutes and caused triggering of a lot of not related “XX is unreachable for 10 minutes” triggers (agent.ping items).
Those "XX is unreachable for 10 minutes” triggers created 2-3 consecutive OK/PROBLEM events, even with 1 or 2 minutes interval between the same events type.

Comment by Oleksii Zagorskyi [ 2015 Aug 13 ]

Just in case , see also ZBX-8556.

Comment by Chris Christensen [ 2015 Dec 08 ]

Observed a similar situation on our install - it looks like only OK events are being recorded multiple times, but it was on a singe host with a count item:

Raw values:

2015-12-06 15:08:10	1449439690	1
2015-12-06 15:07:10	1449439630	1
2015-12-06 15:06:09	1449439569	1
2015-12-06 15:05:09	1449439509	1
2015-12-06 15:04:09	1449439449	1
2015-12-06 15:03:09	1449439389	1
2015-12-06 15:02:09	1449439329	1
2015-12-06 15:01:10	1449439270	1
2015-12-06 15:00:09	1449439209	1
2015-12-06 14:59:09	1449439149	1
2015-12-06 14:58:09	1449439089	1
2015-12-06 14:57:09	1449439029	1
2015-12-06 14:56:09	1449438969	1
2015-12-06 14:55:09	1449438909	1
2015-12-06 14:54:09	1449438849	1
2015-12-06 14:53:09	1449438789	1
2015-12-06 14:52:09	1449438729	1
2015-12-06 14:51:09	1449438669	1
2015-12-06 14:50:09	1449438609	1
2015-12-06 14:49:10	1449438550	1
2015-12-06 14:48:09	1449438489	1
2015-12-06 14:47:09	1449438429	1
2015-12-06 14:46:09	1449438369	1
2015-12-06 14:45:09	1449438309	1
2015-12-06 14:44:09	1449438249	1
2015-12-06 14:43:09	1449438189	1
2015-12-06 14:42:09	1449438129	1
2015-12-06 14:41:09	1449438069	1
2015-12-06 14:40:09	1449438009	1
2015-12-06 14:39:09	1449437949	1
2015-12-06 14:38:09	1449437889	1
2015-12-06 14:37:10	1449437830	1
2015-12-06 14:36:09	1449437769	1
2015-12-06 14:35:09	1449437709	1
2015-12-06 14:34:09	1449437649	1
2015-12-06 14:33:09	1449437589	1
2015-12-06 14:32:09	1449437529	1
2015-12-06 14:31:09	1449437469	1
2015-12-06 14:30:09	1449437409	1
2015-12-06 14:29:09	1449437349	1
2015-12-06 14:28:09	1449437289	1
2015-12-06 14:27:09	1449437229	1
2015-12-06 14:26:09	1449437169	1
2015-12-06 14:25:09	1449437109	1
2015-12-06 14:24:09	1449437049	1
2015-12-06 14:23:10	1449436990	1
2015-12-06 14:22:10	1449436930	1
2015-12-06 14:21:09	1449436869	1
2015-12-06 14:20:09	1449436809	1
2015-12-06 14:19:09	1449436749	1
2015-12-06 14:18:09	1449436689	1
2015-12-06 14:17:10	1449436630	1
2015-12-06 14:16:09	1449436569	1
2015-12-06 14:15:09	1449436509	1
2015-12-06 14:14:09	1449436449	1
2015-12-06 14:13:09	1449436389	1
2015-12-06 14:12:10	1449436330	1
2015-12-06 14:11:09	1449436269	1
2015-12-06 14:10:09	1449436209	1
2015-12-06 14:09:09	1449436149	1
2015-12-06 14:08:09	1449436089	1
2015-12-06 14:07:09	1449436029	1
2015-12-06 14:06:09	1449435969	1
2015-12-06 14:05:09	1449435909	1
2015-12-06 14:04:09	1449435849	1
2015-12-06 14:03:09	1449435789	1
2015-12-06 14:02:09	1449435729	1
2015-12-06 14:01:09	1449435669	1
2015-12-06 14:00:09	1449435609	1
2015-12-06 13:59:10	1449435550	1
2015-12-06 13:58:09	1449435489	1
2015-12-06 13:57:09	1449435429	1
2015-12-06 13:56:09	1449435369	1
2015-12-06 13:55:09	1449435309	1
2015-12-06 13:54:09	1449435249	1
2015-12-06 13:53:09	1449435189	1
2015-12-06 13:52:09	1449435129	1
2015-12-06 13:51:09	1449435069	1
2015-12-06 13:50:09	1449435009	1
2015-12-06 13:49:09	1449434949	1
2015-12-06 13:48:09	1449434889	1
2015-12-06 13:47:09	1449434829	1
2015-12-06 13:46:09	1449434769	1
2015-12-06 13:45:09	1449434709	1
2015-12-06 13:44:09	1449434649	1
2015-12-06 13:43:09	1449434589	1
2015-12-06 13:42:09	1449434529	1
2015-12-06 13:41:10	1449434470	1
2015-12-06 13:40:09	1449434409	1
2015-12-06 13:39:09	1449434349	1
2015-12-06 13:38:09	1449434289	1
2015-12-06 13:37:09	1449434229	1
2015-12-06 13:36:09	1449434169	1
2015-12-06 13:35:09	1449434109	1
2015-12-06 13:34:10	1449434050	1
2015-12-06 13:33:10	1449433990	1
2015-12-06 13:32:09	1449433929	1
2015-12-06 13:31:09	1449433869	1
2015-12-06 13:30:09	1449433809	1
2015-12-06 13:29:09	1449433749	1
2015-12-06 13:28:09	1449433689	1
2015-12-06 13:27:09	1449433629	1
2015-12-06 13:26:09	1449433569	1
2015-12-06 13:25:09	1449433509	1
2015-12-06 13:24:10	1449433450	1
2015-12-06 13:23:09	1449433389	1
2015-12-06 13:22:09	1449433329	1
2015-12-06 13:21:09	1449433269	1
2015-12-06 13:20:09	1449433209	0
2015-12-06 13:19:09	1449433149	0
2015-12-06 13:18:09	1449433089	0
2015-12-06 13:17:10	1449433030	0
2015-12-06 13:16:09	1449432969	0
2015-12-06 13:15:09	1449432909	0
2015-12-06 13:14:09	1449432849	0
2015-12-06 13:13:09	1449432789	0
2015-12-06 13:12:09	1449432729	0
2015-12-06 13:11:10	1449432670	0
2015-12-06 13:10:09	1449432609	0
2015-12-06 13:09:09	1449432549	0
2015-12-06 13:08:09	1449432489	0
2015-12-06 13:07:09	1449432429	0
2015-12-06 13:06:09	1449432369	0
2015-12-06 13:05:09	1449432309	0
2015-12-06 13:04:09	1449432249	0
2015-12-06 13:03:09	1449432189	0
2015-12-06 13:02:09	1449432129	0
2015-12-06 13:01:09	1449432069	0
2015-12-06 13:00:09	1449432009	0
2015-12-06 12:59:09	1449431949	0
2015-12-06 12:58:09	1449431889	0
2015-12-06 12:57:10	1449431830	0
2015-12-06 12:56:09	1449431769	0
2015-12-06 12:55:10	1449431710	0
2015-12-06 12:54:09	1449431649	0
2015-12-06 12:53:09	1449431589	0
2015-12-06 12:52:09	1449431529	0
2015-12-06 12:51:09	1449431469	0
2015-12-06 12:50:09	1449431409	0
2015-12-06 12:49:09	1449431349	0
2015-12-06 12:48:09	1449431289	0
2015-12-06 12:47:09	1449431229	0
2015-12-06 12:46:09	1449431169	0
2015-12-06 12:45:09	1449431109	0
2015-12-06 12:44:09	1449431049	0
2015-12-06 12:43:09	1449430989	0
2015-12-06 12:42:09	1449430929	0
2015-12-06 12:41:09	1449430869	0
2015-12-06 12:40:09	1449430809	0
2015-12-06 12:39:09	1449430749	0
2015-12-06 12:38:09	1449430689	0
2015-12-06 12:37:10	1449430630	0
2015-12-06 12:36:09	1449430569	0
2015-12-06 12:35:10	1449430510	0
2015-12-06 12:34:10	1449430450	0
2015-12-06 12:33:09	1449430389	0
2015-12-06 12:32:10	1449430330	0
2015-12-06 12:31:10	1449430270	0
2015-12-06 12:30:10	1449430210	0
2015-12-06 12:29:09	1449430149	0
2015-12-06 12:28:09	1449430089	0
2015-12-06 12:27:09	1449430029	0
2015-12-06 12:26:09	1449429969	0
2015-12-06 12:25:09	1449429909	0
2015-12-06 12:24:09	1449429849	0
2015-12-06 12:23:09	1449429789	0
2015-12-06 12:22:09	1449429729	0
2015-12-06 12:21:09	1449429669	0
2015-12-06 12:20:09	1449429609	0
2015-12-06 12:19:09	1449429549	0
2015-12-06 12:18:09	1449429489	0
2015-12-06 12:17:09	1449429429	0
2015-12-06 12:16:09	1449429369	0
2015-12-06 12:15:09	1449429309	0
2015-12-06 12:14:09	1449429249	0
2015-12-06 12:13:09	1449429189	0
2015-12-06 12:12:09	1449429129	0
2015-12-06 12:11:09	1449429069	0
2015-12-06 12:10:09	1449429009	0
2015-12-06 12:09:09	1449428949	0
2015-12-06 12:08:09	1449428889	0
2015-12-06 12:07:09	1449428829	0
2015-12-06 12:06:09	1449428769	0
2015-12-06 12:05:09	1449428709	0
2015-12-06 12:04:09	1449428649	0
2015-12-06 12:03:09	1449428589	0
2015-12-06 12:02:09	1449428529	0
2015-12-06 12:01:10	1449428470	0
2015-12-06 12:00:09	1449428409	0
2015-12-06 11:59:09	1449428349	0
2015-12-06 11:58:09	1449428289	0
2015-12-06 11:57:09	1449428229	0
2015-12-06 11:56:09	1449428169	0
2015-12-06 11:55:10	1449428110	0
2015-12-06 11:54:09	1449428049	0
2015-12-06 11:53:09	1449427989	0
2015-12-06 11:52:09	1449427929	0
2015-12-06 11:51:09	1449427869	0
2015-12-06 11:50:09	1449427809	1
2015-12-06 11:49:09	1449427749	1
2015-12-06 11:48:09	1449427689	1
2015-12-06 11:47:09	1449427629	1
2015-12-06 11:46:09	1449427569	1
2015-12-06 11:45:09	1449427509	1
2015-12-06 11:44:09	1449427449	1
2015-12-06 11:43:09	1449427389	1
2015-12-06 11:42:09	1449427329	1
2015-12-06 11:41:09	1449427269	1
2015-12-06 11:40:09	1449427209	1
2015-12-06 11:39:10	1449427150	1
2015-12-06 11:38:09	1449427089	1
2015-12-06 11:37:09	1449427029	1
2015-12-06 11:36:09	1449426969	1
2015-12-06 11:35:10	1449426910	1
2015-12-06 11:34:09	1449426849	1
2015-12-06 11:33:09	1449426789	1
2015-12-06 11:32:09	1449426729	1
2015-12-06 11:31:09	1449426669	1
2015-12-06 11:30:09	1449426609	1
2015-12-06 11:29:09	1449426549	1
2015-12-06 11:28:09	1449426489	1
2015-12-06 11:27:10	1449426430	1
2015-12-06 11:26:09	1449426369	1
2015-12-06 11:25:09	1449426309	1
2015-12-06 11:24:09	1449426249	1
2015-12-06 11:23:09	1449426189	1
2015-12-06 11:22:09	1449426129	1
2015-12-06 11:21:09	1449426069	1
2015-12-06 11:20:09	1449426009	1
2015-12-06 11:19:09	1449425949	1
2015-12-06 11:18:09	1449425889	1
2015-12-06 11:17:09	1449425829	1
2015-12-06 11:16:09	1449425769	1
2015-12-06 11:15:09	1449425709	1
2015-12-06 11:14:09	1449425649	1
2015-12-06 11:13:10	1449425590	1
2015-12-06 11:12:09	1449425529	1
2015-12-06 11:11:09	1449425469	1
2015-12-06 11:10:10	1449425410	1
2015-12-06 11:09:09	1449425349	1
2015-12-06 11:08:09	1449425289	1
2015-12-06 11:07:09	1449425229	1
2015-12-06 11:06:09	1449425169	1
2015-12-06 11:05:09	1449425109	1
2015-12-06 11:04:09	1449425049	1
2015-12-06 11:03:09	1449424989	1
2015-12-06 11:02:09	1449424929	1
2015-12-06 11:01:09	1449424869	1
2015-12-06 11:00:10	1449424810	1
2015-12-06 10:59:09	1449424749	1
2015-12-06 10:58:09	1449424689	1
2015-12-06 10:57:11	1449424631	1
2015-12-06 10:56:09	1449424569	1
2015-12-06 10:55:09	1449424509	1
2015-12-06 10:54:09	1449424449	1
2015-12-06 10:53:10	1449424390	1
2015-12-06 10:52:09	1449424329	1
2015-12-06 10:51:09	1449424269	1
2015-12-06 10:50:09	1449424209	1
2015-12-06 10:49:09	1449424149	1
2015-12-06 10:48:09	1449424089	1
2015-12-06 10:47:09	1449424029	1
2015-12-06 10:46:09	1449423969	1
2015-12-06 10:45:09	1449423909	1
2015-12-06 10:44:09	1449423849	1
2015-12-06 10:43:09	1449423789	1
2015-12-06 10:42:09	1449423729	1
2015-12-06 10:41:09	1449423669	1
2015-12-06 10:40:09	1449423609	1
2015-12-06 10:39:09	1449423549	1
2015-12-06 10:38:09	1449423489	1
2015-12-06 10:37:09	1449423429	1
2015-12-06 10:36:09	1449423369	1
2015-12-06 10:35:09	1449423309	1
2015-12-06 10:34:09	1449423249	1
2015-12-06 10:33:09	1449423189	1
2015-12-06 10:32:09	1449423129	1
2015-12-06 10:31:10	1449423070	1
2015-12-06 10:30:09	1449423009	1
2015-12-06 10:29:10	1449422950	1
2015-12-06 10:28:09	1449422889	1
2015-12-06 10:27:09	1449422829	1
2015-12-06 10:26:09	1449422769	1
2015-12-06 10:25:09	1449422709	1
2015-12-06 10:24:09	1449422649	1
2015-12-06 10:23:09	1449422589	1
2015-12-06 10:22:09	1449422529	1
2015-12-06 10:21:09	1449422469	1
2015-12-06 10:20:10	1449422410	1
2015-12-06 10:19:10	1449422350	1
2015-12-06 10:18:09	1449422289	1
2015-12-06 10:17:09	1449422229	1
2015-12-06 10:16:09	1449422169	1
2015-12-06 10:15:09	1449422109	1
2015-12-06 10:14:09	1449422049	1
2015-12-06 10:13:10	1449421990	1
2015-12-06 10:12:09	1449421929	1
2015-12-06 10:11:09	1449421869	1
2015-12-06 10:10:09	1449421809	1
2015-12-06 10:09:09	1449421749	1
2015-12-06 10:08:09	1449421689	1
2015-12-06 10:07:09	1449421629	1
2015-12-06 10:06:09	1449421569	1
2015-12-06 10:05:09	1449421509	1
2015-12-06 10:04:09	1449421449	1
2015-12-06 10:03:10	1449421390	1
2015-12-06 10:02:09	1449421329	1
2015-12-06 10:01:09	1449421269	1
2015-12-06 10:00:09	1449421209	1
2015-12-06 09:59:09	1449421149	1
2015-12-06 09:58:09	1449421089	1
2015-12-06 09:57:10	1449421030	1
2015-12-06 09:56:09	1449420969	1
2015-12-06 09:55:09	1449420909	1
2015-12-06 09:54:09	1449420849	1
2015-12-06 09:53:09	1449420789	1
2015-12-06 09:52:09	1449420729	1
2015-12-06 09:51:09	1449420669	1
2015-12-06 09:50:09	1449420609	1
2015-12-06 09:49:09	1449420549	1
2015-12-06 09:48:09	1449420489	1
Comment by Chris Christensen [ 2015 Dec 08 ]

^ previous screenshot/data: the following maintenance time ranges were recorded (which seems to indicate it may have something to do with an event getting regenerated? after a maintenance is removed...)

Maintenance type: With data collection

2015-10-12 01:41:44 - Mon Oct 12 04:15:13 2015
2015-12-05 17:48:08 - Sat Dec 05 18:51:31 2015
2015-12-06 11:37:17 - Sun Dec 06 13:38:22 2015

Comment by Oleksii Zagorskyi [ 2015 Dec 08 ]

Chis, the host in your example is monitored by proxy or directly by server ?
Any delays of data sync from the proxy to server?
Heath of zabbix processes near to the point when "duplicated" events were created ?

And please, always mention involved zabbix components version

Comment by Chris Christensen [ 2015 Dec 08 ]

The host is monitored by proxy, no delays were visible and the queue was the same rate/value through all the times. Everything appears to be working normally for the region/proxy/host. Also - it's noteworthy that the behavior is visible in Oct., Dec. - which would be two independent points in time.

Zabbix server v2.2.4
Zabbix proxy v2.2.4
Zabbix Agent v1.8.10

Comment by Oleksii Zagorskyi [ 2015 Dec 08 ]

Thanks Chris !
Well, you should read this issue and not skip link to ZBXNEXT-2355 and read it too

I'm only not sure about one point where you had 3 (not 2) OK events, but who knows, it's also could be related to the ZBXNEXT-2355.

Comment by Chris Christensen [ 2015 Dec 08 ]

Oleksiy - I agree this looks more like ZBXNEXT-2355 as well to me (although both of these issues have similarities...)

Also - looked and there was another maint (different name, but still "With data collection") for: 2015-12-05 06:37:55 - 2015-12-05 08:07:55 (which correlates with all the duplicate OKs).

Comment by Roman Fiedler [ 2015 Dec 09 ]

If this and ZBXNEXT-2355 are duplicates, should then ZBX-9658 be de-duplicated from this issue and reopened, as it does not involve maintenance?

Comment by Oleksii Zagorskyi [ 2015 Dec 09 ]

Chris, yes, the 3rd OK is created after maintenance too.
See timestamps - all duplicated events created at 01th second of minute, while "normal" events created at 09-10th second - exactly when new value is gathered.
As we know:

Timer processes are responsible for switching host status to/from maintenance at 0 seconds of every minute.

https://www.zabbix.com/documentation/2.4/manual/maintenance

Comment by Oleksii Zagorskyi [ 2015 Dec 09 ]

Roman, I'd suggest to continue your discussion in your ZBX-9658 to keep current issue cleaner.
You may reopen own issues.

Comment by Oleksii Zagorskyi [ 2016 Jan 18 ]

Good news here - in a ZBX-10265 I discovered a real use case when multiple (2 and more) consecutive events may be created.
It easily may explain Chris' case where, above, I said: "I'm only not sure about one point where you had 3 (not 2) OK events ...".

So, the way how do you all put hosts to maintenance is very important !





[ZBX-9321] Hosts that were disabled become monitored again after server upgrade Created: 2015 Feb 18  Updated: 2017 May 30  Resolved: 2015 Feb 26

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.4.3
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: scott mcg Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: dm, proxy, upgrade
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Centos 6.5



 Description   

Hi

Is there a known bug where hosts that are disabled and are configured to use a DM Node, after upgrading will transition to become enabled again ?

We upgraded from 2.0.3 to 2.4.3 last night. It all went well apart from many hosts that were disabled/not-monitored all of a sudden being resurrected and made active. From the same hosts, on becoming active, some had the error "Field 'groupid' is not integer' because their group list was empty.

The hosts in question were configured to use DM Nodes. I know in 2.4 this feature was removed and it's now only proxies.

Thanks.



 Comments   
Comment by richlv [ 2015 Feb 18 ]

just a guess - some time ago a frontend bug allowed hosts to stay without hostgroups, but such hosts were not visible at all. after an upgrade, those hosts became visible. could that be the case here ?

Comment by scott mcg [ 2015 Feb 18 ]

hi.. yes that is very possible for the hosts the appeared after the upgrade with no groups associated.

Do you know of any other bugs that would explain the hosts that were in a disabled state, becoming enabled after the upgrade. I am trying to confirm 100% but i believe the hosts in question were configured as monitored by a Distributed Monitor node. Maybe there is some broken logic that during the upgrade, when the DM code is removed.. hosts that were configured to use a DM node get confused somehow and transition back to enabled state.

Comment by scott mcg [ 2015 Feb 18 ]

just to add some more info.

The upgrade notes https://www.zabbix.com/documentation/2.4/manual/installation/upgrade_notes_240 hint at the behaviour that we saw when upgrading. The bit about "Node-based distributed monitoring removed". What the upgrade notes don't mention is that nodes that were Node-based DM monitored and were disabled... will become enabled after the upgrade. It's this last bit that might be a bug in the upgrade process ?

Comment by scott mcg [ 2015 Feb 26 ]

unable to reproduce so closing off





[ZBX-9045] Missing indicator for more hosts than listed in DM->Proxy overview Created: 2014 Nov 15  Updated: 2017 May 30  Resolved: 2014 Nov 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 2.2.7
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Marc Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File missingPeriods.png    
Issue Links:
Duplicate
duplicates ZBX-7786 Incorrect ellipsis in proxy and host ... Closed

 Description   

There is no indication when more than listed hosts are configured for a Zabbix proxy:



 Comments   
Comment by Alexander Vladishev [ 2014 Nov 19 ]

Already fixed in ZBX-7786. I close the issue.





[ZBX-8914] Server incorrectly parses header, if TCP packet is fragmented within first 5 bytes Created: 2014 Oct 16  Updated: 2017 Dec 23  Resolved: 2016 Jan 13

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.5.0
Fix Version/s: 3.0.0alpha6

Type: Incident report Priority: Minor
Reporter: Filipp Sudanov (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: protocols, proxy, server, tcp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-10154 sender.pl fragments header, so it's n... Closed

 Description   

When server / proxy receives data, it analyses first 5 bytes to see, if they are the protocol header.
But if data is received in two TCP fragments and the first one 4 bytes long, server does not wait to receive full header, but decides that it received data without header and stores "ZBXD" in the database.



 Comments   
Comment by Filipp Sudanov (Inactive) [ 2014 Oct 16 ]

How to replicate - put ZBXD to your clipboard, run

stty raw && nc 127.0.0.1 10051

and paste into the terminal. Server does not wait for subsequent bytes, but instantly closes the connection and writes " trapper got 'ZBXD' " to it's log.

Comment by Glebs Ivanovskis (Inactive) [ 2015 Dec 22 ]

(1) Old protocols are still supported but changes should be documented in Upgrade notes anyway.

I would like to document the differences between old and new zbx_tcp_recv_ext() in details at least here. With a ',' I will denote interruptions in data flow, with a '.' I will denote socket closing moment.

# Situation Input example Old zbx_tcp_recv_ext() New zbx_tcp_recv_ext()
1. Data with header, no interruptions in <HEADER> and <DATALEN> <HEADER>,<DATALEN>,<D,A,T,A> Reads the <DATA> if <DATALEN> does not exceed 128 MB, <DATA> can easily be shorter than <DATALEN> and sometimes can be slightly longer than <DATALEN> Same, but <DATA> length must correspond to <DATALEN>, fails otherwise
2. Data with header, interruption in <HEADER> <HEA,DER><DATALEN><DATA> <HEA is assumed to be plain text Reads <HEA, waits for DER> and proceeds with <DATALEN> and <DATA>
3. Data with header, interruption in <DATALEN> <HEADER><DATA,LEN><DATA> Fails Reads <HEADER>, reads <DATA, waits for LEN> and proceeds with <DATA>
4. Plain text, read until socket closed PLAIN,T,E,X,T. Reads PLAINTEXT until '.', size must not exceed 16 MB Same
5. Plain text, don't read until socket closed PLAIN,T,E,X,T. Reads PLAIN until first ',' Same
6. XML, no interruptions in opening tag <req>X,M,L,<,/,r,e,q,> Reads until finds </req> within last 10 characters Same
7. XML, with interruptions in opening tag <re,q>XML</req> <re is assumed to be plain text Reads <re, waits for q> and reads until finds </req> within last 10 characters
8. Plain text resembling <HEADER><DATALEN> or <req> beginning <HEA or <HEADER><DAT or <re Reads <HEA as plain text and returns immediately; fails on incomplete <DATALEN>, Reads <re as plain text and returns immediately Tries to wait for the missing <HEADER>, <DATALEN> or <req> part, potentially hangs until timeout if socket is not closed earlier
9. Data with header, then less than 8 bytes and socket closed <HEADER><DAT. Fail Assume this is plain text
10. Success   Returns the number of bytes read including <HEADER> but excluding <DATALEN> Returns the number of bytes read excluding <HEADER> and <DATALEN>
11. Fail   Returns FAIL Same
12. All data is available at once and fits into 2 KB buffer   3 calls to zbx_tls_read() 1 call to zbx_tls_read()

8. is a payback for 2. and 3. Any ideas on how to improve the situation are appreciated.

glebs.ivanovskis Subtle change of return value in 10. caused a regression ZBX-10333 because such return value was used to distinguish between valid empty responses from agent and agent not willing to communicate in case of passive checks and zabbix_get requests.

Revision 58162 fixes return value in the following fashion:

# Situation Input example Old zbx_tcp_recv_ext() New zbx_tcp_recv_ext()
10. Success   Returns the number of bytes read including <HEADER> but excluding <DATALEN> Returns the number of bytes read including both <HEADER> and <DATALEN>
Comment by Glebs Ivanovskis (Inactive) [ 2015 Dec 22 ]

Fix for trunk is available in development branch svn://svn.zabbix.com/branches/dev/ZBX-8914 revision 57293.

Comment by Andris Zeila [ 2015 Dec 22 ]

(2) The following code can cause alignment error on non intel CPUs:

expected_len = zbx_letoh_uint64(*(zbx_uint64_t *)(s->buf_stat + ZBX_TCP_HEADER_LEN));

glebs.ivanovskis Can this issue be solved in this way?

memcpy(&expected_len, s->buf_stat + ZBX_TCP_HEADER_LEN, sizeof(zbx_uint64_t));
expected_len = zbx_letoh_uint64(expected_len);

wiper yes

glebs.ivanovskis RESOLVED in r57339.

wiper CLOSED

Comment by Andris Zeila [ 2015 Dec 23 ]

(3) If the initial packet contains header + length, but is larger than expected length, then 'message is shorter than expected' warning is logged.

The simple fix would be just to change the message to something like 'received data length differs from expected data length'.

glebs.ivanovskis Improved error messages as we discussed with zalex_ua to provide more information.

I've spotted a bug when we receive a slow-coming plain text message and ZBX_TCP_READ_UNTIL_CLOSE flag is set we can stick with static buffer and wont be able to read the full message if it's longer. Also fixed.

RESOLVED

wiper CLOSED

Comment by Andris Zeila [ 2016 Jan 12 ]

Successfully tested, please check my changes regarding to unrelated compilation warnings in r57558

glebs.ivanovskis Thanks, looks good!

Comment by Glebs Ivanovskis (Inactive) [ 2016 Jan 13 ]

Fixed in pre-3.0.0alpha6 (trunk) r57583.





[ZBX-8913] Zabbix server cannot parse JSON data with multibyte character on Solaris Created: 2014 Oct 16  Updated: 2017 May 30  Resolved: 2014 Oct 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.2.6
Fix Version/s: 2.2.8rc1, 2.4.2rc1, 2.5.0

Type: Incident report Priority: Blocker
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: encoding, logmonitoring, multibyte, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Solaris 11 Sparc/Intel


Issue Links:
Duplicate

 Description   

Zabbix server cannot parse JSON data with multibyte character on Solaris.

Using log[] item key and agent sends log message with multibyte character, "invalid JSON object" errors are recorded in both zabbix_agentd.log & zabbix_server.log



 Comments   
Comment by Andris Zeila [ 2014 Oct 16 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-8913

Comment by Aleksandrs Saveljevs [ 2014 Oct 30 ]

Fix looks good. We cast chars to unsigned chars in src/libs/zbxalgo/evaluate.c, too.

Comment by Andris Zeila [ 2014 Oct 30 ]

Released in:

  • pre-2.2.8rc1 r50297
  • pre-2.4.2rc1 r50298
  • pre-2.5.0 r50299




[ZBX-8873] Possible incorrect (infinite escalations) events after maintenance period Created: 2014 Oct 08  Updated: 2017 May 30  Resolved: 2014 Dec 05

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.2.6
Fix Version/s: 2.2.8rc1, 2.4.3rc1, 2.5.0

Type: Incident report Priority: Blocker
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: delay, events, maintenance, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

When the problem happens while maintenance period because of "nodata" trigger and then data has been processed by Zabbix server (possible delay from proxy or unavailable active agent) and resolves while maintenance.

Immediately after maintenance ends, Zabbxi generates new event with PROBLEM status, but do not change trigger status. In this case we have action escalation which will be never stopped because of trigger OK status.



 Comments   
Comment by Aleksandrs Saveljevs [ 2014 Oct 09 ]

To clarify, we are talking about the following scenario based on the following data (note that the third event has a bigger "clock" than the second):

mysql> select * from events where source = 0 and object = 0 and objectid = 51890 order by eventid DESC LIMIT 10;
+---------+--------+--------+----------+------------+-------+--------------+-----------+
| eventid | source | object | objectid | clock      | value | acknowledged | ns        |
+---------+--------+--------+----------+------------+-------+--------------+-----------+
| 8822741 |      0 |      0 |    51890 | 1412715600 |     1 |            0 |         0 |
| 8812309 |      0 |      0 |    51890 | 1412708305 |     0 |            0 | 409577698 |
| 8812307 |      0 |      0 |    51890 | 1412708310 |     1 |            0 | 570803690 |
...

At 1412708310 a nodata() trigger fired with PROBLEM. After that, we received delayed data from proxy and generated an OK event with "clock" of 1412708305. Finally, maintenance ended for this host and we generated a PROBLEM event at 1412715600 with the same value as the last event, even though the trigger is currently in OK state.

The problem that "last" in the last sentence means "last by clock" (see get_trigger_values() function, which is called from generate_events() in timer.c) and we have events out of order because of proxy.

Comment by Alexander Vladishev [ 2014 Dec 04 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-8873

Comment by Aleksandrs Saveljevs [ 2014 Dec 04 ]

(1) Looks good, but please see r50995 before merging.

sasha Thank you. It looks better! CLOSED

Comment by Aleksandrs Saveljevs [ 2014 Dec 05 ]

Fixed in pre-2.2.8 r51037, pre-2.4.3 r51038, and pre-2.5.0 (trunk) r51039.





[ZBX-8656] Incorrect queue calculation when item uses only flex interval and gathered with proxy Created: 2014 Aug 25  Updated: 2017 May 30  Resolved: 2014 Sep 04

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 2.0.12
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Andrei Gushchin (Inactive) Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: flexibleintervals, proxy, queue
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File 2014-08-25_15-16-28.png     PNG File history new.png     PNG File history.png     PNG File new item stteings.png     PNG File queue new.png     PNG File queue.png    
Issue Links:
Duplicate
duplicates ZBXNEXT-1946 Probably wrong queue calculation for ... Closed

 Description   

Have an item with 0 sec update inteval and 1 flex inteval 60 sec 1-7,12:00-12:01 in host minitored with zabbix proxy.

After performing the check we have this item in the queue, but it shouldn't be there because it was collected correctly. See attached screenshots.



 Comments   
Comment by Alexander Vladishev [ 2014 Aug 25 ]

Time on server and proxy side should be synchronized. Please check it.

Comment by Andrei Gushchin (Inactive) [ 2014 Aug 25 ]

Yes I had small difference on sever and proxy (about few secs).

But after fixing there is still that item in the queue. See new screenshots.
time from agents:

zabbix_get -s localhost -k system.localtime && zabbix_get -s 10.211.55.4 -k system.localtime
1408975770
1408975769
Comment by Marc [ 2014 Sep 01 ]

Sounds similar to ZBXNEXT-1946, doesn't it?

neogan yes it seems they describe almost the same issue





[ZBX-8600] Discovery broken when using proxies Created: 2014 Aug 11  Updated: 2017 May 30  Resolved: 2014 Aug 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.3.3
Fix Version/s: 2.3.4

Type: Incident report Priority: Critical
Reporter: Kenneth Palmertree Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: discovery, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 2.3.3



 Description   

Zabbix discovery is broken when using proxies in active mode. Creating a discovery rule that is implemented on a proxies causes a sql error on proxy server. New index for drules_2 for name is not passed to proxy causing invalid index. When this is fixed, there is still an issue where the discovered proxy data disappears on the next check cycle.



 Comments   
Comment by Kenneth Palmertree [ 2014 Aug 11 ]

Sorry the summary should be "Zabbix 2.3.3 Discovery broken when using proxies" and not just "Zabbix 2.3.3"

Comment by Alexander Vladishev [ 2014 Aug 11 ]

Possible errors with PostgreSQL backend on proxy side:

 20317:20140811:105423.060 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  duplicate key value violates unique constraint "globalmacro_1"
DETAIL:  Key (macro)=({$M1}) already exists.
 [update globalmacro set macro='{$M1}' where globalmacroid=3;
update globalmacro set macro='{$M2}' where globalmacroid=4;
]

 20317:20140811:105159.907 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  duplicate key value violates unique constraint "drules_2"
DETAIL:  Key (name)=() already exists.
 [insert into drules (druleid,iprange,delay) values (2,'192.168.0.1-254',3600),(3,'192.168.0.1-254',3600);
]

 21029:20140811:105718.978 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR:  duplicate key value violates unique constraint "regexps_1"
DETAIL:  Key (name)=(File systems for discovery 2) already exists.
 [update regexps set name='File systems for discovery 2' where regexpid=1;
update regexps set name='File systems for discovery 1' where regexpid=4;
]
Comment by Alexander Vladishev [ 2014 Aug 11 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-8600

Comment by Kenneth Palmertree [ 2014 Aug 11 ]

Applied patch ZBX-8600 and discovery is working when using proxy in active mode. Thanks for the quick turn around by the way on the patch.

There still an issue when defining discoveries using ip address/bit mask (Example, 10.148.64.0/24) instead of ip ranges like 10.148.64.1-10.148.64.254. Function "ip_in_list" fails to detect ip address/bit mask patterns and fails the look up and entries are removed from dservices and dhost table entries. See zabbix_server.log running debug level=4 below:

14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.21)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.21)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.23)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.23)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.24)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.24)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.25)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.25)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.29)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.29)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.749 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.31)
14162:20140811:145851.749 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.31)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.1)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.1)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.5)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.5)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.7)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.7)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.8)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.8)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.9)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 In ip_in_list(list:10.148.64.0/24,ip:10.148.64.9)
14162:20140811:145851.750 End of ip_in_list():FAIL
14162:20140811:145851.750 query without transaction detected
14162:20140811:145851.750 query [txnlev:0] [delete from dservices where dserviceid between 83 and 104]

<dimir> Thanks for reporting that. This will be fixed in ZBX-8608.

Comment by dimir [ 2014 Aug 12 ]

Successfully tested. After this fix the discovery rule name is passed to proxy with configuration and conflicts are no more possible. Also sasha fixed other possible SQL errors on updating the following table fields of proxy configuration:

  • globalmacro:macro
  • regexps:name

In order to implement this fix Zabbix server should be rebuild with new dbschema generated (no database changes).

Please review my code formatting changes in r48008.

Comment by Alexander Vladishev [ 2014 Aug 12 ]

Fixed in version pre-2.3.4 (trunk) r48026.





[ZBX-8516] Getting strange values while moving host between proxies Created: 2014 Jul 23  Updated: 2019 Dec 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.2.4
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Raimonds Treimanis Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File prototype.jpg     JPEG File screenshot-1.jpg    

 Description   

If i move monitored host from one proxy to another, sometimes i get strange random values in some items during transition, for example value 2733 in SNMP item which can be only 1 or 2, which leads to unpredictable trigger activations



 Comments   
Comment by richlv [ 2014 Jul 23 ]

can you please show the configuration of that item ?

Comment by Raimonds Treimanis [ 2014 Jul 23 ]

That wasnt one item, but several random items - about 10 from 1200 on that host. At least that many items got events triggered, maybe there were more which went unnoticed. Incorrect data continued to come in for about 15 min after i moved host, then stopped.
All of them are LLD items, see prototype in attached image.
This particular item showed
Outgoing traffic on interface TenGigE0/1/0/2 (host1:ifHCOutOctetsC[55]): 165.89 Tbps

Comment by richlv [ 2014 Jul 24 ]

i'm guessing that those are active proxies.

a guess on the reasons follows, although i'd still have to test whether server ignores proxy name - if it does not, reasons are different.

what happened, you changed proxy for the host - but proxy updates it's config once per hour by default.
the "new" proxy got the info that it should be monitoring those hosts first, the "old" proxy got the info that it should not monitor them a bit later.
as a result, there was some period of time when both proxies monitored those hosts and sent the values in.
the item you posted definitely can have other values but 1/2, and it's set to delta. as a result, proxies could send in bigger/smaller values. i zabbix sees a smaller value for such a delta item, it assumes the counter wrapped and the end results can be quite strange.

easy short term workaround is to reload proxy config on both involved proxies right after making the configuration changes (see zabbix_proxy --help)

Comment by Raimonds Treimanis [ 2014 Jul 24 ]

Yes, proxies are active, but config is fetched every 60 seconds.
By items, which can have values only 1 or 2 I meant for example interface status (up or down), but thats not from zabbix point of view - in zabbix item is still able to hold any value. SNMP daemon on host is unlikely to send 2733 instead of 1 or 2, thats why im gueesing that problem is in zabbix.
Prototype attached.

Comment by richlv [ 2014 Jul 24 ]

can you please show value history for an item that displays the problem ?

Comment by Raimonds Treimanis [ 2014 Jul 24 ]

Outbound traffic on TenGigE0/1/0/2
2014.Jul.23 17:42:38 1008680776
2014.Jul.23 17:37:39 988467728
2014.Jul.23 17:32:32 968324664
2014.Jul.23 17:27:34 999463104
2014.Jul.23 17:17:32 993845312
2014.Jul.23 17:12:46 1006535712
2014.Jul.23 17:07:34 991809760
2014.Jul.23 17:02:42 1029288816
2014.Jul.23 16:57:33 165891815325024
2014.Jul.23 16:47:32 1065951552
2014.Jul.23 16:42:41 1175800704
2014.Jul.23 16:37:39 1170439912
2014.Jul.23 16:32:34 1106425280

Comment by richlv [ 2014 Jul 24 ]

that's a delta item showing one weird value (which matches my guesses) - what about items that should only return 1 or 2 ?

Comment by Raimonds Treimanis [ 2014 Jul 24 ]

For some strange reason web interface doesnt allow me to get data older that 23:55 last night (possible bug?), despite i see all data in DB
Queried DB directly to get values
itemid clock values ns
93867 1406119714 1 751496527
93867 1406119772 1 565607
93867 1406119836 1 210069996
93867 1406119892 1 308066599
93867 1406119954 1 496065564
93867 1406120011 1 999056153
93867 1406120074 1 191444167
93867 1406120131 1 594095518
93867 1406120191 1 971658181
93867 1406120251 1 263078644
93867 1406120311 1 860624626
93867 1406120433 1 936598747
93867 1406120551 1 805964895
93867 1406120612 1 108371544
93867 1406120671 1 577482929
93867 1406120731 1 392513643
93867 1406120792 1 572236717
93867 1406120851 1 530784892
93867 1406120914 1 342007920
93867 1406120971 1 424511299
93867 1406121033 1 705406969
93867 1406121091 1 288946415
93867 1406121152 5553797 215067327
93867 1406121211 1 231707409
93867 1406121271 1 675542636
93867 1406121332 1 725441853
93867 1406121394 1 8733080
93867 1406121451 1 996013567
93867 1406121512 1 143180052
93867 1406121571 1 917334308
93867 1406121635 1 902447592
93867 1406121692 1 293312959
93867 1406121751 1 800231273
93867 1406121872 1 509657097
93867 1406121932 1 7007502





[ZBX-8514] Network discovery may change a passive proxy to host (status 6 to 0 in hosts table) Created: 2014 Jul 23  Updated: 2017 May 30  Resolved: 2014 Aug 12

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.2.3
Fix Version/s: 2.2.7rc1, 2.4.1rc1, 2.5.0

Type: Incident report Priority: Blocker
Reporter: Filipe Paternot Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: networkdiscovery, proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 2.2.3, centos 5.8 64bits, compiled from source, no paches


Attachments: PNG File #1 registred proxies.png     PNG File #2 proxy detail.png     PNG File #3 discovery found.png     PNG File #4 action detail.png     PNG File #5 discovery rule detail.png     PNG File #6 missing proxy.png     PNG File #7 hosts detail.png    
Issue Links:
Duplicate

 Description   

=====
Description:
When a network discovery runs from zabbix server against an ip that runs a passive zabbix proxy, that proxy is changed to host.
This way we may loose not only the registred proxy, as well as the relationship from the monitored hosts to the proxy.

=====
Enviromnent/steps to reproduce:

  • Zabbix server running
  • At least one zabbix proxy running in passive mode
  • Network discovery running from the zabbix server, and discovering the network/ip of your zabbix proxy
  • Actions to create / add / link template to your host. Make sure they will match against your zabbix proxy

=====
Attachments








 Comments   
Comment by Juris Miščenko (Inactive) [ 2014 Aug 04 ]

Fix implemented at svn://svn.zabbix.com/branches/dev/ZBX-8514

Comment by Alexander Vladishev [ 2014 Aug 07 ]

(1) "Remove host" operation can remove passive proxy with discovered IP.

jurism RESOLVED.

sasha CLOSED

Comment by richlv [ 2014 Aug 11 ]

(2) when the fix is finalised, let's document what will happen in all of these cases - maybe as a note in https://www.zabbix.com/documentation/2.2/manual/discovery/network_discovery ?

jurism This is a bugfix. It will add a host instead of changing a proxy into a host, which was the bug. Why would that require documenting?

<richlv> as discussed on irc, there should not be any potential conflicts (like host conflicting with a proxy), so indeed no need to document -> CLOSED

Comment by Juris Miščenko (Inactive) [ 2014 Sep 24 ]

Fixed in 2.2.7rc1 r49269, 2.4.1rc1 r49277, 2.5.0 (trunk) r49270.





[ZBX-8476] Incorrect queue calculation when using proxies Created: 2014 Jul 16  Updated: 2017 May 30  Resolved: 2014 Sep 03

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.2.4
Fix Version/s: 2.2.8rc1, 2.4.3rc1, 2.5.0

Type: Incident report Priority: Blocker
Reporter: Ingus Vilnis Assignee: Unassigned
Resolution: Fixed Votes: 10
Labels: proxy, queue
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Zabbix server is showing wrong queue calculation for items that are polled using proxies. Items are polled correctly and appear in latest data at the expected time, but delay is showed in queue.

If looking at the queue on the proxy side then it is empty and data has been sent correctly.



 Comments   
Comment by Alexander Vladishev [ 2014 Jul 17 ]

It can happen in two cases:

  • when server's and proxy's system clocks are not synchronized.
  • after start of zabbix_server. "nextcheck" field is not initialized in the configuration cache for items, monitored by proxies (ZBX-8488).
Comment by Michael [ 2014 Jul 18 ]

I observe the same behaviour. System clocks on zabbix-server and zabbix-proxy are synchronized. In my case it happens with items with check interval of 1 hour and higher.

Comment by Alexander Vladishev [ 2014 Jul 18 ]

Related issue: ZBX-8488

Comment by Ronny Pettersen [ 2014 Jul 23 ]

This even happens for hosts that connect directly to the Zabbix server, not only through Zabbix proxies.
From ZBX-8488, which is a bug that was not present in 2.2.4, but was introduced in 2.2.5.

This will be the queue status for absolutely all hosts (no matter if they connect through proxy or not) after restart of Zabbix server:
Scheduled Check = Never
delayed by = 44y 7m 3d

Items queue will stay that way until next update from host (1 hour or more for some items).

Comment by Aleksandrs Saveljevs [ 2014 Aug 01 ]

Under this issue we shall fix the case when server's and proxy's system clocks are not synchronized. The "nextcheck" field not being initialized in the configuration cache on server startup will be handled separately in ZBX-8488.

Comment by Aleksandrs Saveljevs [ 2014 Aug 01 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-8476 in r47740 through r47749.

The fix is based on taking the time difference between server and proxy into account when calculating item nextchecks.

Comment by Aleksandrs Saveljevs [ 2014 Sep 03 ]

The new fix is located in the recreated development branch svn://svn.zabbix.com/branches/dev/ZBX-8476 , based on Zabbix 2.2.6 with ZBX-8488 fix included.

It adds active proxies into configuration cache. The rest is described in one of the source comments:

/******************************************************************************
 *                                                                            *
 * Function: DCconfig_set_proxy_timediff                                      *
 *                                                                            *
 * Purpose: set rounded time difference between server clock and proxy clock  *
 *                                                                            *
 * Comments: When we calculate "nextcheck" for items on proxied hosts, we     *
 *           take the time difference between server and proxy into account.  *
 *                                                                            *
 *           For instance, suppose an item was processed on the proxy at 10   *
 *           seconds and there is a time difference between server and proxy  *
 *           of -2 seconds (that is, proxy's time is 2 seconds in front). In  *
 *           the server's database, we will store the timestamp of 8 seconds. *
 *           However, when we calculate "nextcheck" on the server side, we    *
 *           should calculate it from 10 seconds. Otherwise, if we calculate  *
 *           it from 8 seconds, we will probably get those 10 seconds as the  *
 *           "nextcheck". Finally, after calculating "nextcheck", we should   *
 *           utilize the time difference again to get Zabbix server's time.   *
 *                                                                            *
 *           Now, suppose we have a non-integer time difference, say, of -1.5 *
 *           seconds. Suppose also that one item on the proxy was checked at  *
 *           4.7 seconds, whereas a second item was checked at 5.2 seconds,   *
 *           which corresponds to server times of 3.2 and 3.7 seconds. Since  *
 *           "nextcheck" calculation only uses the integer part, server will  *
 *           use 3 seconds as the basis, before using the time difference.    *
 *           However, it is very likely that the first item was scheduled for *
 *           4 seconds on the proxy and the second item for 5 seconds, so in  *
 *           order to be precise we would need to store time differences for  *
 *           each individual item. That would lead to a significant increase  *
 *           in memory consumption, which we rather avoid. For this reason    *
 *           we only store a single time difference between server and proxy, *
 *           and use it for all items. However, the way time difference is    *
 *           used is different before and after "nextcheck" calculation.      *
 *                                                                            *
 *           Consider the example above. Server uses 3 seconds as the basis,  *
 *           and subtracts a unified difference of -2 (rounded down) to both  *
 *           items, yielding 5. It then calculates "nextcheck" for these two  *
 *           items, yielding 4 and 5 (assuming a one-minute delay). It then   *
 *           adds a unified difference of -1 (rounded up), to get Zabbix      *
 *           server's time of 3 and 4.                                        *
 *                                                                            *
 *           This has the effect that items will get into the delayed item    *
 *           queue at most one second later, but this is feasible: in proxy   *
 *           to server communication there is a communication latency, which  *
 *           also has the effect of putting items into the delayed item queue *
 *           a bit later, and we do not account for that anyway.              *
 *                                                                            *
 *           As described above, we subtract a rounded down difference before *
 *           "nextcheck" calculation and a rounded up difference after. Since *
 *           we have a 1/10^9 chance of hitting an integer "timediff" value,  *
 *           which would yield the same value rounded down and rounded up, in *
 *           the proxy structure we only store the difference rounded down to *
 *           save space. This is achieved by discarding the "ns" part of the  *
 *           "timediff" structure. We then assume that the rounded down value *
 *           and the rounded up values are different.                         *
 *                                                                            *
 *           Calculations of "nextchecks" themselves are done in functions    *
 *           DCget_reachable_nextcheck() and DCsync_items() functions.        *
 *                                                                            *
 ******************************************************************************/
Comment by Alexander Vladishev [ 2014 Nov 04 ]

(7) Please review my changes in r50378.

asaveljevs Looks great! CLOSED.

Comment by Aleksandrs Saveljevs [ 2014 Nov 05 ]

Fixed in pre-2.2.8 r50439, pre-2.4.3 r50443, and pre-2.5.0 r50445.

Comment by Sajjad Shahcheraghian [ 2015 Jan 04 ]

I Solve this problem in 2.2.7 by increasing zabbix-server's pollers.
Maybe usefule for others without any update.





[ZBX-8447] Setting hosts proxy_hostid to non-existent proxy id prevents updating Created: 2014 Jul 07  Updated: 2017 Oct 24  Resolved: 2017 Oct 24

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 2.2.4
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: Kevin Daudt Assignee: Unassigned
Resolution: Workaround proposed Votes: 0
Labels: api, hosts, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

By accident, I used the hostid of the proxy host instead of proxy_hostid for an amount of hosts.

This didn't cause an error and the hosts are shown to be monitored by no proxy.

Trying to change the proxy_hostids for these hosts via the API (hosts.massupdate) again doesn't do anything and also doesn't give any error.

Example request:

{
"method": "host.massupdate",
"params": {
"proxy_hostid": 100100000011256,
"hosts": [

{ "hostid":"100100000011069" }

,

{ "hostid":"100100000011073" }

]
}

I am able to manually assign a proxy via the web interface on the host configuration page.



 Comments   
Comment by Pavels Jelisejevs (Inactive) [ 2014 Jul 15 ]

I'm not sure fully understood your report. Could you please post and example API request that caused the problem and what it did?

Comment by Kevin Daudt [ 2014 Jul 15 ]

An example:

{
"host": "hostname.domain.com"
"name": "hostname",
"proxy_hostid": 100100000011255,
"groups": [

{ "groupid": 100100000000069 }

],
"interfaces": [

{ "type": 2, "main": 1, "useip": 1, "ip": "10.0.0.1", "dns": "hostname.domain.com", "port": "161" }

],
}

I left out other fields.

Id 100100000011255 is not a proxy hostid, but a normal hostid. This request was accepted. In the webinterface, it shows that thist host was monitored by no proxy, but through the API, I was not able to change the proxy_hostid to an existing one.

Comment by richlv [ 2014 Jul 15 ]

try quoting proxy hostid and groupid





[ZBX-8307] zabbix proxy sqlite / db upgrade 2.0 => 2.2 not working Created: 2014 Jun 05  Updated: 2022 Aug 16  Resolved: 2014 Jul 14

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Documentation (D), Proxy (P)
Affects Version/s: 2.2.2
Fix Version/s: 2.3.2

Type: Incident report Priority: Critical
Reporter: dakol Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, sqlite, upgrade
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-6181 Zabbix Proxy should drop SQLite Datab... Closed

 Description   

Upgrade from 2.0.10 to 2.2.2.
Zabbix Server (PosgreSQL) went ok

Zabbix Proxy (SQLite) went ko

29381:20140605:140040.434 query [txnlev:0] [select 1 from sqlite_master where tbl_name='dbversion' and type='table']
29381:20140605:140040.435 The proxy does not match Zabbix database. Current database version (mandatory/optional): UNKNOWN. Required mandatory version: 02020000.
29381:20140605:140040.437 End of DBcheck_version():FAIL
29490:20140605:140238.156 Starting Zabbix Proxy (active) [zabbix-proxy-mlb-prod-2y.sup]. Zabbix 2.2.2 (revision 42525).

but no luck.



 Comments   
Comment by Aleksandrs Saveljevs [ 2014 Jun 05 ]

Perhaps we should document that database upgrade for SQLite is not supported. Instead, proxy's database file should simply be removed. When started, proxy will recreate it automatically.

Comment by Oleksii Zagorskyi [ 2014 Jun 06 ]

Interesting, could proxy do that (delete the file) itself ?

Comment by Martins Valkovskis [ 2014 Jun 06 ]

[1]
Currently noted that automatic DB upgrade not supported for SQLite:

zalex_ua for now it's ok.
But most of us agree that something should be changed on proxy code with sqlite support.
After that these notes probably should be changed.

sasha added the message "Zabbix does not support SQLite3 database upgrade." on proxy an server sides.

CLOSED

Comment by Marc [ 2014 Jun 06 ]

Yeah, please document that. I run into the same issue a couple of month ago too and it took me some time to solve. Beside documenting it I'd appreciate a dedicated log messages that informs about this limitation.

As for deletion I'd prefer the process would not do it automatically. The process can't reliably know whether the data might still be of any interest to the user or not.

But an additional option to allow that, which of course by default is disabled, might be a compromise.

Comment by dimir [ 2014 Jun 06 ]

Good idea, okkuv9xh, to have proxy configuration parameter allowing that.

Comment by Oleksii Zagorskyi [ 2014 Jun 06 ]

There were discussion with devs about the idea to automatically remove db file with smart logic.
We finished that idea looks good and would worth to develop it.

Considering possibly existing historical data - there no way to do something with it.
For example if server already upgraded and running - proxy should not be pointed to the server. There no way than delete db file and let proxy recreate it.
It should be only in case of major upgrade. Not sure what to do with optional patches.

As for configuration option which is disabled by default - I don't agree.
Do we have any similar configuration thing for server upgrade? No! Why then we need it for proxy?
It should be upgraded automatically! (IMO)

Comment by Marc [ 2014 Jun 06 ]

I see your point zalex_ua. Just speaking for myself and for my current setup I could live with that.

Nevertheless, deleting is generally an irreversible action. Users may have done some custom stuff like adding indirect connected data that might be joined with zabbix data in queries.
Sure one can argue that this is not supported by upstream. Anyway the possibility for doing so, is an elementary option in the realm of FOSS.

The implementation of a clever algorithm, that might take care of any possible variable that might theoretically exist, sounds to me a lot more effort - when even successfully doable at all.

As for referring to the way things are already done, I'd say: Let's do it the right way and make sqlite databases upgradeable in the same way it is already done for other database backends.

Addendum:
As for server upgrade, it made my live a lot easier, since i had over 30 proxies that had to be updated separately. Beside the fact that I don't want to rollback 30 proxies when it turns out that there are unexpected serious issues with the new release.
I know that's not supported as well. but in cases where it still works it's a blessing.
But that has actually nothing to do with how to take care about the proxy database

Comment by Oleksii Zagorskyi [ 2014 Jun 06 ]

sasha in that discussion said:

it is fairly hard to do database upgrade in SQLite.
For instance, in order to change a field's type or rename it, one has to recreate a table.
We should write absolutely different code to upgrade SQLite3. For a proxy it isn't so important. It is simpler to delete and create the new database.

Comment by Marc [ 2014 Jun 06 ]

Never said that sqlite upgrade would be an easy(er) way

In case the aim is use "[...] similar configuration thing for server upgrade", then I'd suggest to implement sqlite upgrade but not to implement something new that is not done somewhere else as well.

In doubt, I believe it's by far better just to print/log a clear information about the current limitation.

Addendum:
Or to make the automatic deletion optional, of course. At least to allow opt-out.

Comment by richlv [ 2014 Jun 06 ]

auto-deleting would be bad, as noted that's irreversible.
i'd vote for nice message in the logfile.

Comment by Juris Miščenko (Inactive) [ 2014 Jul 09 ]

For the time being, we are not going to implement a ``smart'' mechanism for upgrading SQLite databases. A log message has been added to note that SQLite DBs are not supported.

Change implemented at svn://svn.zabbix.com/branches/dev/ZBX-8307

Comment by Juris Miščenko (Inactive) [ 2014 Jul 14 ]

Fix merged in 2.3.3 (trunk) r47286

Comment by Oleksii Zagorskyi [ 2014 Jul 14 ]

FYI - svn r47286 log message uses wrong issue number "ZBX-8037"

sasha Thanks! FIXED





[ZBX-8300] Zabbix-proxy crashes reproducible while querying VMware services - in poller Created: 2014 Jun 04  Updated: 2017 May 30  Resolved: 2014 Jun 05

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.2.3
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Thomas Kühling Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: crash, proxy, vmware
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix-Proxy:

vSphere vCenter:

  • MS Windows 2008R2
  • VMware vCenter Server, 5.5.0, 1378903

Attachments: PNG File zabbix.png     File zabbix_proxy.log    
Issue Links:
Duplicate
duplicates ZBX-8251 Possible server crash when processing... Closed

 Description   

While querying a VMware service, zabbix-proxy crashes reproducible:

10182:20140604:161241.247 failed to query VMware service at Cannot find performance counters for virtualDisk group: 10162:20140604:161241.253 One child process died (PID:10182,exitcode/signal:255). Exiting ...

See atteched zabbix_proxy.log (in debug mode) for more details.



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

Backtrace from attached log:

 10182:20140604:161241.247 === Backtrace: ===
 10182:20140604:161241.248 14: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](print_fatal_info+0x9e) [0x45a67e]
 10182:20140604:161241.248 13: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values]() [0x45aa87]
 10182:20140604:161241.248 12: /lib/x86_64-linux-gnu/libc.so.6(+0x324f0) [0x7f879c2224f0]
 10182:20140604:161241.248 11: /lib/x86_64-linux-gnu/libc.so.6(_IO_vfprintf+0x263a) [0x7f879c235cba]
 10182:20140604:161241.248 10: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](__zbx_zabbix_log+0x30d) [0x440c4d]
 10182:20140604:161241.248 9: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values]() [0x425168]
 10182:20140604:161241.248 8: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](check_vcenter_eventlog+0xe6) [0x425f56]
 10182:20140604:161241.248 7: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](get_value_simple+0xf7) [0x424d07]
 10182:20140604:161241.248 6: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values]() [0x4231de]
 10182:20140604:161241.248 5: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](main_poller_loop+0x7b) [0x4235eb]
 10182:20140604:161241.248 4: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](MAIN_ZABBIX_ENTRY+0x5e1) [0x4163f1]
 10182:20140604:161241.248 3: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](daemon_start+0x18d) [0x459f9d]
 10182:20140604:161241.248 2: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values](main+0x266) [0x415426]
 10182:20140604:161241.248 1: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd) [0x7f879c20eead]
 10182:20140604:161241.248 0: /usr/sbin/zabbix_proxy: poller #2 [got 3 values in 0.074332 sec, getting values]() [0x415755]
Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

I was not able to find similar backtrace, but we had ZBX-8251, which could be related, and it fixed already.
There were other fixes as well.

Thomas, could you compile and try Pre-2.2.4rc1 (stable) downloaded here http://www.zabbix.com/developers.php ?

Comment by Thomas Kühling [ 2014 Jun 05 ]

@Olesky: Sure and thanks for your efforts. Is it ok, to compile only the zabbix-proxy, or do i also need to update the zabbix-server?

Comment by Thomas Kühling [ 2014 Jun 05 ]

Pre-2.2.4rc1 on the proxy is running now:

root@exodus:/etc/zabbix# /usr/sbin/zabbix_proxy --version
Zabbix proxy v2.2.4rc1 (revision 46193) (7 April 2014)
Compilation time: Jun 5 2014 09:28:26

I compiled it with the debian-flavor of debian/rules to get a comparable situation:

./configure         --host=x86_64-linux-gnu \
                    --build=x86_64-linux-gnu \
                    --prefix=/usr \
                    --mandir=\$${prefix}/share/man \
                    --infodir=\$${prefix}/share/info \
                    --sysconfdir=/etc/zabbix \
                    --enable-server \
                    --enable-agent \
                    --enable-proxy \
                    --enable-java \
                    --with-jabber \
                    --with-ldap \
                    --enable-ipv6 \
                    --with-net-snmp \
                    --with-openipmi \
                    --with-ssh2 \
                    --with-libcurl \
                    --with-unixodbc \
                    --with-libxml2 \
                    --with-mysql

VMware poller are activated and i'm actually monitoring the log.

Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

Yes, testing only proxy is enough.

Comment by Thomas Kühling [ 2014 Jun 05 ]

Zabbix Dashboard

Comment by Thomas Kühling [ 2014 Jun 05 ]

Since now the proxy seems to be stable. But i won't get any data of discovered hosts, only a chaotic grouping of discovered virtual guest machines - see Screenshot "Zabbix Dashboard". Also i got those errors from the poller:

 11772:20140605:093801.577 In vmware_service_get_hv_list()
 11772:20140605:093801.585 vmware_service_get_hv_list() page.data:'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>FEHLER: Die angeforderte URL konnte nicht gefunden werden</title> <style type="text/css"><!--   /*
 11772:20140605:093801.585 End of vmware_service_get_hv_list():SUCCEED [0]
 11772:20140605:093801.585 In vmware_service_get_event_data() event_session:'(null)'
 11772:20140605:093801.585 In vmware_service_get_event_session()
 11772:20140605:093801.595 End of vmware_service_get_event_session():FAIL
 11772:20140605:093801.595 End of vmware_service_get_event_data():FAIL
 11772:20140605:093801.595 End of vmware_service_update():FAIL

Any other issues with the sdk api of VMware?

Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

Thomas, this issue can be discussed only in the crash aspect, I'm sorry.
Probably you need to ask help on community http://www.zabbix.org/wiki/Getting_help.

I'm going to close current issue as duplicate of ZBX-8251, feel free to reopen if similar crash will still happen.

Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

Supposedly, this is duplicate of ZBX-8251, closed.





[ZBX-8299] Existence of discovery rule not checked when running discovery via proxy and the rule on server gets deleted while being run on proxy Created: 2014 Jun 04  Updated: 2017 May 30  Resolved: 2015 May 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.2.3
Fix Version/s: 2.0.15rc1, 2.2.10rc1, 2.4.6rc1, 2.5.0

Type: Incident report Priority: Blocker
Reporter: Ingus Vilnis Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: discoveryrule, networkdiscovery, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Existence of discovery rule not checked when running discovery rule via proxy and if the rule on server gets deleted meanwhile being run on proxy.

How to reproduce:
1. Zabbix Server 2.2.3, Zabbix Proxy
2. Configuration -> Discovery -> Create discovery rule
3. Set the rule to be monitored via Proxy
4. Set IP range, delay, and select check type like "ICMP ping"
5. Wait for rule to run on proxy, check it in Monitoring -> Discovery
6. When some hosts start to appear, stop Zabbix server Server must be stopped before the discovery on proxy is finished
7. With the server stopped, delete the newly created discovery rule
8. Start Zabbix server

In this scenario Zabbix proxy does not check for existence of discovery rule after server restart and continues to send in discovery data to non-existing rule.
That makes Zabbix server log to show the following line repeatedly:

 18354:20140604:140732.946 [Z3005] query failed: [1452] Cannot add or update a child row: a foreign key constraint fails (`zabbix`.`dhosts`, CONSTRAINT `c_dhosts_1` FOREIGN KEY (`druleid`) REFERENCES `drules` (`druleid`) ON DELETE CASCADE) [insert into dhosts (dhostid,druleid) values (192,6)]


 Comments   
Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

I think it's absolutely real even in production (w/o stopping zabbix server).
For example discovery for a big network can take a lot of time and during discovery the rule being deleted on server.

added:
what if in my case discovery rules takes so much time that proxy is able to update its config cache from server?
Maybe SQL errors will appear (also?) on proxy side ?

Comment by Aleksandrs Saveljevs [ 2015 Apr 20 ]

Oleksiy is right: if we perform network discovery on the server and we delete a discovery rule while the discovery is running, the same error will occur.

Comment by Aleksandrs Saveljevs [ 2015 Apr 22 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-8299 by verifying that discovery rules and discovery checks exist in the database before performing any database operations.

Comment by Andris Zeila [ 2015 Apr 29 ]

Successfully tested

Comment by Aleksandrs Saveljevs [ 2015 Apr 29 ]

Fixed in pre-2.0.15 r53412, pre-2.2.10 r53413, pre-2.4.6 r53414, pre-2.5.0 (trunk) r53415.





[ZBX-8202] Server ignores host availability for hosts are monitored by proxy Created: 2014 May 13  Updated: 2017 May 30  Resolved: 2014 May 15

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.2.3
Fix Version/s: 2.2.4, 2.3.0

Type: Incident report Priority: Trivial
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: availability, proxy, queue
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File zab1.PNG     PNG File zab2.PNG     PNG File zab3.PNG     PNG File zab4.PNG     PNG File zab5.png    
Issue Links:
Duplicate
duplicates ZBX-7962 Zabbix 2.2 items still in queue for h... Closed

 Description   

Queue shows all hosts are monitored by proxy. These hosts are not available, so snmp_error, ipmi_error and agent error is not clear.



 Comments   
Comment by richlv [ 2014 May 13 ]

could be related to ZBXNEXT-1946

sasha it not that case

Comment by Nikolajs Agafonovs (Inactive) [ 2014 May 14 ]

Fix available in svn://svn.zabbix.com/branches/dev/ZBX-8202

Comment by Nikolajs Agafonovs (Inactive) [ 2014 May 14 ]

Available in pre-2.3.0 (trunk) r45500

Comment by Oleksii Zagorskyi [ 2014 May 14 ]

Changelog and svn log record:
.......PS. ZBX-8202 fixed host availability issue monitoring with proxy
doesn't talk about queue at all. not good ...

nikolajs.agafonovs fixed in pre-2.3.0 (trunk) r45516 RESOLVED

zalex_ua Now it's:
fixed queue issue when monitoring thru proxy
Why would not describe it to be clear? Like this:
fixed queue calculation for unavailable hosts which monitored by proxy
REOPENED

sasha RESOLVED in r45519.
CLOSED

zalex_ua well, final version is:
"fixed queue calculation for unavailable hosts which are monitored through a proxy"
I agree with added "are", but "through" it's not officially used. In frontend related field called "Monitored by proxy"
...

sasha Ok, I will fix it. Thanks!

Comment by Alexander Vladishev [ 2014 May 15 ]

Fixed in pre-2.2.4 r45519 and pre-2.3.0 (trunk) r45519.

Comment by Arthur Ivanov [ 2014 Dec 17 ]

got same problem with 2.4.2.

host monitored by proxy and became unavailable, but server? and proxy still counting in queue.

plz look at zab1..5.png

Comment by Aleksandrs Saveljevs [ 2014 Dec 22 ]

Arthur, you seem to have posted in ZBX-8942, too. Let's continue the discussion there.





[ZBX-8177] Zabbix_proxy fails with signal SIGFPE while starting Created: 2014 May 06  Updated: 2017 May 30  Resolved: 2014 May 07

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.2.2
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: Wojciech Korzenny Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: crash, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

OS:
Red Hat Enterprise Linux Server release 6.4 (Santiago)
x86_64, 2.6.32-358.el6.x86_64

Installed packages:

#rpm -qa | grep zabb
zabbix-proxy-mysql-2.2.2-1.el6.x86_64
zabbix-2.2.2-1.el6.x86_64
zabbix-proxy-2.2.2-1.el6.x86_64

  1. zabbix_proxy -V
    Zabbix proxy v2.2.2 (revision 42525) (12 February 2014)
    Compilation time: Feb 15 2014 16:31:32
  1. grep -v "$|#" /etc/zabbix/zabbix_proxy.conf

Server=zabbix_host
Hostname=proxy_server
LogFile=/apps/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/apps/zabbix/zabbix_proxy.pid
DBHost=dbhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
StartPollers=50
StartPollersUnreachable=10
StartTrappers=15
StartPingers=1
StartDiscoverers=2
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=4
CacheSize=512M


Attachments: File objdump_zabbix_proxy.log.gz     Text File zabbix_proxy.log    
Issue Links:
Duplicate
duplicates ZBX-8102 zabbix_proxy crash - sigfpe Closed
is duplicated by ZBX-8494 Proxy crashes if started with server ... Closed

 Description   

Zabbix_proxy fails with error:

29305:20140505:061759.508 Starting Zabbix Proxy (active) [vplab082.dev.sabre.com]. Zabbix 2.2.2 (revision 42525).
29305:20140505:061759.509 **** Enabled features ****
29305:20140505:061759.509 SNMP monitoring: YES
29305:20140505:061759.509 IPMI monitoring: YES
29305:20140505:061759.509 WEB monitoring: YES
29305:20140505:061759.509 VMware monitoring: YES
29305:20140505:061759.509 ODBC: YES
29305:20140505:061759.509 SSH2 support: YES
29305:20140505:061759.509 IPv6 support: YES
29305:20140505:061759.509 **************************
29305:20140505:061759.509 using configuration file: /etc/zabbix/zabbix_proxy.conf
29305:20140505:061759.521 current database version (mandatory/optional): 02020000/02020000
29305:20140505:061759.521 required mandatory version: 02020000
29305:20140505:061804.859 Got signal [signal:8(SIGFPE),reason:1,refaddr:0x44be7d]. Crashing ...

Same behavior for 2.2.1 release.

Logs in attachment:

  • zabbix_proxy.log - zabbix proxy log
  • objdump_zabbix_proxy.log.gz (output from command: objdump -DSswx /usr/sbin/zabbix_proxy)


 Comments   
Comment by Aleksandrs Saveljevs [ 2014 May 06 ]

Looks the same as ZBX-8102. Is the database parameter correct?

Comment by Wojciech Korzenny [ 2014 May 06 ]

They are correct. When they are not corrent, I got an exception for example:

[Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix2'@'zabbix_proxy' (using password: YES)
18139:20140506:064537.511 Database is down.

Parameter DBHost=dbhost definitely points to local db (dedicated for zabbix proxy) not for zabbix-server db.

What's more - backtrace in log is different (shorter) than reported in ZBX-8102:

29305:20140505:061804.860 === Backtrace: ===
29305:20140505:061804.861 9: zabbix_proxy(print_fatal_info+0x280) [0x459220]
29305:20140505:061804.861 8: zabbix_proxy() [0x45994c]
29305:20140505:061804.861 7: /lib64/libc.so.6() [0x32ed832920]
29305:20140505:061804.861 6: zabbix_proxy() [0x44be7d]
29305:20140505:061804.861 5: zabbix_proxy(DCsync_configuration+0x1687) [0x44e117]
29305:20140505:061804.861 4: zabbix_proxy(MAIN_ZABBIX_ENTRY+0x1de) [0x412d6e]
29305:20140505:061804.861 3: zabbix_proxy(daemon_start+0x1cd) [0x45862d]
29305:20140505:061804.861 2: zabbix_proxy(main+0x2f6) [0x413906]
29305:20140505:061804.861 1: /lib64/libc.so.6(__libc_start_main+0xfd) [0x32ed81ecdd]
29305:20140505:061804.861 0: zabbix_proxy() [0x412499]

Comment by richlv [ 2014 May 07 ]

what asaveljevs meant, is that really a proxy database, not having any data from the server dataset ?
how exactly was the database created ?

Comment by Wojciech Korzenny [ 2014 May 07 ]

DB that proxy uses is a copy of database that zabbix server used before.

Is it a db that I should use or I ought to create clean database created by script schema.sql?

Comment by Aleksandrs Saveljevs [ 2014 May 07 ]

Yes, you should create a clean database using schema.sql. Scripts images.sql and data.sql should not be imported.

Comment by richlv [ 2014 May 07 ]

right. proxies should not be pointed at server db.
closing.





[ZBX-8172] Possible invalid JSON implementation on Zabbix Proxy Created: 2014 May 04  Updated: 2017 May 30  Resolved: 2014 Jun 03

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.2.2
Fix Version/s: 2.3.1

Type: Incident report Priority: Minor
Reporter: Sam Crookes Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: datatype, float, json, precision, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Proxy 2.2.2 compiled on OpenBSD 5.4



 Description   

Sending a floating point value formatted in JSON to the Zabbix Proxy does not result in an error but zeros numbers after decimal point.

I think this is a reasonably important bug because no error message is returned and the reliability and accuracy of data collection is reduced.

Example problem query to Zabbix Proxy:
ZBXD {"request":"sender data","clock":1399187198,"data":[

{"host":"14.1.2","clock":1399187198,"key":"temperature","value":23.345552}

]}

The query above succeeds but the example temperature value (23.345552) gets reduced to (23.000000) when observed in the database (the datatype in the database is definitely float).

Example solution:
ZBXD {"request":"sender data","clock":1399187198,"data":[

{"host":"14.1.2","clock":1399187198,"key":"temperature","value":"23.345552"}

]}

By quoting the floating value ("23.345552") it is received correctly by the Zabbix Proxy and no precision is lost.

The JSON format specifies the transmission of numbers including floats as not requiring quotes as below.
"A number can be represented as integer, real, or floating point. JSON does not support octal or hex because it is minimal. It does not have values for NaN or Infinity because it does not want to be tied to any particular internal representation. Numbers are not quoted." - http://www.json.org/fatfree.html

I have not tested the Zabbix Server or other versions of the Zabbix Proxy to see if this bug exists elsewhere.

Thanks for your time team. I hope I have provided enough information for this to be resolved.

Where do I send the beer?



 Comments   
Comment by Alexander Vladishev [ 2014 May 05 ]

I confirm the issue.

Comment by Nikolajs Agafonovs (Inactive) [ 2014 May 07 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-8172

P.S. You can send beer to our head office in Riga

Comment by Andris Zeila [ 2014 May 08 ]

(1) If we are adding floating point support, we should also rename 'int' to 'number' in corresponding json decoding functions/defines

wiper On the second thought - after fixing (2) this would not be an issue anymore. WONTFIX

Comment by Andris Zeila [ 2014 May 08 ]

(2) The incoming json has been already validated, so instead of having separate functions for string/int value parsing we could have one function that would parse value based on end 'separator' rather than the value contents.

nikolajs.agafonovs RESOLVED in r45226

wiper WONTFIX (see (3))

Comment by Andris Zeila [ 2014 May 19 ]

(3) As we already have function to parse json values while validating json (json_parse_value()), it would make sense to reuse it when calculating value size.

RESOLVED in r45628

asaveljevs Looks good, please review minor fixes in r45666, r45690 and r45695. RESOLVED.

wiper Thanks, CLOSED

Comment by Andris Zeila [ 2014 May 21 ]

Released in:
pre-2.3.0 r45704

Comment by Andris Zeila [ 2014 May 21 ]

(4) Broken string value escape sequence translation.

RESOLVED in development branch svn://svn.zabbix.com/branches/dev/ZBX-8172 r45716

asaveljevs CLOSED.

Comment by Andris Zeila [ 2014 May 22 ]

Released in:
pre-2.3.0 r45721

Comment by Andris Zeila [ 2014 May 29 ]

(5) Translation of json \uxxxx sequences is broken (crashes)

wiper RESOLVED in r45993

asaveljevs Looks good. CLOSED.

Comment by Andris Zeila [ 2014 May 30 ]

Released in:
pre-2.3.1 r45996

Comment by Alexander Vladishev [ 2014 Jun 03 ]

(6) Broken setting of is_null variable in zbx_json_decodevalue_dyn() function.

 switch (__zbx_json_type(p))
     case ZBX_JSON_TYPE_STRING:
     case ZBX_JSON_TYPE_INT:
-        if (NULL != is_null)
-            *is_null = 0;

wiper RESOLVED in r46156

sasha TESTED Please review my changes in r46174.

wiper Thanks, CLOSED

Comment by Andris Zeila [ 2014 Jun 04 ]

Released in:
pre-2.3.2 r46177

The commit above contained only changelog update. The fix was really merged in:

pre-2.3.2 r46403





[ZBX-8097] zabbix[proxy_history] not supported Created: 2014 Apr 16  Updated: 2017 May 30  Resolved: 2014 Nov 12

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Documentation (D)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: DKoshelev Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

There is internal check "zabbix[proxy_history] " in English documentation but not in Russian.
https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/internal
https://www.zabbix.com/documentation/ru/2.2/manual/config/items/itemtypes/internal
Is this internal check exists? What documentation page i shoud belive?



 Comments   
Comment by Alexander Vladishev [ 2014 Nov 12 ]

Translation into languages other than English is done by the community. Only English documentation is managed by Zabbix SIA.





[ZBX-8068] Proxies are queued up after upgrade to 2.2.3 Created: 2014 Apr 11  Updated: 2017 May 30  Resolved: 2014 Apr 13

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.2.3
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Duplicate Votes: 5
Labels: proxy, queue
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu Server 12.04, official Zabbix 2.2.3 packages


Attachments: PNG File 1.png     PNG File 2.png     PNG File 3.png     PNG File 4.png     PNG File proxy queue.png     PNG File queue items.PNG     PNG File screen-queue.PNG    
Issue Links:
Duplicate
duplicates ZBX-8035 Wrong next time query calculation (wr... Closed

 Description   

After upgrading to Zabbix 2.2.3 my proxy queue just exploded. There is practically no load on the machines at the time of writing.

Restarting the proxies did not help, neither did rebuilding the local proxy db (running sqlite3 proxies with the db files in tmpfs).
I've even rebooted the server and proxies to no avail.

I've moved all of my hosts over to my server, the queue is empty now.
Please also see https://www.zabbix.com/forum/showthread.php?p=148298#post148298



 Comments   
Comment by Raymond Kuiper [ 2014 Apr 11 ]

Upgrade was from 2.2.2 to 2.2.3 btw.

Comment by Aleksandrs Saveljevs [ 2014 Apr 11 ]

According to "Administration" -> "Queue", what type of items is queueing? Is it JMX or SNMP items?

Comment by Elvar [ 2014 Apr 11 ]


For the record, I saw this same behavior when upgrading from 2.0 to 2.2. Once I installed NTP on all zabbix proxies and the server the issue improved. Before installing NTP the time wasn't off by very much, but unless they were almost all identical the issue was very present. As for the item types, it seemed to be a mixture of snmpv3, snmpv2, and zabbix agents.

Comment by Andrei Gushchin (Inactive) [ 2014 Apr 11 ]

It seems this looks the same as ZBX-8035.

Comment by Filipe Paternot [ 2014 Apr 11 ]

I have the exact same issue. After upgrading all infrastructure from 2.2.2 to 2.2.3, the zabbix server queue started to build up. However, the zabbix proxy queue stood down, not mirroring the server behavior. That got me to conclude that it appears to be a bug in the zabbix server queue calculation.

I have done this by doing the following:
1) checked the bigger queue on zabbix_server (png with graph for before and after the upgrade)

2) The top two oldest itens on the Administration queue. (hostname censored)

3) The latest data for the two (hostname censored)

4) The value list for one of the referenced item (hostname censored)

Comment by Adam Kowalik [ 2014 Apr 11 ]

Same here (after upgrading from 2.2.2 do 2.2.3) - queue went to the roof without any other changes.
Yesterday it looked like this: http://pl.tinypic.com/r/5n43o5/8
No proxies, great deal of SNMP items (~120 host with 100-200 items), no noticeable load on server, just huge queue.

Comment by Raymond Kuiper [ 2014 Apr 12 ]

@Aleksandrs Saveljevs: 99% of my items are SNMP.

Comment by Tobias van Hoogen [ 2014 Apr 12 ]

Confirmed.

What I see is a huge improvement in performance on my proxies (specially the ones that do snmp mostly, which I think can be explained by the snmpbulk feature). However, the queue on the server is over 25K, while the queue's on the proxies seems fine. So, big queue - big issue.

Comment by Tobias van Hoogen [ 2014 Apr 12 ]

And indeed, seems very much snmp related.

Not sure what the reporter thinks, and the others hitting this issue - but we might want to consider raising this one to critical...

Comment by Raymond Kuiper [ 2014 Apr 13 ]

Could it possibly be related to the new snmp bulk support? Perhaps the grouping of items in bulk requests is causing a mismatch with how the queue is calculated?

Comment by Alexei Vladishev [ 2014 Apr 13 ]

Can anyone confirm that data collection is really delayed?

Comment by Michael [ 2014 Apr 13 ]

According to my investigations data collection is totally fine, it's only queue on server which is showing wrong. Queue on proxy according to self-monitoring is also calculated fine.

Comment by Alexander Vladishev [ 2014 Apr 13 ]

It is a duplicate of ZBX-8035. I close the issue.

Please move all discussions into initial issue.

Thank you!

Comment by Raymond Kuiper [ 2014 Apr 14 ]

Ok, just to be sure...the problem is purely a wrong way of calculating the queue and therefor showing the wrong values? There is no actual performance issue? If so, I'll offload monitoring to my proxies again and disable the triggers on the proxy queues.

Comment by Michael [ 2014 Apr 14 ]

That's exactly what I have done and it works fine. If you also see at zabbix-proxy internal monitoring, you will see that proxy itself reports correct queue depth values which differ from zabbix point of view.

Comment by Raymond Kuiper [ 2014 Apr 14 ]

Items in queue after re-enabling proxies.

Please see my attachment, Zabbix seems to register queue problems on the proxies themselves as well.
I'm not entirely sure the issue is actually a duplicate.

Please advise.

Comment by Oleksii Zagorskyi [ 2014 Apr 14 ]

qix, you could try to grab sources svn://localhost/branches/2.2, compile and try it as ZBX-8035 already merged.

Comment by Michael [ 2014 Apr 14 ]

Here is how it looks in my case:

Comment by Filipe Paternot [ 2014 Apr 14 ]

Mine looks a lot like Michaels, with about a dozen proxies..





[ZBX-8048] Proxy truncates executable script. Created: 2014 Apr 08  Updated: 2017 May 30  Resolved: 2014 Jun 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.0.9
Fix Version/s: 2.3.0

Type: Incident report Priority: Major
Reporter: Juris Miščenko (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: dbpatches, proxy, trivial
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The field length limit for 'Executable script' parameters of ssh, telnet and database monitoring items is set to 64kB on the server, but the proxy truncates this field to 2kB.



 Comments   
Comment by Juris Miščenko (Inactive) [ 2014 Apr 08 ]

Implemented in svn://svn.zabbix.com/branches/dev/ZBX-8048

Comment by Juris Miščenko (Inactive) [ 2014 Apr 08 ]

(1) Details regarding the size change and the issues with excessively large execute scripts should be documented accordingly.

jurism RESOLVED.

Comment by Alexander Vladishev [ 2014 May 19 ]

(2) Please review my changes in r45607.

jurism Changes reviewed. RESOLVED.

Comment by Juris Miščenko (Inactive) [ 2014 May 21 ]

Fix merged in 2.3.0 (trunk) r45693

Comment by Aleksandrs Saveljevs [ 2014 May 21 ]

(3) Unfortunately, I could not reproduce the behavior as mentioned in the documentation:

Although the 'Executed script' field is limited to 64kB in length, an excessively long script might cause the item to fail due to the unpredictable behavior of the receiving daemon. This affects the sending and receiving of the script data. Tests have shown that around the 4kB length scripts are relatively safe. Beyond that items become increasingly unstable to the point of being unusable. This is dependent on the daemon providing the service not Zabbix itself. Caution should be taken if the items are meant for providing consistent and reliable data.

I used the following script for a test:

echo 1
echo 2
echo 3
...
echo 2500

This is 23893 characters in length. It executes perfectly on SSH on Linux, FreeBSD 4.2, FreeBSD 7.3, FreeBSD 8.2 and Solaris 10. It also executes perfectly on Telnet on FreeBSD 4.2 and Solaris 10.

According to src/transport.c:774 in libssh2, there is indeed a limitation of around 32 kB on the maximum packet size, so it refuses to send more than that. However, I could not reproduce the behavior as described in the quote.

Could you please show examples of such unstable behavior over 4 kB?

jurism To reproduce this, I created an SSH agent item on a host and simply populated its executable script with the uname(1) command giving it the 'print all information' flag. A buffer to do this can simply be created with a quick python oneliner from the shell such as this:

python -c 's="uname -a;"; print 2**16 / 4 / len(s) * s'

. This will produce 16kB worth of data containing 1820 calls to uname(1). This caused various results, depending on the target sshd and operating system. For a more varied and error prone approach, repalce the `uname -a' call with a call to w(1). The size of this commands output depends on the count of active login records, so there's greater variety. Although, you can simply cut the `uname' one in half each time, as I did, to have a rough checkpoint every so often in the data size range.

These tests yield varied results on various sizes of data sent, but oftentimes, we either can't read the SSH reply, or the reading/writing is interrupted by a syscall (sigalarm timeout), or the inability to read the banner of the sshd service and experience other failures.

asaveljevs I have tried executing the sequence of "uname -a" produced by your Python script. It works perfectly on OpenBSD 3.9 and OpenBSD 5.4 (the new ones), but fails due to timeout after 3 seconds on FreeBSD 4.2 and NetBSD 5.0 (the old ones). This is expected, because the last two machines are much slower, and is not a strange behavior.

asaveljevs Please describe more test cases that I could try to see the strange behavior. REOPENED.

asaveljevs Based on what you showed me in the office, I understand that you throw a bunch of often-checked SSH items that stress the remote system so that it stops responding properly. However, this is expected and the same would happen with any server system. For instance, if you throw a bunch of items at a Zabbix agent that take a long time to process, it will also run out of listeners and will not respond for a period of time.

asaveljevs So my suggestion would be to either revert the documentation update that says that the problem only depends on the number of characters in the script, or prove that it is indeed true.

asaveljevs One thing that we could document, though, is that the size of the SSH script is limited by around 32 kB. The exact number has to be check in libssh2 sources, as noted above.

jurism Updated documentation to reflect the issue in a more generic way and note the 32kB data length limit of ssh executable scripts. RESOLVED.

sasha I suggest not to write specific restrictions of SSH library in our documentation since they can change.

  • it must be written as warning with exclamation mark
  • "ssh library" => "libssh2 library"
  • 32kB => around 32kB

And please remove: "Also, processing time intense scripts should be used with caution as response time limits apply and this should be accounted for. Increasing the Timeout parameter in the server and/or agent configuration might mitigate instability in the data being returned.".

We do not recommend to increase this parameter since it can decrease the server productivity

jurism Documentation updated. RESOLVED.

sasha REOPENED It should be removed for Telnet checks

jurism Documentation updated. RESOLVED.

sasha CLOSED





[ZBX-8033] Zabbix Server/Proxy can lost configuration cache Created: 2014 Apr 03  Updated: 2017 May 30  Resolved: 2014 Apr 07

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.0.11, 2.2.2
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-4675 server can send incomplete configurat... Closed

 Description   

If one of queries are failed while configuration update process, Zabbix server/proxy lost that type of configuration cache. For example, items configuration lost if the query failed:
select i.itemid,i.hostid,h.proxy_hostid,i.type,i.data_type,i.value_type,i.key_,i.snmp_community,i.snmp_oid,i.port,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.ipmi_sensor,i.delay,i.delay_flex,i.trapper_hosts,i.logtimefmt,i.params,i.state,i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.interfaceid,i.snmpv3_authprotocol,i.snmpv3_privprotocol,i.snmpv3_contextname,i.lastlogsize,i.mtime from items i,hosts h where i.hostid=h.hostid and h.status=0 and i.status=0



 Comments   
Comment by richlv [ 2014 Apr 03 ]

could this be the same as ZBX-4675 ?

Comment by Alexey Pustovalov [ 2014 Apr 07 ]

Closed as duplicate.





[ZBX-7990] proxy not marking agent as unavailable Created: 2014 Mar 27  Updated: 2017 May 30  Resolved: 2014 Apr 04

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.2.2
Fix Version/s: 2.2.4rc1, 2.3.0

Type: Incident report Priority: Major
Reporter: Andrew Howell Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: availability, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL 6.5


Attachments: PNG File proxy-poller.PNG     File zabbix_proxy.log.bz2    

 Description   

When we shutdown a host that is monitored by a proxy the proxy keeps on polling the agent and never marks it as unavailable.

This causes the poller node on the proxy to increase significantly. If more than one host is off sometimes the proxy's pollers get overloaded and we lose data.

Attached a debug 4 proxy log. The http://zabbix/chart2.php?graphid=23810&period=3600&stime=20160326142616&updateProfile=1&profileIdx=web.screens&profileIdx2=23810&sid=a5ac39ae33787e50&width=1776&curtime=1395905176900host that was offline is ldb019



 Comments   
Comment by Andrew Howell [ 2014 Mar 27 ]

Sorry, that should have said 'This causes the poller load on the proxy to increase significantly'

Also trying to drag a screenshot in messed up my final comment. I meant to say 'The agent that was offline was ldb019'

Comment by Alexander Vladishev [ 2014 Apr 04 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-7990

Comment by dimir [ 2014 Apr 07 ]

Successfully tested. Please review my small change in r44162.

sasha Thanks!

Comment by Alexander Vladishev [ 2014 Apr 08 ]

Fixed in pre-2.2.4 r44175 and pre-2.3.0 (trunk) r44176.





[ZBX-7968] The Zabbix server pretty much just stops importing data from proxies Created: 2014 Mar 19  Updated: 2017 May 30  Resolved: 2014 May 26

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.2.2
Fix Version/s: 2.2.4rc1, 2.3.0

Type: Incident report Priority: Major
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Fixed Votes: 3
Labels: patch, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 6.2 x64
Percona MySQL 5.6.15
24 DBSyncers


Attachments: PNG File Internal Processes.png     File ZBX-7968-update-lastid-2.2.2.patch     PNG File Zabbix_server_stats.png     PNG File zabbix_busy_procs.png     PNG File zabbix_busy_procs2.png     File zabbix_server.conf    
Issue Links:
Duplicate

 Description   

I've run into this issue a few times, but I've never been able to replicate it at will. Here's what appears to cause the issue:

1. My Zabbix proxies will suddenly start getting a massive backlog of data. I really do mean massive. I have 22 proxies and I've seen this issue occur when there are a total of 8+ million values backlogged between them all. This can be a result of various causes (lots of data sent in at once, server was offline for a while, etc.).
2. When #1 occurs, the zabbix server begins accepting all the data (as expected).
3. I can see all of my history syncers inserting data as fast as they can into the database (as expected).
4. After a while (variable time), the database load will suddenly disappear. At any given time I might see one insert query for the DBSyncers, by that's it.
5. After the load has disappeared, I can see that items that are polled/pushed to/from the zabbix server itself are updated.
6. At the same time as #5, I can see that barely any data is being retrieved from the Zabbix proxies at all. The backlog of data keeps growing larger and larger.
7. After waiting for a while without the problem going away, I'll give up and restart the zabbix_server process.
8. After restarting the zabbix_server process, the server immediately begins to process data like crazy from the proxies (like it should have been doing BEFORE the restart).

When this problem is occuring, the load on my database server is almost non-existant. It literally isn't doing anything. The same goes for the Zabbix server. There is nothing to indicate that the server is overly busy. The last time this happened (about 30 minutes ago), my monitoring on the various zabbix processes/caches didn't show anything odd. The history cache usage had grown quite a bit before #4 happened, but that was expected because so much data was coming in from my proxies. At no point did the free space for the history cache reach 0% (at least according to my graphs/data).

I have attached a copy of my zabbix_server.conf and a screenshot of the cache, data gathering processes, and internal processes usage. Notice that my history syncers were maxed out, but as I mentioned earlier, they were not doing anything on the DB itself. The DB server was idle.



 Comments   
Comment by Corey Shaw [ 2014 Mar 19 ]

I should have mentioned that the gap in data in the graphs is from when I restarted the zabbix_server process. Things began working normally after that (although you can see the recovery time after the gap).

Comment by richlv [ 2014 Mar 19 ]

in some cases a long config cache updating process has caused something similar - do you know now long does it take for the server to update/populate the config cache ?

Comment by Corey Shaw [ 2014 Mar 19 ]

richlv - It takes around 15-20 seconds to update the cache

Comment by Armacom AG [ 2014 May 05 ]

Using Zabbix V. 2.0.9 I experience the same behavior (Debian7, MySQL 5.5.31+dfsg-0+wheezy1, StartDBSyncers=8, 2 Nodes, 6 Proxies, 104.97 VPS, 6G RAM, 4x 3.5G CPU, CacheSize=64M, HistoryCacheSize=128M, TrendCacheSize=16M, HistoryTextCacheSize=256M, kernel.shmmax = 536870912, kernel.shmall = 2097152)

Comment by Armacom AG [ 2014 May 05 ]

zabbix processes

Comment by Armacom AG [ 2014 May 05 ]

another example of the zabbix busy processes while the problem happens

Comment by Armacom AG [ 2014 May 05 ]

this discussion sounds pretty like the same issue: https://www.zabbix.com/forum/showthread.php?t=43839

Comment by Armacom AG [ 2014 May 07 ]

For this issue, i've found a possible solution (which at least worked for me):
There is a performance gap using mysql and big databases like zabbix may produce.
Possibly this could be eliminated using mysql > 5.6 (you can configure MySQL so that each table, including its indexes, is stored as a separate file. In that way ibdata1 will not grow as large. This is enabled by default as of version 5.6 of MySQL).

To get arround the problem, this is what I did:

  • stop zabbix-processes
  • go to mysql (root account)
  • switch to the zabbix database
  • do a manual housekeeping:
    delete from alerts where clock<unix_timestamp() - 31*86400; delete from events where clock<unix_timestamp() - 31*86400; delete from history where clock < unix_timestamp() - 31*86400; delete from history_uint where clock < unix_timestamp() - 31*86400; delete from history_str where clock < unix_timestamp() - 31*86400; delete from history_text where clock < unix_timestamp() - 31*86400; delete from history_log where clock < unix_timestamp() - 31*86400; delete from trends where clock < unix_timestamp() - 31*86400; delete from trends_uint where clock < unix_timestamp() - 31*86400;
  • exit from mysql
  • start the zabbix-processes
  • restart zabbix proxy-process on your proxies

using this method, the contents of the tables listed above within the mysql-statement older than 31 days will be deleted.
afterwards zabbix will perform very well (like expected).

Comment by Corey Shaw [ 2014 May 07 ]

I know that MySQL 5.6 doesn't resolve the issue since I've been running Zabbix using MySQL 5.6 since the very start. I've also been using innodb_file_per_table which you allude to (that's been around at least since MySQL 5.0). Also, I don't keep more than 28 days worth of data in my database. I use partitioning to take care of that. I'm glad that the steps you took resolved the issue for you, but I don't feel that it is the actual "fix".

Comment by Corey Shaw [ 2014 May 07 ]

I should mention along with my previous comment that I have not seen this problem for a while now (it's been about 1.5 months).

Comment by Corey Shaw [ 2014 May 13 ]

I'm seeing this issue again now. This time however zabbix server restarts and zabbix proxy restarts don't help at all. My zabbix server didn't fill up its history cache either at all. I've been comparing debug logs from a healthy proxy (one that doesn't have the issue) and an unhealthy proxy (one that isn't sending historical data at all). I've been able to ascertain that the unhealthy proxy is sending availability data for hosts to the server. There is no problem connecting to the server at all. It does also get 1000 rows of data that should be sent to the server, it just never actually sends it. There are no errors in the logs anywhere.

My healthy proxy logs show the healthy proxy is sending data without any issues whatsoever. It has all the exact same type of log entries as the unhealthy proxy, it just also happens to send the data to the server (whereas the unhealthy proxy does not).

Comment by Corey Shaw [ 2014 May 13 ]

On closer inspection, it looks like no data is actually being returned by the proxy_get_history_data() function. On my unhealthy proxy I get a line like this:

End of proxy_get_history_data():0 lastid:1438673158

The interesting thing about it is that the query it runs to get the data is:

select id,itemid,clock,ns,timestamp,source,severity,value,logeventid,state from proxy_history where id>1438672158 order by id limit 1000

If I run that query manually in the proxy database, I get 1000 results as expected. In fact, notice in the "End of proxy_get_history_data" line that I provided above that the "lastid" found is 1000 higher than the id number in the select statement. To me, this means that the proxy is in fact finding data, it's just not doing anything with it.

Comment by Corey Shaw [ 2014 May 14 ]

Upon further inspection, most likely what is occurring is that DCconfig_get_items_by_itemids is setting errcodes[i] = FAIL for all 1000 items that should be sent to the server.

Comment by Corey Shaw [ 2014 May 14 ]

This if statement appears to be the cause of the FAIL in errcodes (dbconfig.c DCconfig_get_items_by_itemids()) => if (NULL == (dc_item = zbx_hashset_search(&config->items, &itemids[i])) || NULL == (dc_host = zbx_hashset_search(&config->hosts, &dc_item->hostid))).

I am unable to figure out why all of my items would get an errcode of FAIL. Two of my three proxies that had this issue have suddenly began working again without any intervention on my part (but they had issues for around 6 hours). The third proxy is also working, but I had just barely deleted a row from proxy_history in the database for an itemid that did not have a corresponding item in the items table on the proxy. It could be completely coincidental, but maybe not.

Comment by Corey Shaw [ 2014 May 14 ]

I've had a chance now to review my proxy logs and the audit log to see what potentially caused this problem to occur. The issue started for me at 9:02am PDT right when a large number of hosts were moved around between proxies. In fact, I have 9 proxies that all had hosts moved around on them. Just after that change was made, my problem started on three of the nine proxies that had changes. Six hours later at about 3:02pm PDT those same nine proxies all had another change where hosts were moved around between them. Just after that change was made the three proxies that had issues began working just fine again. The other six proxies continued working normally.

It appears there is some sort of corner case that I'm hitting when it comes to proxies receiving changes to their configuration. The next time I begin having issues with this, I'll pay close attention to the debug logs when a config sync happens that causes the problem and when the problem goes away. Unfortunately, I don't have any debug logs for either of those events this time around.

Comment by Corey Shaw [ 2014 May 20 ]

I have been experiencing this issue again since around 10:45 PDT on May 19. Again this issue occurred after a large number of hosts had been moved around on proxies.

Comment by Corey Shaw [ 2014 May 20 ]

I finally found what causes this issue. It appears that when hosts are moved around proxies there is the potential for old data to get "stuck" on proxies. When this happens, the proxy_history table will have data for items that the "items" table no longer has. I believe this causes the hashset searches that I mentioned in an earlier comment to constantly be looking at data for which there are no hashes, so no data ever gets sent. I worked around the issue in this case by deleting the old data from the proxy_history table. The instant I did that all the "stuck" data on my proxy began to be sent to the zabbix server.

I know this is fairly in-efficient for now, but here are the queries that I used to find the data and then delete it:

CREATE TABLE test SELECT DISTINCT itemid FROM proxy_history WHERE itemid NOT IN (SELECT itemid FROM items);
DELETE ph FROM proxy_history ph INNER JOIN test t ON t.itemid=ph.itemid;

Comment by Corey Shaw [ 2014 May 20 ]

If this particular problem works how I theorize it does, then pretty much anytime hosts are moved around proxies increases the risk of this issue occurring. I believe there is a failure on the part of the proxy to delete data from proxy_history for which it no longer has the items. I theorize that this failure is also perpetuated by the housekeeper not deleting this old data due to my ProxyOfflineBuffer being set to 24.

The reason data never ends up getting sent is a result of how the data sender process works (from what I know). It grabs the next 1000 values from the proxy_history table, parses through the data, and then sends it on to the server. In my case, the 1000 values that the data sender process grabbed were all old data. As a result, the proxy would not send it to the server, but the data was never deleted. That meant that all subsequent runs of the data sender process would keep grabbing the same 1000 values over and over - hence, no valid data could ever be sent to the server.

The other problem this methodology introduces is that while the the proxy grabs 1000 values at a time, if 250 of those are invalid items then the actual throughput of my proxy is 750 values per server connection. It just gets worse and worse as more invalid items end up in the list of 1000.

Comment by Corey Shaw [ 2014 May 20 ]

One last thought and I promise I'll shutup for at least one day . Would it be a possible solution to just make the "nextid" column in the "ids" table increment even if none of the items were able to be sent to the zabbix server (due to not being in the items table)? This would avoid this particular problem entirely and the invalid data would still get cleaned up by the housekeeper later on.

Comment by Corey Shaw [ 2014 May 21 ]

The attached patch potentially fixes this edge case that only occurs if there are 1000 contiguous values in proxy_history that are no longer valid items for the proxy.

Comment by Corey Shaw [ 2014 May 21 ]

I have had a chance to test the attached patch in my staging environment. I am unable to cause the issue with the patched code, but before patching I could cause the issue at will by simply adding 1000 bogus itemid history entries in the proxy_history table. It looks like this at least solves the issue. I'm not aware of any side-effects, but please let me know if this is a bad way to fix the issue.

Comment by Andris Zeila [ 2014 May 26 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-7968

Comment by Andris Zeila [ 2014 May 27 ]

Corey, Thanks for debugging the issue and providing patch!

Released in:
pre-2.2.4rc1 r45877
pre-2.3.1 r45878





[ZBX-7889] Processing events OK of triggers nodata() Created: 2014 Feb 28  Updated: 2017 Dec 05  Resolved: 2017 Dec 05

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.2.2
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: Alisson Ramos de Oliveira Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: nodata, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Server 2.2 on CentOS 64 bits.


Attachments: PNG File Events.png     PNG File Trigger.png    

 Description   

Scenario: Zabbix Proxy lost connection with Zabbix Server. One host monitored for this Proxy has one trigger with function nodata().

Problem: If trigger has changed to PROBLEM state and connection is restored, when the data of the item that have the trigger nodata() arrives, the OK state is recorded with timestamp of the collected clock, not the real time that the event came back to OK.

Attached the image of the state of Trigger and events related.



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Mar 01 ]

Would be more correct to create screenshots with English frontend.

Comment by Alisson Ramos de Oliveira [ 2014 Mar 03 ]

Now in english.

Comment by richlv [ 2014 Mar 16 ]

that seems to work as designed - we generate events based on collected data. if the data arrives with a delay, we do not recompute everything as id it just happened

Comment by Glebs Ivanovskis (Inactive) [ 2017 Dec 05 ]

Looks like it is "by design".

Closing as Won't Fix.





[ZBX-7825] Proxy doesn't save data in sequential time order Created: 2014 Feb 17  Updated: 2017 May 30  Resolved: 2014 Apr 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.10, 2.2.3rc1
Fix Version/s: 2.0.12rc1, 2.2.4rc1, 2.3.0

Type: Incident report Priority: Critical
Reporter: Andrei Gushchin (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 2
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-8008 Duplicate events Closed

 Description   

Proxy is down sometime.

After start it is received data from agents. Proxy saves data in not time order. Then data will be send to server not sorted.

It can be a reason of false time of alerting of triggers.



 Comments   
Comment by Anton Samets [ 2014 Feb 17 ]

+1, because right now I have a lot of triggers:
us2-xvc1-1 zabbix agent no data PROBLEM
cn4-slave-53 zabbix agent no data PROBLEM
cn0-vm-221 zabbix agent no data PROBLEM
us2-slave-91 zabbix agent no data PROBLEM

but they doesn't appear at zabbix dashboard, but notification is still in progress. Data in latest data is correct and clear, agents running good on all nodes.

Comment by Alexander Vladishev [ 2014 Apr 11 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-7825

Comment by Andris Zeila [ 2014 Apr 15 ]

Successfully tested

Comment by Alexander Vladishev [ 2014 Apr 15 ]

Fixed in pre-2.0.12 r44430, pre-2.2.4 r44431 and pre-2.3.0 (trunk) r44432.

Comment by Łukasz Jernaś [ 2014 Apr 28 ]

It seems that the problem still persists even when we upgraded the proxy to 2.0.12

Comment by Oleksii Zagorskyi [ 2014 Jun 16 ]

There was conclusion that it may also lead to strange alerting when hosts are taking out of maintenance.





[ZBX-7731] One child process died (PID:36456,exitcode/signal:11). Exiting ...Maybe Duplicate of ZBX-4726 Created: 2014 Jan 30  Updated: 2017 May 30  Resolved: 2014 Jan 31

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.2.1
Fix Version/s: None

Type: Incident report Priority: Blocker
Reporter: Wolfgang Alper Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Proxy 32Bit on 64Bit Scientific Linux using 64Bit Mysql DB. Installe 32Bit Oracle client libs for external Database monitoring.
Note: Need to use 32Bit Proxy due to 32Bit OracleDB Client components.


Attachments: Text File crash0.txt     Text File crash1.txt    
Issue Links:
Duplicate
duplicates ZBX-7729 Crash zabbix server on solaris 10 aft... Closed
duplicates ZBX-7665 Zabbix 2.2.1 ODBC monitor crash - in ... Closed

 Description   

Multiple Crashlogs that look similar are available. No real load on proxy.
It seems this is similar to ZBX-4726 from Version 1.8 in 2012

36453:20140122:152706.117 Received configuration data from server. Datalen 57230
36453:20140122:152706.119 [Z3005] query failed: [2006] MySQL server has gone away [begin;]
36456:20140122:152707.413 Got signal [signal:11(SIGSEGV),reason:1,refaddr:0x3c]. Crashing ...
...
...
36451:20140122:152707.432 One child process died (PID:36456,exitcode/signal:11). Exiting ...
36451:20140122:152709.434 syncing history data...
36451:20140122:152709.436 syncing history data done
36451:20140122:152709.436 Zabbix Proxy stopped. Zabbix 2.2.1 (revision 40808).



 Comments   
Comment by Wolfgang Alper [ 2014 Jan 30 ]

Added crashlog for test with Version 2.2.2RC1 crash1.txt

Comment by Oleksii Zagorskyi [ 2014 Jan 31 ]

Backtrace from attachments:

 36456:20140122:152707.416 === Backtrace: ===
 36456:20140122:152707.419 19: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](print_fatal_info+0x454) [0x80a9d84]
 36456:20140122:152707.419 18: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values]() [0x80aa5a0]
 36456:20140122:152707.419 17: [0x5b1410]
 36456:20140122:152707.419 16: /opt/u01/app/oracle/product/11.2.0/client/lib/libclntsh.so.11.1(kpuhhaloc+0x334) [0x1307212]
 36456:20140122:152707.419 15: /opt/u01/app/oracle/product/11.2.0/client/lib/libclntsh.so.11.1(kpughndl0+0x214) [0x1349986]
 36456:20140122:152707.419 14: /opt/u01/app/oracle/product/11.2.0/client/lib/libclntsh.so.11.1(OCIHandleAlloc+0x38) [0x1324ec8]
 36456:20140122:152707.419 13: /opt/u01/app/oracle/product/11.2.0/client/lib/libsqora.so.11.1(bcoSQLAllocEnv+0xe2) [0x4ccde5e]
 36456:20140122:152707.419 12: /opt/u01/app/oracle/product/11.2.0/client/lib/libsqora.so.11.1(+0x61c77) [0x4d1cc77]
 36456:20140122:152707.419 11: /opt/u01/app/oracle/product/11.2.0/client/lib/libsqora.so.11.1(SQLAllocHandle+0x33) [0x4d1ce29]
 36456:20140122:152707.419 10: /usr/lib/libodbc.so.2(+0xda83) [0xd36a83]
 36456:20140122:152707.419 9: /usr/lib/libodbc.so.2(SQLConnect+0x186) [0xd37ae6]
 36456:20140122:152707.419 8: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](odbc_DBconnect+0x182) [0x80d4d32]
 36456:20140122:152707.419 7: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](get_value_db+0xd0) [0x806d9d0]
 36456:20140122:152707.419 6: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values]() [0x8066d04]
 36456:20140122:152707.419 5: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](main_poller_loop+0xa8) [0x80673e8]
 36456:20140122:152707.419 4: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](MAIN_ZABBIX_ENTRY+0x713) [0x8057223]
 36456:20140122:152707.419 3: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](daemon_start+0x1e0) [0x80a8ed0]
 36456:20140122:152707.419 2: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values](main+0x30d) [0x80579ed]
 36456:20140122:152707.419 1: /lib/libc.so.6(__libc_start_main+0xe6) [0x931ce6]
 36456:20140122:152707.419 0: zabbix_proxy: poller #1 [got 1 values in 0.000550 sec, getting values]() [0x8056371]
...
 36451:20140122:152709.436 Zabbix Proxy stopped. Zabbix 2.2.1 (revision 40808).
 54534:20140122:153658.369 proxy #5 started [poller #2]
...
 54534:20140122:153700.418 === Backtrace: ===
 54534:20140122:153700.420 19: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](print_fatal_info+0x454) [0x80ab2b4]
 54534:20140122:153700.420 18: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values]() [0x80abad0]
 54534:20140122:153700.420 17: [0xd0c410]
 54534:20140122:153700.420 16: /opt/u01/app/oracle/product/11.2.0/client/lib/libclntsh.so.11.1(kpuhhaloc+0x334) [0x4129212]
 54534:20140122:153700.420 15: /opt/u01/app/oracle/product/11.2.0/client/lib/libclntsh.so.11.1(kpughndl0+0x214) [0x416b986]
 54534:20140122:153700.420 14: /opt/u01/app/oracle/product/11.2.0/client/lib/libclntsh.so.11.1(OCIHandleAlloc+0x38) [0x4146ec8]
 54534:20140122:153700.420 13: /opt/u01/app/oracle/product/11.2.0/client/lib/libsqora.so.11.1(bcoSQLAllocEnv+0xe2) [0x602fe5e]
 54534:20140122:153700.420 12: /opt/u01/app/oracle/product/11.2.0/client/lib/libsqora.so.11.1(+0x61c77) [0x607ec77]
 54534:20140122:153700.421 11: /opt/u01/app/oracle/product/11.2.0/client/lib/libsqora.so.11.1(SQLAllocHandle+0x33) [0x607ee29]
 54534:20140122:153700.421 10: /usr/lib/libodbc.so.2(+0xda83) [0x389a83]
 54534:20140122:153700.421 9: /usr/lib/libodbc.so.2(SQLConnect+0x186) [0x38aae6]
 54534:20140122:153700.421 8: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](odbc_DBconnect+0x182) [0x80d5de2]
 54534:20140122:153700.421 7: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](get_value_db+0xd0) [0x806dda0]
 54534:20140122:153700.421 6: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values]() [0x80670cc]
 54534:20140122:153700.421 5: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](main_poller_loop+0xa8) [0x80677b8]
 54534:20140122:153700.421 4: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](MAIN_ZABBIX_ENTRY+0x713) [0x8057493]
 54534:20140122:153700.421 3: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](daemon_start+0x1e0) [0x80aa400]
 54534:20140122:153700.421 2: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values](main+0x30d) [0x8057c5d]
 54534:20140122:153700.421 1: /lib/libc.so.6(__libc_start_main+0xe6) [0x5d9ce6]
 54534:20140122:153700.421 0: zabbix_proxy: poller #2 [got 0 values in 0.000007 sec, getting values]() [0x8056561]
...
 54528:20140122:153702.443 Zabbix Proxy stopped. Zabbix 2.2.2rc1 (revision 41561).

In second backtrace we can see it's in poller.
It's very similar to ZBX-7665.

Let's close it as duplicate.
Feel free to reopen if you are not agree.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Jun 30 ]

Maybe this information helps someone. Looks like we have same symptoms here: unixODBC 2.3.x (libodbc.so.2 from memory map in attached logs), Oracle 11.2 ODBC driver (libsqora.so.11.1), 64 bit system...





[ZBX-7702] Zabbix disaster recovery can be a disaster in environments with high NVPS Created: 2014 Jan 24  Updated: 2021 Apr 23

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 2.0.9
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: hiload, nvps, proxy, recovery
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 6.2 x64
PHP 5.2.17
MySQL 5.6.12
Database Storage: 4TB LUN on SAN with SSDs
32 History Syncers



 Description   

In environments that have a very high NVPS (3500+), disaster recovery can be very difficult with the current way that Proxies send data to Zabbix. I recently had a situation where my Zabbix DB went offline for a long period of time (about 2 hours). During that time, the proxies cached data as they should. The real Zabbix problem came when my database came back online:

1. I have 19 proxies. During the time that Zabbix was down 12 of those proxies had each cached roughly 1.5 million values. The remaining 7 proxies all had somewhere around 500k values. The total number of values was in the neighborhood of 21.5 million.
2. When the database came back online, the Zabbix Server connected to it just fine and started acting normally.
3. When the proxies realized they could send their data, they all started sending it as fast as they possibly could (1000 values at a time).
4. The server couldn't handle the huge amount of data coming in from the proxies. The history cache filled up and all the history synchers became busy.
5. Once #4 occurred, the overall NVPS of the system fell below normal levels. Usually it was about 3500-4000 on average. It fell to below 2000 NVPS.
6. I waited a good 30 minutes or so to see if Zabbix could recover, but the proxies kept pounding the server. It became so bad that all of my proxies started collecting data faster than they could send it.
7. Because of #6, there was no way that Zabbix could possibly ever recover on its own. I was left with two options: Truncate history on the proxies (wasn't an option I could take) or shut off most of the proxies to give the remaining ones an actual chance to send their data. I ended up going with the latter (because I couldn't do the former).
8. As proxies finished sending in their data, I would start up 2 more and let them catch up. I followed that procedure until all my proxies were caught up. The whole catch up process took about 2 hours.
9. Because of Zabbix's lack of ability to control a large influx of data, I had several thousand hosts that weren't being monitored during the whole catch-up period. That's unacceptable.

I can understand a large quanitity of data taking time to come into the Zabbix server, but at the very least Zabbix should have the intelligence to control that flow of data. If the Proxy and Server daemons were able to communicate with one another to pass health statistics on the server, then the server could notify a proxy to slow down on the amount of data it is sending in or speed up if it could handle more. Maybe even cut off the flow of data from proxies until the history cache reached a certain amount of space free or something.

In this case, the DB was not a bottleneck. As usual in my system, disk IO was normal, CPU was fine and memory was fine. The zabbix server just starts freaking out when it gets too much data and it doesn't know how to handle it (and can't communicate its problems to the source of the data).

To be fair, my load testing for Zabbix 2.0.x showed that it can only realiably handle about 12,500 NVPS, but at the same time, this was a disaster recovery situation, not normal operation. In this case, I had no way of controlling the flow of data other than shutting off proxies.

By the way, my Zabbix 2.2.x load testing showed that it could reliably handle about 30,000 NVPS, but the same problem will still occur in a distaster recovery situation.



 Comments   
Comment by Florian Koch [ 2014 Jan 25 ]

Hi,

we see the exactly same behaviour with 2200 NVPS and 15 Proxy Servers
to make things worse , use LLD ,but this will be fixed with ZBX-7109

regards flo

Comment by richlv [ 2014 Jan 27 ]

as suggested by sasha, one potential reason might be generation of a large amount of events (nodata() and others), which would lead to a large amount of updates + locks on the ids table, which would slow down history syncers. this specific reason should be solved in 2.2.

is there any chance to test this scenario in your development environment with 2.2 ?

Comment by Corey Shaw [ 2014 Jan 27 ]

I won't be able to get this kind of test done in our development environment, but we do plan on getting 2.2 into production within the next 2-3 weeks. I'll be sure to give it a shot in production at that point with 2.2

Comment by Corey Shaw [ 2014 May 14 ]

I've found that the only way to avoid this situation is to set my history cache size to as large as it can go (currently 2GB in Zabbix 2.2.2). As long as my history cache does not fill up 100% this issue will not occur. This is not a "fix", but it is a workaround that will only help until my environment gets large enough that 2GB of history cache doesn't last very long.

Comment by Oleksii Zagorskyi [ 2016 Nov 22 ]

There were changes in ZBXNEXT-1804 which could cause described scenario to be even more worse ....
ZBXNEXT-3566 asks to have ability to "control" it, at least partially.

Comment by Alexei Vladishev [ 2021 Apr 23 ]

I do not believe it is longer the case in the latest Zabbix releases. Compression helps to send data much faster even with high latency links. Also Zabbix 5.4 features graceful processing (protection from overloading) of data coming from proxies.





[ZBX-7220] Proxies will delete historical information for old hosts before sending it Created: 2013 Oct 25  Updated: 2017 May 30  Resolved: 2016 Jul 27

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.9
Fix Version/s: None

Type: Problem report Priority: Minor
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Won't fix Votes: 1
Labels: history, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I run into a problem quite often where I need to re-arrange which hosts are monitored by proxies in my environment. Here's my scenario:

1. At times a Zabbix Proxy will go offline for some reason (Proxy "A") (network/hardware issues/etc.)
2. Proxy A will have data that it wasn't able to send before it went down.
3. While Proxy A is down, I change the hosts that were monitored by it to be monitored by a different proxy (Proxy B).
4. Proxy A comes back online within 30 minutes and syncs it's configuration with the Zabbix Server.
5. Proxy A sees that it is no longer configured to monitor the hosts it had before and deletes all historical data related to them.

In this particular case, I want Proxy A to still send the information it had collected BEFORE the configuration was changed. That way I don't lose data for hosts simply because I wanted to continue monitoring them from somewhere else.

I am not referring to cases where data is older than the cache time allows.



 Comments   
Comment by richlv [ 2014 May 22 ]

as discussed today, this would be quite a problem - data would come in non-sequential order, trigger evaluation and event generation would be broken. as such, i don't see any easy solution/change regarding this.

Comment by Oleksii Zagorskyi [ 2015 Sep 18 ]

You ask for something logically impossible, IMO.

How server can accept history data from the proxy A if at this moment these data hosts being monitored by proxy B?
It's disallowed on server side.
You would need to change the hosts to be monitored back to proxy A before it will get back online.

This report cannot be classified as any bug, i'd even close it as won't fix.





[ZBX-7217] It's possible to create a passive proxy with macros in the interface Created: 2013 Oct 25  Updated: 2019 Dec 10

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 2.1.9
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, macros, proxy, validation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Validation must prevent that.






[ZBX-7192] Hosts monitored by proxies do not generate corresponding internal events when becoming unavailable Created: 2013 Oct 23  Updated: 2019 Sep 25  Resolved: 2019 Sep 25

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.1.9
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Andris Zeila Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: internalevents, proxy, unavailable
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

When server receives host availability data it updates database and configuration cache, but does not set its triggers to unknown or generate corresponding internal events.






[ZBX-7110] Broken database migration Created: 2013 Oct 07  Updated: 2017 May 30  Resolved: 2013 Oct 11

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 1.8.17, 2.0.8
Fix Version/s: None

Type: Incident report Priority: Blocker
Reporter: Marc Schoechlin Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: proxy, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File zabbix_1.8.17_fresh_install.sql     File zabbix_1.8_after_2.0.8_upgrade.sql     File zabbix_2.0.8_fresh_install.sql    

 Description   

While performing a zabbix upgrade from 1.8.17 to 2.0.8 i got the following

I analyzed the db-schemas.
(see uploaded files, created by "mysqldump --no-data -R zabbix_t")

1.) Created a fresh 1.8.17 schema (zabbix_1.8.17_fresh_install.sql)
2.) Executed the 2.0.8 migration scripts on the fresh 1.8.17 (zabbix_1.8_after_2.0.8_upgrade.sql)
3.) Created a fresh 2.0.8 schema (zabbix_2.0.8_fresh_install.sql)

As you can see in the diff, there are differences:

--- zabbix_1.8_after_2.0.8_upgrade.sql	2013-10-07 13:20:04.569343388 +0200
+++ zabbix_2.0.8_fresh_install.sql	2013-10-07 13:27:03.161351793 +0200
@@ -254,7 +254,7 @@
   `ok_unack_style` int(11) NOT NULL DEFAULT '1',
   `ok_ack_style` int(11) NOT NULL DEFAULT '1',
   `snmptrap_logging` int(11) NOT NULL DEFAULT '1',
-  `server_check_interval` int(11) NOT NULL DEFAULT '60',
+  `server_check_interval` int(11) NOT NULL DEFAULT '10',
   PRIMARY KEY (`configid`),
   KEY `c_config_1` (`alert_usrgrpid`),
   KEY `c_config_2` (`discovery_groupid`),
@@ -2399,4 +2399,4 @@
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 
--- Dump completed on 2013-10-07 13:05:54
+-- Dump completed on 2013-10-07 13:09:08


 Comments   
Comment by richlv [ 2013 Oct 07 ]

this is a known issue and 2.2 upgrade procedure solves it. probably won't be changed in 2.0

Comment by Alexei Vladishev [ 2013 Oct 11 ]

It was fixed in 2.2 upgrade patches, we won't fix it in 2.0. The issue does not affect anything.





[ZBX-6959] Package zabbix-proxy-mysql from official Zabbix Debian-Repo removes installed MariaDB Server Created: 2013 Sep 05  Updated: 2017 May 30  Resolved: 2013 Dec 12

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Installation (I)
Affects Version/s: 2.0.8
Fix Version/s: 1.8.18rc1

Type: Incident report Priority: Major
Reporter: Stephan A. Klein Assignee: Kodai Terashima
Resolution: Won't fix Votes: 0
Labels: database, packaging, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian Wheezy 64bit, MariaDB 5.5.x


Issue Links:
Duplicate
is duplicated by ZBX-10437 Zabbix server 2.4.7 and MySQL 5.7 - p... Closed

 Description   

Installing Zabbix-Proxy (MySQL) from the official Zabbix Debian-Repositry removes an installed MariaDB Server and substitutes it with MySQL-Server.

Packet dependencies should take care of MariaDB as a substitute for Mysql.



 Comments   
Comment by Kodai Terashima [ 2013 Oct 02 ]

I added mariadb-client to dependency in 1.8.17-2, 2.0.8-2 packages.

Comment by Stephan A. Klein [ 2013 Nov 09 ]

Just tried 2.0.9 from the official repo. The package is still trying to remove MariaDB:

root@server04:/compile# apt-get install zabbix-proxy-mysql
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
libiodbc2 mysql-client-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5
Vorgeschlagene Pakete:
libterm-readkey-perl tinyca
Die folgenden Pakete werden ENTFERNT:
mariadb-client-5.5 mariadb-client-core-5.5 mariadb-server-5.5 mariadb-server-core-5.5
Die folgenden NEUEN Pakete werden installiert:
libiodbc2 mysql-client-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5 zabbix-proxy-mysql
0 aktualisiert, 6 neu installiert, 4 zu entfernen und 0 nicht aktualisiert.
Es müssen 8.350 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 15,1 MB Plattenplatz freigegeben.
Möchten Sie fortfahren [J/n]? n
Abbruch.

Comment by Kodai Terashima [ 2013 Dec 07 ]

Please try --no-install-recommends option for apt-get

$ sudo apt-get install --no-install-recommends zabbix-proxy-mysql
Comment by Kodai Terashima [ 2013 Dec 12 ]

I checked the dependencies of mysql and mariadb packages.

"mysql-client" meta package has a dependency with mysql-client-5.5 or mariadb-client-5.5. The package tries to install mysql-client-5.5 without --no-install-recommends option.

So adding mariadb-client dependency is not solve this matter. I will remove the dependency.





[ZBX-6820] Unable to stop zabbix_proxy process Created: 2013 Jul 24  Updated: 2017 May 30  Resolved: 2013 Jul 25

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.6
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: makeijan Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: debian, packaging, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian Wheezy amd64



 Description   

Since there's no default PidFile at the default zabbix_proxy.conf file, service zabbix-proxy stop always returns "[FAIL] zabbix_proxy is not running ... failed!"
In order to main some consistence among package this line should be added to zabbix_proxy.conf ### Option: Pid File

PidFile=/var/run/zabbix/zabbix_proxy.pid



 Comments   
Comment by richlv [ 2013 Jul 24 ]

actually, it should use the default, same as when starting

how did you install zabbix ? if from packages, where do the packages come from ?

Comment by makeijan [ 2013 Jul 24 ]

I've missed some info sorry.
Package affected is zabbix-proxy-sqlite3 installed from official debian wheezy-backports via apt-get

In zabbix-agentd.conf there's an extra line which overwrites PidFile:
PidFile=/var/run/zabbix/zabbix_proxy.pid
Since agent init script looks for PID file at /var/run/zabbix everything works fine.

In the other hand, zabbix_proxy.conf doesn't have an extra line so as you assumed it should create pid file at default path /tmp. That would be ok if zabbix-proxy init script would be updated to this path.
Since this is not the case, init script is rendered useless.

So there are two options. Changing init script, or adding additional line to default conf file in order to have a working init script out of the box.

Comment by richlv [ 2013 Jul 25 ]

ah. sorry, we do not maintain those packages - could you please report it to debian maintainers ? thanks





[ZBX-6801] Proxy hosts availability data was not correctly updated on server side cache Created: 2013 Jul 17  Updated: 2022 Oct 08  Resolved: 2013 Jul 17

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.0.6, 2.1.0
Fix Version/s: 2.0.7rc1, 2.1.1

Type: Incident report Priority: Blocker
Reporter: Alexander Vladishev Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: availability, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Zabbix proxy sends availability data to the server. It is a JSON object like:

{
"data":[

{ "hostid":10101, "available":1, "snmp_available":0 }

,

{ "hostid":10104, "jmx_available":1 }

]
}

The server updates availability in configuration cache only for the last host in JSON object, i.e. for host 10104.

Related issue: ZBX-4991



 Comments   
Comment by Andris Zeila [ 2013 Jul 17 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6801

Comment by Alexander Vladishev [ 2013 Jul 18 ]

Successfully tested! Please review my changes in r37092.

wiper reviewed, thanks.

Comment by Andris Zeila [ 2013 Jul 18 ]

Released in:
pre-2.0.7rc1 r37097
pre-2.1.1 r37098





[ZBX-6771] Proxy Frontend/API - difference logic Created: 2013 Jul 04  Updated: 2017 May 30  Resolved: 2013 Jul 12

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A), Frontend (F)
Affects Version/s: 2.1.0
Fix Version/s: 2.1.1

Type: Incident report Priority: Minor
Reporter: Oleg Egorov (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File proxy_frontend.JPG    
Issue Links:
Duplicate
duplicates ZBX-3783 Proper API validation Reopened
is duplicated by ZBX-6066 proxy.create can create hosts with em... Closed

 Description   

In Frontend proxy host is gray if it was selected before in other proxy, and it impossible select again

But in API it is possible.

API logic is incorrect.

Should be added validation and error message in API



 Comments   
Comment by Ivo Kurzemnieks [ 2013 Jul 04 ]

There is another bug regarding proxies API:

  • adding proxy without status, API creates a host without name and without interfase;
  • also possible to add negative status, which is wrong.

There should be a validation for "status" field.

<richlv> i'd go as far as saying that api validation overall is a huge mess... for example, see (3), (5) and (6) in ZBX-3783, as well as other issues linked from it - and that's just a minor thing, given how messy it is, nobody has even tried to find more cases...

Comment by Ivo Kurzemnieks [ 2013 Jul 05 ]

RESOLVED in svn://svn.zabbix.com/branches/dev/ZBX-6771

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 08 ]

(1) Cannot update proxy without passing status.

iivs
Changed back "status" field to optional, but added the required validation.

RESOLVED in r36795

Eduards REOPEN, In discussion with Pavel decided not to set ACTIVE value for status by default. So, logic must be follow:

  • In create "status" is mandatory
  • In update optional
  • Status field can contain 5 or 6, all others values is invalid. Validation message can be 'Incorrect value used for Proxy status "%s".'

iivs RESOLVED in r36877

Eduards REOPEN

  • If status = "0" or "" validation message is _('No status for proxy.') but must be _s('Incorrect value used for proxy status "%1$s".', $proxy['status'])). In this code better to use !isset
    if (empty($proxy['status'])) {
        self::exception(ZBX_API_ERROR_PARAMETERS, _('No status for proxy.'));
    }
    
  • Also if status empty in update we write it in $proxy array - this is bad because this field will be updated. In this event better to use common variable.

iivs RESOLVED in r36895
Eduards REOPEN, In update, If status is given we must take it, otherwise read from db. This code:

$status = $dbProxies[$proxy['proxyid']]['status'];

can be replaced on:

$status = isset($proxy['status']) ? $proxy['status'] : $dbProxies[$proxy['proxyid']]['status'];

iivs RESOLVED in r36904
Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 08 ]

(2.1) Proxy.php:261 can raise undefined index. If switch off API error handler we will see message:
Notice: Undefined index: hosts in /home/zabbix/www/testing-ZBX-6771/frontends/php/api/classes/CProxy.php on line 261
(2.2) camelCase must be used for $hostids

iivs
Added minor validation.

RESOLVED in r36795

Eduards REOPEN Double check on $proxy['hosts'] is redundant. In current situation with !empty($proxy['hosts']) will be enough

if (isset($proxy['hosts']) && !empty($proxy['hosts'])) {}

iivs RESOLVED in r36877
Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 08 ]

(3) This check must be before foreach loop

if (empty($hosts)) {
    self::exception(ZBX_API_ERROR_PARAMETERS,
        _('No permissions to referred object or it does not exist!'));
}

iivs RESOLVED in r36795
Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 08 ]

(4) Also we can raise exception if we found invalid host at 279 line (in place of simple unset and ignoring)

iivs
Exception added.

RESOLVED in r36795

Eduards REOPEN Validation is fine, but incorrect validation message. If we have only ID message must be 'No permissions to referred object or it does not exist!' which will be good in this situation.

iivs RESOLVED in r36877
Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 08 ]

(5) Cannot update hosts for proxy: Cannot add host "Eduard". Host must be unlinked first.

iivs
Updating should now work properly.

RESOLVED in r36795

Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 08 ]

(6) $proxy['hosts'] already is array of ids. Additionally, if call proxy.create or proxy.update directly from API this array will be without "preserved keys".

$hostids = array_keys($proxy['hosts']);

iivs
$proxy['hosts'] was actually a two dimensional array. Changed to different function to pass host IDs correctly.

RESOLVED in r36795

Eduards REOPEN, No this also is redundant, because in $proxy['hosts'] we always have only IDS and additional zbx_objectValues() is not require.

$hostIds = zbx_objectValues($proxy['hosts'], 'hostid');

iivs
Function is redundant for frontend, but is required by API. After discussion, decided to leave this function.
Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 11 ]

(7) Ones more old bug, but will be good to fix. Only super admin can create/update/delete Proxy. So we can make this validation on top of process!

if (self::$userData['type'] != USER_TYPE_SUPER_ADMIN) {
    self::exception(ZBX_API_ERROR_PERMISSIONS, _('No permissions to referred object or it does not exist!'));
}

iivs RESOLVED in r36895
Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 11 ]

Tested! And be careful with conflict merging

Comment by Ivo Kurzemnieks [ 2013 Jul 11 ]

Fixed in pre-2.1.1 (trunk) r36909

Comment by Ivo Kurzemnieks [ 2013 Jul 11 ]

After discussion, we decided to change back to previous state and remove linked host validation. Checking of host exists, remains and "status" field validation also remains.

Fixed in pre-2.1.1 (trunk) r36917





[ZBX-6696] failed to update local proxy configuration copy: database erro Created: 2013 Jun 12  Updated: 2017 May 30  Resolved: 2013 Jun 12

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.6
Fix Version/s: None

Type: Incident report Priority: Critical
Reporter: Sergey D. Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: appliance, configuration, proxy, synchronization
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

problem appears when we change host templates or add new hosts

this is part of the proxy log

   355:20130612:121907.675 Received configuration data from server. Datalen 24521
   355:20130612:121907.791 [Z3005] query failed: [1451] Cannot delete or update a parent row: a foreign key constraint fails (`zabbix);
delete from dchecks where dcheckid=2;
delete from drules where druleid=2;
delete from interface where interfaceid=1;
delete from hosts where (hostid between 10065 and 10079 or hostid in (10047,10056,10060,10081,10082,10083,10084));
]
   355:20130612:121907.791 failed to update local proxy configuration copy: database error                                           

Proxy:

[root@ip-243-11-440-17 ~]# zabbix_proxy --version
Zabbix proxy v2.0.6 (revision 35158) (22 April 2013)
Compilation time: May 7 2013 21:39:09

Server:
Zabbix 2.0 Appliance

Zabbix 2.0.6

Database structure were imported in order as you instructed

currently zabbix is our pilot installation, we're trying to see how that will work for us
mentioned problem is being solved by dropping database and creating empty one each time we change configuration



 Comments   
Comment by richlv [ 2013 Jun 12 ]

please see the second warning in https://www.zabbix.com/documentation/2.0/manual/appendix/install/db_scripts





[ZBX-6630] Host status is not actual on proxy side because of configuration syncer process Created: 2013 May 27  Updated: 2022 Oct 08  Resolved: 2013 Jul 05

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.7rc1, 2.1.0
Fix Version/s: 2.0.7rc1, 2.1.0

Type: Incident report Priority: Major
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: performance, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

MySQL with locktimeout 50 seconds (default)


Attachments: Text File ZBX-6630.log     PNG File blocked connections.png     File proxy.c.gz    
Issue Links:
Duplicate

 Description   

On heavy proxy (about 2000nvps), we block hosts table for long time. While this time unreachable poller and pollers can not update host status. So we should update only changed configration rows instead of all rows.



 Comments   
Comment by Andris Mednis [ 2013 Jun 28 ]

Available in the development branch svn://svn.zabbix.com/branches/dev/ZBX-6630.

Comment by Alexey Pustovalov [ 2013 Jun 28 ]

(1) proxy died because of null value in port column for Trapper item:

 26463:20130628:201123.574 Number of cell 26 []
 26463:20130628:201123.574 Number of cell 27 [(null)]
 26463:20130628:201123.574 Got signal [signal:11(SIGSEGV),reason:1,refaddr:(nil)]. Crashing ...
 26463:20130628:201123.574 ====== Fatal information: ======
 26463:20130628:201123.574 Program counter: 0x7fb720446d5f
 26463:20130628:201123.574 === Registers: ===
 26463:20130628:201123.574 r8      =                0 =                    0 =                    0
 26463:20130628:201123.574 r9      =     7fb7206a2ed0 =      140424499572432 =      140424499572432
 26463:20130628:201123.574 r10     =     7fb7206a2ed0 =      140424499572432 =      140424499572432
 26463:20130628:201123.574 r11     =              206 =                  518 =                  518
 26463:20130628:201123.574 r12     =     7fff879eac88 =      140735468711048 =      140735468711048
 26463:20130628:201123.574 r13     =                0 =                    0 =                    0
 26463:20130628:201123.574 r14     =     7fff879eac88 =      140735468711048 =      140735468711048
 26463:20130628:201123.574 r15     =     7fff879eac90 =      140735468711056 =      140735468711056
 26463:20130628:201123.574 rdi     =                0 =                    0 =                    0
 26463:20130628:201123.574 rsi     =     7fff879eac90 =      140735468711056 =      140735468711056
 26463:20130628:201123.574 rbp     =     7fff879eac90 =      140735468711056 =      140735468711056
 26463:20130628:201123.574 rbx     =     7fff879eacb8 =      140735468711096 =      140735468711096
 26463:20130628:201123.574 rdx     =     7fff879eac88 =      140735468711048 =      140735468711048
 26463:20130628:201123.574 rax     =                0 =                    0 =                    0
 26463:20130628:201123.574 rcx     =                0 =                    0 =                    0
sqlite> select itemid,type,snmp_community,snmp_oid,hostid,key_,delay,status,value_type,trapper_hosts,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,formula,logtimefmt,delay_flex,params,ipmi_sensor,data_type,authtype,username,password,publickey,privatekey,flags,filter,interfaceid,port from items where itemid in (7048852,6746840);
6746840|3|||45319|icmppingloss[{HOSTNAME},10,,32,600]|120|0|3|||0|||1|||||0|0|||||0||68134|
7048852|2|||45319|trap.maintenance.callerid|0|0|4|||0|||1|||||0|0|||||0|||

Proxy dies while processing 7048852 item.

[6746840,3,"","",45319,"icmppingloss[{HOSTNAME},10,,32,600]",120,0,3,"","",0,"","","1","","","","",0,0,"","","","",0,"",68134,""],
[7048852,2,"","",45319,"trap.maintenance.callerid",0,0,4,"","",0,"","","1","","","","",0,0,"","","","",0,"",null,""],

andris RESOLVED in r36669
dotneft TESTED.
andris More bugs discovered in handling NULL values and fixed in r36699. Could you test again ?
dotneft CLOSED.

Comment by Alexey Pustovalov [ 2013 Jun 28 ]

tests:

new:
13921:20130628:205148.923 In process_configuration_sync()
13921:20130628:205311.069 End of process_configuration_sync()
13921:20130628:205454.238 In process_configuration_sync()
13921:20130628:205616.793 End of process_configuration_sync()

old
23986:20130628:210007.139 In process_configuration_sync()
23986:20130628:210017.850 Received configuration data from server. Datalen 54271872
23986:20130628:210106.888 End of process_configuration_sync()

Comment by Andris Mednis [ 2013 Jun 28 ]

Thanks for a good test, Alexey! I will prepare a "proxy.c" file with more time logging to find out which part of the fix is the slowest and needs improvement.

Comment by Andris Mednis [ 2013 Jun 28 ]

Attached is a modified "src/libs/zbxdbhigh/proxy.c" with more time logging added (it does not fix crash).
dotneft Tested. Please find attached log file.
andris The log file shows that the slowest part is comparing "items" table new data (from JSON) with current data (from DB) to find out which records to add/delete/modify and determine fields requiring update. Both data are in memory at that time, so it is CPU/memory intensive, without I/O. Is it important to improve performance here ? If yes, how much? Or is it ok to be slower, but do not issue unnecessary updates to DB ?
andris Well, I've modified the slowest part and hope it will help. Let's test it on Monday.

Comment by Alexey Pustovalov [ 2013 Jul 02 ]
 23614:20130702:195926.736 proxy #1 started [configuration syncer #1]
 23614:20130702:195926.762 In process_configuration_sync()
 23614:20130702:195940.736 Received configuration data from server. Datalen 66192063
 23614:20130702:195943.627 slow query: 2.266737 sec, "select itemid,type,snmp_community,snmp_oid,hostid,key_,delay,status,value_type,trapper_hosts,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,formula,logtimefmt,delay_flex,params,ipmi_sensor,data_type,authtype,username,password,publickey,privatekey,flags,filter,interfaceid,port from items"
 23614:20130702:195949.220 slow query: 2.828733 sec, "select i.itemid,i.hostid,h.proxy_hostid,i.type,i.data_type,i.value_type,i.key_,i.snmp_community,i.snmp_oid,i.port,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.ipmi_sensor,i.delay,i.delay_flex,i.trapper_hosts,i.logtimefmt,i.params,i.status,i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.interfaceid,i.lastclock from items i,hosts h where i.hostid=h.hostid and h.status in (0) and i.status in (0,3)"
 23614:20130702:195951.633 End of process_configuration_sync()
 23614:20130702:200022.043 forced reloading of the configuration cache
 23614:20130702:200022.043 In process_configuration_sync()
 23614:20130702:200036.543 Received configuration data from server. Datalen 66192063
 23614:20130702:200039.537 slow query: 2.314157 sec, "select itemid,type,snmp_community,snmp_oid,hostid,key_,delay,status,value_type,trapper_hosts,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,formula,logtimefmt,delay_flex,params,ipmi_sensor,data_type,authtype,username,password,publickey,privatekey,flags,filter,interfaceid,port from items"
 23614:20130702:200045.189 slow query: 2.868602 sec, "select i.itemid,i.hostid,h.proxy_hostid,i.type,i.data_type,i.value_type,i.key_,i.snmp_community,i.snmp_oid,i.port,i.snmpv3_securityname,i.snmpv3_securitylevel,i.snmpv3_authpassphrase,i.snmpv3_privpassphrase,i.ipmi_sensor,i.delay,i.delay_flex,i.trapper_hosts,i.logtimefmt,i.params,i.status,i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.interfaceid,i.lastclock from items i,hosts h where i.hostid=h.hostid and h.status in (0) and i.status in (0,3)"
 23614:20130702:200047.578 End of process_configuration_sync()
Comment by Andris Mednis [ 2013 Jul 03 ]

The performance issue, crash, and NULL value handling are fixed in r36699.

Comment by Alexander Vladishev [ 2013 Jul 04 ]

Successfully tested! Please review my changes in r36729.

Comment by richlv [ 2013 Jul 05 ]

(2) added to whatsnew at https://www.zabbix.com/documentation/2.0/manual/introduction/whatsnew207#improved_proxy_performance , please review

andris Reviewed. Minor changes proposed.

<richlv> CLOSED

Comment by Andris Mednis [ 2013 Jul 05 ]

Fixed in versions pre-2.0.7 rev. 36754 and pre-2.1.0 rev. 36769.





[ZBX-6601] Error in `/usr/local/sbin/zabbix_proxy': malloc(): memory corruption Created: 2013 May 14  Updated: 2017 May 30  Resolved: 2013 May 30

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.1.0
Fix Version/s: None

Type: Incident report Priority: Critical
Reporter: Denis Legostaev Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: crash, libc, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux zabbix-proxy-am 3.8-1-amd64 #1 SMP Debian 3.8.12-1 x86_64 GNU/Linux


Attachments: Text File zabbix_proxy.log    
Issue Links:
Duplicate
is duplicated by ZBX-3817 proxy_get_history_data query using te... Closed

 Description   

Proxy without hosts starts and works fine.
After I added hosts and synced config(using config_cache_reload) - proxy worked fine and transferred data for 10-15 minutes, then crashed.
Now on start it crashes.
Log is attached.
Proxy version: Zabbix proxy v2.1.0 (revision 35609) (21 May 2012)



 Comments   
Comment by Oleksii Zagorskyi [ 2013 May 15 ]

Originally reported on forum thread https://www.zabbix.com/forum/showthread.php?t=40883
There are some other details.

Comment by Denis Legostaev [ 2013 May 16 ]

This results were produced when tested zabbix proxy on sid debian.
Also tested on wheezy release of debian, got same error.

Comment by Oleksii Zagorskyi [ 2013 May 21 ]

The forum thread contains some small patch.

Comment by dimir [ 2013 May 30 ]

This is the regression that is a result of ZBX-3817. Let's move the discussion over there.

Comment by dimir [ 2013 May 31 ]

Fixed in pre-2.1.0 (trunk) r36011.





[ZBX-6362] Confusing interfaces parameter for proxy.create and proxy.update Created: 2013 Mar 07  Updated: 2017 May 30  Resolved: 2013 Oct 21

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 2.1.0
Fix Version/s: 2.1.0, 2.1.8

Type: Incident report Priority: Minor
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: api, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The fact that the parameter name is plural and it accepts an array of objects may trick someone into believing that a proxy can have multiple interfaces. The parameter should be called "interface" and it should accept a single interface object. Keep in mind, that the "interfaces" parameter must still be supported for backward compatibility.

Proxy create must look like:
{
"host": "bbb",
"status": 6,
"hosts": {},
"interface":

{ "hostid": 10164, "ip": "127.0.0.10", "dns": "localhost", "useip": 1, "port": "10051" }

}

Proxy update must look like:
{
"host": "aaa",
"status": 6,
"hosts": {},
"interface":

{ "interfaceid": 56, "hostid": 10164, "ip": "127.0.0.10", "dns": "localhost", "useip": 1, "port": "10051" }

,
"proxyid": 10164
}



 Comments   
Comment by Eduards Samersovs (Inactive) [ 2013 Jun 27 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6362

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(1) CProxy.php from line:577

mapOne() should be used instead of mapMany() and extra loop unnecessary.

Eduards RESOLVED r.36603

oleg.egorov CLOSED

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(2) CProxy.php should be singular:
line:318 $interfaces and $interfaceIds

$interfaces = API::HostInterface()->get(array(
	'output' => API_OUTPUT_REFER,
	'hostids' => $proxy['hostid']
));
$interfaceIds = zbx_objectValues($interfaces, 'interfaceid');

if ($interfaceIds) {
	API::HostInterface()->delete($interfaceIds);
}

Eduards RESOLVED r.36603

oleg.egorov CLOSED

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(3) administration.proxy.edit.php should be singular
line: 52

$interfaceTable = new CTable(_('No interfaces defined.'), 'formElementTable');

Eduards RESOLVED r.36603

oleg.egorov CLOSED

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(4) When creating proxy with interface missing port:
"Warning. Incorrect value for field "interface": cannot be empty."
is shown, should be:
"Port cannot be empty for host interface."

Eduards RESOLVED r.36603 Valid error message is "IP and DNS cannot be empty for host interface." which come from CHostInterface.php:345 API

oleg.egorov CLOSED

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(5) unable to change proxy mode to "Active"
'No interface for proxy "asd".' error shown

Eduards RESOLVED r.36631

oleg.egorov CLOSED

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(6)? backward compatibility not implemented. Should be discussed if it is necessary as the API call output format changes anyway so breaking any usage of this API.

Eduards RESOLVED r.36643

oleg.egorov CLOSED

Comment by Toms (Inactive) [ 2013 Jun 28 ]

(7) unable to update proxy with given proxy update call.
response:'{"jsonrpc":"2.0","error":

{"code":-32602,"message":"Invalid params.","data":"No permissions to referred object or it does not exist!"}

,"id":12}'

looks like Interface API call do not find stored interface.

Eduards RESOLVED r.36631

oleg.egorov CLOSED

Comment by Oleg Egorov (Inactive) [ 2013 Jul 03 ]

(8) proxies.php:166-169

elseif ($_REQUEST['go'] == 'delete' && isset($_REQUEST['hosts'])) {
	DBstart();

	$goResult = API::Proxy()->delete(get_request('hosts', array()));

isset($_REQUEST['hosts']) and get_request('hosts', array());

array() - will be never executed

Eduards RESOLVED r.36700

oleg.egorov CLOSED

Comment by Oleg Egorov (Inactive) [ 2013 Jul 03 ]

(9) Error msg: Incorrect IP for passive proxy "".
Miss "Interface"

Eduards RESOLVED r.36700

oleg.egorov CLOSED

Comment by Oleg Egorov (Inactive) [ 2013 Jul 03 ]

(10) Impossible remove hosts from "Proxy hosts"

Eduards RESOLVED r.36700

oleg.egorov CLOSED

Comment by Oleg Egorov (Inactive) [ 2013 Jul 04 ]

TESTED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 04 ]

Fixed in versions pre-2.1.0 (beta) r.36718

Comment by Pavels Jelisejevs (Inactive) [ 2013 Oct 16 ]

(11) There's a problem I've missed. The selectInterfaces parameter must work as it did before: return the result as an array under the "interfaces" property, not "interface".

Eduards RESOLVED in svn://svn.zabbix.com/branches/dev/ZBX-6362

jelisejev There's an undefined index on the proxy configuration page.

Eduards RESOLVED r.39439

jelisejev CLOSED.

Comment by Pavels Jelisejevs (Inactive) [ 2013 Oct 16 ]

(12) Also this change was not described in the API docs. I've added it to:

Eduards CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Oct 18 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6362

Comment by Pavels Jelisejevs (Inactive) [ 2013 Oct 21 ]

TESTED.

Comment by Eduards Samersovs (Inactive) [ 2013 Oct 21 ]

Fixed in versions pre-2.1.8 (trunk) r.39446





[ZBX-6361] Unable to create an interface for a passive proxy using proxy.create Created: 2013 Mar 07  Updated: 2017 May 30  Resolved: 2013 Jul 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 2.1.0
Fix Version/s: 2.1.1, 2.2.0

Type: Incident report Priority: Minor
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: api, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The "interfaces" parameter is ignored if the "hosts" parameter is not passed, that is, if you don't pass the "hosts" parameter, the interface will not be created.

Example:

{
"host": 20,
"status": 6,
"interfaces": {
"0":

{ "ip": "127.0.0.1", "dns": "localhost", "useip": 1, "port": 10051 }

}
}



 Comments   
Comment by Eduards Samersovs (Inactive) [ 2013 Jun 20 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6361

Comment by Oleg Egorov (Inactive) [ 2013 Jun 25 ]

TESTED!

Comment by Eduards Samersovs (Inactive) [ 2013 Jun 25 ]

Fixed in versions pre-2.1.0 (beta) r.36520

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 09 ]

(1) Incorrect IP validation if macro is used.

oleg.egorov REOPEN

Possible save IP with value = "0"

Eduards RESOLVED r.36846

oleg.egorov CLOSED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 10 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6361

Comment by Oleg Egorov (Inactive) [ 2013 Jul 10 ]

TESTED

Comment by Eduards Samersovs (Inactive) [ 2013 Jul 10 ]

Fixed in versions 2.2.0 (trunk) r.36849, pre-2.1.1 (alpha) r.36850

Comment by Pavels Jelisejevs (Inactive) [ 2013 Oct 10 ]

This caused a regression: ZBX-7131.





[ZBX-6328] Problem viewing proxy list Created: 2013 Feb 27  Updated: 2017 May 30  Resolved: 2013 Mar 08

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 2.0.5
Fix Version/s: 2.0.6rc1, 2.1.0

Type: Incident report Priority: Minor
Reporter: Łukasz Jernaś Assignee: Unassigned
Resolution: Fixed Votes: 2
Labels: proxy, regression
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File dm_bug.png    

 Description   

When viewing the proxy list with "Rows per page" set to 50 in the user profile I get the following errors:
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]
Undefined index: hosts [include/views/administration.proxy.list.php:57]
Invalid argument supplied for foreach() [include/views/administration.proxy.list.php:57]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: proxyid [include/views/administration.proxy.list.php:74]
Undefined index: host [include/views/administration.proxy.list.php:75]
Undefined index: proxyid [include/views/administration.proxy.list.php:75]
Undefined index: status [include/views/administration.proxy.list.php:76]
Undefined index: lastaccess [include/views/administration.proxy.list.php:77]
Undefined index: hosts [include/views/administration.proxy.list.php:78]

Steps to reproduce:
Menu Administration->DM->Proxies go to second page of proxy list

when I set rows per page to a higher number, the problem doesn't show up



 Comments   
Comment by Oleksii Zagorskyi [ 2013 Feb 28 ]

I feel that it can be related to ZBX-6318

Łukasz, how it works on 2.0.4 frontend ?

Comment by Łukasz Jernaś [ 2013 Feb 28 ]

It doesn't work on 2.0.4 either, also 2.0.3 is bad, I won't dare to test lower versions by myself though

Comment by richlv [ 2013 Feb 28 ]

huh. took me some time to reproduce. for this you will need a proxy with hosts assigned (not sure whether hosts need any special property or not). looks like errors appear in pages where the "offending" proxy is not visible

confirming in trunk rev 34042.

regression, broken by :

------------------------------------------------------------------------
r26226 | eduards | 2012-03-20 14:33:00 +0200 (Tue, 20 Mar 2012) | 1 line

A.F....... ZBXNEXT-914 redesign Administration->DM

Comment by Eduards Samersovs (Inactive) [ 2013 Mar 05 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6328

Comment by Oleg Egorov (Inactive) [ 2013 Mar 06 ]

TESTED

Comment by Eduards Samersovs (Inactive) [ 2013 Mar 06 ]

Fixed in versions pre-2.1.0 (beta) r34139, pre-2.0.6rc1 r34138

Comment by Oleksii Zagorskyi [ 2013 Mar 08 ]

Reopen to unify labels.

Comment by Oleksii Zagorskyi [ 2013 Mar 08 ]

Closed again.





[ZBX-6249] Zabbix Proxy drop to send some data Created: 2013 Feb 12  Updated: 2017 May 30  Resolved: 2013 Aug 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.8.16, 2.0.8rc2
Fix Version/s: 1.8.18rc1, 2.0.9rc1, 2.1.3

Type: Incident report Priority: Critical
Reporter: MATSUDA Daiki Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: proxy, synchronization
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File zabbix-1.8.16-proxy_transaction_num_check_v3.patch     File zabbix-2.0.4-proxy_transaction_num_check_v3.patch     File zabbix-2.0.6-memorize_datasender_time.patch     File zabbix-2.0.6-proxy_transaction_num_check_v2.patch    

 Description   

Zabbix Proxy 1.8.x drop to send some data. It depends on transaction delay to DB.

In Zabbix Proxy...
Process A: in DCsync_history() calls transacation with DCmass_proxy_add_history() and DCmass_proxy_update_items().
But DCmass_proxy_update_items() is delayed for some reason.
Process B: my call DCmass_proxy_add_history() and commited. But Process A is not completed.
Process C: try to send data to Server. Then it reads the data from DB which commited by Process B. But currently Process A is not completed, so it can not read Process A's data.
Aftere then, Process A is completed. But as lastid is updated, Process A's data is never sent to Server.

So, I think that for resolving this problem, you shuld insert the WRITE Table lock for DCmass_proxy_add_history() and DCmass_proxy_update_items().



 Comments   
Comment by Bashman [ 2013 May 08 ]

In my case, I'm using version 1.8.15, Zabbix proxy doesn't send all data to server.

  9817:20130508:121800.348 Trapper got [{
        "request":"history data"}] len 28
  9817:20130508:121800.348 In send_proxyhistory()
  9817:20130508:121800.348 In proxy_get_history_data() table:'proxy_history'
  9817:20130508:121800.348 In proxy_get_lastid() [proxy_history.history_lastid]
  9817:20130508:121800.349 query [txnlev:0] [select nextid from ids where table_name='proxy_history' and field_name='history_lastid']
  9814:20130508:121800.349 zbx_recv_response() '{
        "response":"success"}'
  9814:20130508:121800.349 End of zbx_recv_response():SUCCEED
  9814:20130508:121800.349 End of send_host_availability()
  9817:20130508:121800.349 End of proxy_get_lastid():601142242
  9817:20130508:121800.349 query [txnlev:0] [select p.id,h.host,i.key_,p.clock,p.timestamp,p.source,p.severity,p.value,p.logeventid from hosts h,items i,proxy_history p where h.hostid=i.hostid and i.itemid=p.itemid and p.id>601142242 order by p.id limit 1000]
  9817:20130508:121800.350 End of proxy_get_history_data():36 lastid:601142278
  9817:20130508:121800.350 In zbx_recv_response()
  9816:20130508:121800.351 Trapper got [{
        "request":"discovery data"}] len 30
  9816:20130508:121800.352 In send_discovery_data()
  9816:20130508:121800.352 In proxy_get_history_data() table:'proxy_dhistory'
  9816:20130508:121800.352 In proxy_get_lastid() [proxy_dhistory.dhistory_lastid]
  9816:20130508:121800.352 query [txnlev:0] [select nextid from ids where table_name='proxy_dhistory' and field_name='dhistory_lastid']
  9817:20130508:121800.352 zbx_recv_response() '{
        "response":"success"}'
  9817:20130508:121800.352 End of zbx_recv_response():SUCCEED
  9817:20130508:121800.352 In proxy_set_lastid() [proxy_history.history_lastid:601142278]
  9817:20130508:121800.352 query [txnlev:0] [select 1 from ids where table_name='proxy_history' and field_name='history_lastid']
  9816:20130508:121800.352 End of proxy_get_lastid():777
  9816:20130508:121800.352 query [txnlev:0] [select p.id,p.clock,p.druleid,p.dcheckid,p.type,p.ip,p.port,p.key_,p.value,p.status from proxy_dhistory p where p.id>777 order by p.id limit 1000]
  9817:20130508:121800.353 query without transaction detected
  9817:20130508:121800.353 query [txnlev:0] [update ids set nextid=601142278 where table_name='proxy_history' and field_name='history_lastid']
  9816:20130508:121800.353 End of proxy_get_history_data():0 lastid:0
  9816:20130508:121800.353 In zbx_recv_response()
  9818:20130508:121800.353 Trapper got [{
        "request":"auto registration"}] len 33
  9818:20130508:121800.353 In send_areg_data()
  9818:20130508:121800.353 In proxy_get_history_data() table:'proxy_autoreg_host'
  9818:20130508:121800.353 In proxy_get_lastid() [proxy_autoreg_host.autoreg_host_lastid]
  9818:20130508:121800.353 query [txnlev:0] [select nextid from ids where table_name='proxy_autoreg_host' and field_name='autoreg_host_lastid']
  9816:20130508:121800.353 zbx_recv_response() '{
        "response":"success"}'
  9816:20130508:121800.353 End of zbx_recv_response():SUCCEED
  9816:20130508:121800.353 End of send_discovery_data()
  9817:20130508:121800.354 End of proxy_set_lastid()
  9817:20130508:121800.354 End of send_proxyhistory()
  9818:20130508:121800.354 End of proxy_get_lastid():10306
  9818:20130508:121800.354 query [txnlev:0] [select p.id,p.clock,p.host from proxy_autoreg_host p where p.id>10306 order by p.id limit 1000]
  9818:20130508:121800.354 End of proxy_get_history_data():0 lastid:0
  9818:20130508:121800.354 In zbx_recv_response()
  9818:20130508:121800.354 zbx_recv_response() '{
        "response":"success"}'
  9818:20130508:121800.355 End of zbx_recv_response():SUCCEED
  9818:20130508:121800.355 End of send_areg_data()
mysql> select count(*) from proxy_history;
+----------+
| count(*) |
+----------+
|    15447 |
+----------+
1 row in set (0.01 sec)

Could be related to ZBX-5448.

Comment by Bashman [ 2013 May 08 ]

It doesn't happen with icmp.

Comment by Bashman [ 2013 May 08 ]

Which is the socket size limit?, I created a new zabbix_proxy with less hosts and it works fine.

Comment by MATSUDA Daiki [ 2013 May 09 ]

The important thing is that it occurs after commit delay as I wrote. So, did you see commit delay ?
At least Zabbix Proxy of 1.8.16, maybe also 2.0.x, does not have a good argorithm for this, it should wait.

Comment by Bashman [ 2013 May 09 ]

I don't see any delay after commitment:

 9825:20130508:121929.942 Syncing ...
  9825:20130508:121929.942 In DCsync_history() history_first:1419 history_num:27
  9825:20130508:121929.942 In DCinit_nextchecks()
  9825:20130508:121929.942 query [txnlev:1] [begin;]
  9824:20130508:121929.943 Syncing ...
  9824:20130508:121929.943 In DCsync_history() history_first:1446 history_num:0
  9824:20130508:121929.943 history syncer #3 spent 0.000023 seconds while processing 0 items
  9824:20130508:121929.943 sleeping for 5 seconds
  9825:20130508:121929.943 In DCmass_proxy_add_history()
  9825:20130508:121929.943 query [txnlev:1] [insert into proxy_history (itemid,clock,value) values (49192,1368008365,'33.000000'),(58183,1368008366,'1469584703.000000'),(53185,1368008368,'0.209273');
insert into proxy_history (itemid,clock,value) values (51935,1368008364,'3937898075'),(39832,1368008365,'0'),(38753,1368008365,'5537877'),(49221,1368008362,'1'),(60111,1368008362,'1'),(44452,1368008362,'1'),(42562,1368008362,'1'),(44272,1368008362,'1'),(49852,1368008362,'1'),(50032,1368008362,'1'),(66052,1368008362,'1'),(48951,1368008362,'1'),(50031,1368008362,'1'),(50570,1368008362,'0'),(49184,1368008366,'26'),(66005,1368008367,'0'),(39065,1368008367,'3570903802'),(43824,1368008365,'1'),(50574,1368008365,'0'),(50035,1368008365,'1'),(50575,1368008365,'0'),(52014,1368008365,'1'),(50034,1368008365,'1'),(50033,1368008365,'1');
]
  9823:20130508:121929.943 Syncing ...
  9823:20130508:121929.943 In DCsync_history() history_first:1446 history_num:0
  9823:20130508:121929.943 history syncer #2 spent 0.000034 seconds while processing 0 items
  9823:20130508:121929.943 sleeping for 5 seconds
  9825:20130508:121929.944 End of DCmass_proxy_add_history()
  9825:20130508:121929.944 In DCmass_proxy_update_items()
  9825:20130508:121929.944 End of DCmass_proxy_update_items()
  9825:20130508:121929.944 query [txnlev:1] [commit;]
  9825:20130508:121929.944 In DCflush_nextchecks()
  9825:20130508:121929.944 history syncer #4 spent 0.001907 seconds while processing 27 items
  9825:20130508:121929.944 sleeping for 5 seconds
  9822:20130508:121929.996 Syncing ...
  9822:20130508:121929.997 In DCsync_history() history_first:1446 history_num:0
  9822:20130508:121929.997 history syncer #1 spent 0.000033 seconds while processing 0 items
  9822:20130508:121929.997 sleeping for 5 seconds

The problem I see is that not all the proxy data is sent to the server. May be it is due to the high amount of data to be sent:

Host count: 381
Item count: 2378
Required performance (vps): 10.61

I tried with a new proxy:

Host count: 4
Item count: 80
Required performance (vps): 0.37

And everything is ok.

Comment by MATSUDA Daiki [ 2013 May 10 ]

What do you think about this problem? You only paste successful logs and do not try to confirm source code!

In fact, the problem occured in our customer's environment and DB often delays for a process to commit. And I confirmed the source code with their logs, 1.8.16 and 2.0.5. Because History syncers work asynchronous, there is a possiblity. And I attatch the patches.

Comment by Bashman [ 2013 May 10 ]

All I know is that apparently in the logs everything is correct, but the data that proxy must send to the server is not complete, there is missing data. However, if proxy has fewer hosts, it is able to send all the data to server.

Comment by MATSUDA Daiki [ 2013 May 10 ]

No, as I wrote at the first,

1. process A transaction starts and takes lastvalue N
2. process B transaction starts and takes last value N' (N' > N)
3. process A transaction not end and Process B transaction commited
4. process C starts to send the data from N + 1 to N' to the Server
5. process A transcation commited
6. the data to N never be sent

Do you understand? And have you seen this phonomena?

Comment by Bashman [ 2013 May 16 ]

Yeah, I understand. You're totally right:

mysql> SELECT max(id) from proxy_history;
+---------+
| max(id) |
+---------+
| 2906356 |
+---------+
1 row in set (0.00 sec)

mysql> select * from ids;
+--------+--------------------+---------------------+---------+
| nodeid | table_name         | field_name          | nextid  |
+--------+--------------------+---------------------+---------+
|      0 | proxy_autoreg_host | autoreg_host_lastid |   66285 |
|      0 | proxy_history      | history_lastid      | 2906383 |
+--------+--------------------+---------------------+---------+
2 rows in set (0.00 sec)
Comment by AndreaConsadori [ 2013 Jul 04 ]

i also see this issue because i've an ustable dsl connection that loose packet every 5 minutes

Comment by Andris Mednis [ 2013 Aug 06 ]

I looked into proposed patch for 2.0.6. It sets up a small shared memory segment for keeping a counting semaphore "How many DB syncers are doing their transactions at the moment". Every "DB syncer" process before starting a transaction:

  • obtains a mutex lock, increments the semaphore by 1, releases the lock,
  • does its transaction,
  • obtains the mutex lock, decrements the semaphore by 1, releases the lock.

The "Data sender" process observes the semaphore and waits until it becomes 0 (no one DB syncer is in transaction). Waiting is a sleeping for 0.1 second.
I wonder how this will behave on a heavy loaded proxies ? Is there a guarantee that "Data sender" will get access to data in a reasonable time ? Some time passes between the "Data sender" seeing that the semaphore is 0 and proceeding with reading data until the data is acquired by the "Data sender". As it is not an atomic operation, in the meantime "DB syncer" processes can do something, maybe even a transaction, who knows.

Comment by Andris Mednis [ 2013 Aug 07 ]

Proposed solution - modify functions proxy_get_history_data() and, maybe, proxy_get_history_data_simple():

  • when reading data from 'proxy_history' table, check whether "id" grows with step 1.
  • if yes, then good, there are no missing records, we can proceed with sending data to master server.
  • if no, some records are missing. May be they will be committed in a moment by one of DB syncers, may be they will never arrive if a rollback occurred in a DB syncer. In this case the Data sender sleeps a short time (0.1 second?) and re-reads the data from 'proxy_history' table starting from the old "lastid". This gives a chance for delayed records to be included in sending to the master server. If there are still missing records, we "write them off" and proceed with sending what is available.

Data sender cannot send missing records later and cannot wait too long for them.

Comment by MATSUDA Daiki [ 2013 Aug 08 ]

> I looked into proposed patch for 2.0.6. It sets up a small shared memory segment for keeping a counting semaphore "How many DB syncers are doing their transactions at the moment". Every "DB syncer" process before starting a transaction:
>
> obtains a mutex lock, increments the semaphore by 1, releases the lock,
> does its transaction,
> obtains the mutex lock, decrements the semaphore by 1, releases the lock.

> The "Data sender" process observes the semaphore and waits until it becomes 0 (no one DB syncer is in transaction). Waiting is a sleeping for 0.1 second.

Yes.

> I wonder how this will behave on a heavy loaded proxies ?

Maybe yes. But there is a usual behaviour that 2nd transaction is commited faster than 1st transaction.

> Is there a guarantee that "Data sender" will get access to data in a reasonable time ?

Maybe no, because I do not understand 'reasonable time'. But there is no problem when Data sender accesses the DB, no DB syncer does not start transaction.

> Some time passes between the "Data sender" seeing that the semaphore is 0 and proceeding with reading data until the data is acquired by the "Data sender". As it is not an atomic operation, in the meantime "DB syncer" processes can do something, maybe even a transaction, who knows.

I know the potential problem that Data sender wait for forever. So, I attached the patch to limit waiting time.

Comment by Alexander Vladishev [ 2013 Aug 14 ]

Changes in the development branch svn://svn.zabbix.com/branches/dev/ZBX-6249-trunk is successfully reviewed with a small fix. Please review r37798.
andris Thanks! Reviewed and accepted.

Comment by Andris Mednis [ 2013 Aug 16 ]

Available in development branches:

  • svn://svn.zabbix.com/branches/dev/ZBX-6249-18 (for version 1.8)
  • svn://svn.zabbix.com/branches/dev/ZBX-6249-trunk
Comment by Alexander Vladishev [ 2013 Aug 19 ]

svn://svn.zabbix.com/branches/dev/ZBX-6249-18 was successfully tested!

Comment by Alexander Vladishev [ 2013 Aug 19 ]

svn://svn.zabbix.com/branches/dev/ZBX-6249-trunk was successfully tested!

Comment by Andris Mednis [ 2013 Aug 20 ]

Available in pre-1.8.18 r37965, pre-2.0.9 r38027 and pre-2.1.3 (trunk) r37968.

Comment by Anton Samets [ 2013 Aug 27 ]

Guys, this patch is awesome! Right now in "Administration - Queue" we see only green zeroes at all.
Before this it was like 10-30 thousands of item with delay more than 1 minute. Permanent IO in htop in main zabbix-server has gone.
Recommend to use. Right now we using 2.0.8 with this patch.

Comment by Andris Mednis [ 2013 Aug 27 ]

Are you using a patch from ZBX-6249 attachments contributed by Matsuda Daiki or from 2.0.9rc1 ?





[ZBX-6221] server sends no response to proxy config and heartbeat requests if proxy hostname doesn't match Created: 2013 Feb 06  Updated: 2017 May 30  Resolved: 2013 Feb 19

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: 2.1.0

Type: Incident report Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

server sends no response to proxy config and heartbeat requests if proxy hostname doesn't match; it sends "failure" for history and discovery data in such case.

probably should be the same for all connection types



 Comments   
Comment by Andris Zeila [ 2013 Feb 19 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-6221

Comment by Andris Mednis [ 2013 Feb 22 ]

Code reviewed. Proposed changes in r33886 and 33887.

Comment by Andris Mednis [ 2013 Feb 25 ]

Successfully tested.

Comment by Andris Zeila [ 2013 Feb 25 ]

Fixed in:
pre-2.1.0 r33931





[ZBX-6126] Inconsistent delete API methods Created: 2013 Jan 15  Updated: 2017 May 30  Resolved: 2013 Jan 30

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 2.1.0
Fix Version/s: 2.1.0

Type: Incident report Priority: Major
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: api, host, proxy, user
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-6068 proxy deletion fails with sql error Closed

 Description   

Most of the delete methods accept IDs of objects as parameters, but some of them accept whole objects. Delete methods should always accept IDs. The following methods must be changed:

host.delete
proxy.delete
user.delete

The fix must be backward-compatible, meaning that in 2.2 these methods must support both input formats.



 Comments   
Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 15 ]

This issue is somewhat related ZBX-6068.

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 22 ]

RESOLVED in svn://svn.zabbix.com/branches/dev/ZBX-6126.

Comment by Toms (Inactive) [ 2013 Jan 22 ]

(1) I suggest to replace message 'Passing objects to host.delete is deprecated, use an array of IDs instead.' with 'Passing objects to API::Host()->delete() is deprecated, use an array of IDs instead.'

same for other two classes.

jelisejev RESOLVED in r33084 and 33085.

tomtom nice, CLOSED

Comment by Toms (Inactive) [ 2013 Jan 22 ]

(2) deprecated() should be commented, that it is intended to be used only in frontend and not API.

jelisejev RESOLVED in r33052.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(3) unnecessary array in '$result = API::Proxy()>delete(array($_REQUEST['proxyid']));' in proxies.php or array missing in 'API::Host()>delete($_REQUEST['hostid']);' in hosts.php

jelisejev RESOLVED in r33056.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(4) wrong PHPDoc for checkPermissions() in CUser.php

+ missing param in PHPDoc for check methods

jelisejev RESOLVED in r33052.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(5) now user.delete API call with params:
[null]
doesn't rise exception, but returns:
{
"jsonrpc": "2.0",
"result":

{ "userids": [ null ] }

,
"id": 1
}

jelisejev RESOLVED in r33069.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(6) user.delete API call with params (non-existing id):

{ "userid": [ 123123 ] }

returns SQL error:
{
"jsonrpc": "2.0",
"error":

{ "code": -32500, "message": "Application error.", "data": "SQL statement execution has failed \"DELETE FROM opmessage_usr WHERE userid=Array\"" }

,
"id": 4
}

jelisejev After r33069 the API will throw a "No permissions to referred object or it does not exist!" error. Not exactly accurate, since the "userid" parameter should not be an array, but it will do. RESOLVED.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(7) I suggest to add empty parameter check to user.delete same as for proxy.delete, for example.

jelisejev RESOLVED in r33071.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(8) host.delete API call:

{ "asd": [ 123 ] }

now returns:
"Empty input parameter."
was:
"Wrong fields for host \"\"."

jelisejev Changed it to "No user/host/proxy ID given". RESOLVED in r33073.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 23 ]

(9) Review my changes

jelisejev The correct type for $value would be mixed. Otherwise - good. CLOSED.

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 23 ]

(10) The deprecated API notices must be visible only when debug is enabled.

jelisejev RESOLVED in r33085.

tomtom REOPENED. As discussed, better to see always.

jelisejev RESOLVED in r33143.

tomtom CLOSED

Comment by richlv [ 2013 Jan 23 ]

(11) please also explicitly test ZBX-6068

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 25 ]

TESTED

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 25 ]

Fixed in 2.1.0 r33150.

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 25 ]

(12) Update the API docs.

jelisejev Updated the user and host API references:
https://www.zabbix.com/documentation/2.2/manual/api/reference/user/delete
https://www.zabbix.com/documentation/2.2/manual/api/reference/host/delete

CLOSED.

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 28 ]

CLOSED.

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 29 ]

(13) A problem with the new stack trace: it causes errors if you trigger an undefined index error in one of the front controllers.

jelisejev RESOLVED in svn://svn.zabbix.com/branches/dev/ZBX-6126.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 30 ]

(14) $a=$b; in Ctrigger get() causes undefined index, but error message is badly formatted:
Undefined variable: b [CAPIObject->get() → CAPIObject->__call() → czbxrpc::call() → czbxrpc::callAPI() → call_user_func() → CTrigger->get() in :]

+ PHP Notice: Undefined index: file in C:\zabbix\ZBX-6126-2\frontends\php\include\classes\debug\CProfiler.php on line 304

With same $a=$b; in Ctrigger get() in Configuration->Host we get error:
Undefined variable: b [CAPIObject->get() → CAPIObject->__call() → czbxrpc::call() → czbxrpc::callAPI() → call_user_func() → CHost->get() → CHost->addRelatedObjects() → CHostGeneral->addRelatedObjects() → CTrigger->get() in C:\zabbix\ZBX-6126-2\frontends\php\api\classes\CHostGeneral.php:974]
though error is in Ctrigger.php

jelisejev RESOLVED in r33252.

tomtom CLOSED

Comment by Toms (Inactive) [ 2013 Jan 31 ]

TESTED

Review my changes as we discussed in r33286

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 31 ]

Fixed in r33295.

CLOSED.





[ZBX-6074] proxy class has useless isreadable and iswritable methods Created: 2013 Jan 08  Updated: 2017 May 30

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: 2.0.4, 2.1.0
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

proxy class has useless isreadable and iswritable methods - proxies are only manageable by superadmins, can't belong to groups and can't be subject to permissions.
these methods also seem to return "false" always.



 Comments   
Comment by Alexander Vladishev [ 2013 Jan 11 ]

Rich,

Only Super Admins can edit proxies. isWritable method shan't be removed.

Comment by richlv [ 2013 Jan 13 ]

yeah, after some discussion with pavels we figured out that these could stay in so that applications don't have to implement this piece of permission logic.
nevertheless, they seem to return false always (authenticating as a superadmin user). do they work for somebody else ?

Comment by Alexander Vladishev [ 2014 May 01 ]

Related issues: ZBX-6075, ZBX-6255





[ZBX-6068] proxy deletion fails with sql error Created: 2013 Jan 07  Updated: 2017 May 30  Resolved: 2013 Jan 23

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

2.0 branch rev 32496


Issue Links:
Duplicate
duplicates ZBX-6126 Inconsistent delete API methods Closed

 Description   

{"jsonrpc":"2.0","method":"proxy.delete","params":

{"proxyid":["10278"]}

,"auth":"ab9638041ec6922cb14b07982b268f47","id":1}



 Comments   
Comment by richlv [ 2013 Jan 07 ]
{
    "jsonrpc": "2.0",
    "error": {
        "code": -32500,
        "message": "Application error.",
        "data": "SQL statement execution has failed \"DELETE FROM conditions WHERE conditiontype='20' AND value=Array\"",
        "debug": [
            {
                "file": "/srv/www/htdocs/zabbix/include/classes/db/DB.php",
                "line": 631,
                "function": "exception",
                "class": "DB",
                "type": "::",
                "args": [
                    1,
                    "SQL statement execution has failed \"DELETE FROM conditions WHERE conditiontype='20' AND value=Array\""
                ]
            },
            {
                "file": "/srv/www/htdocs/zabbix/api/classes/CProxy.php",
                "line": 520,
                "function": "delete",
                "class": "DB",
                "type": "::",
                "args": [
                    "conditions",
                    {
                        "conditiontype": 20,
                        "value": [
                            [
                                "10278"
                            ]
                        ]
                    }
                ]
            },
            {
                "function": "delete",
                "class": "CProxy",
                "type": "->",
                "args": [
                    {
                        "proxyid": [
                            "10278"
                        ]
                    }
                ]
            },
            {
                "file": "/srv/www/htdocs/zabbix/api/rpc/class.czbxrpc.php",
                "line": 120,
                "function": "call_user_func",
                "args": [
                    [
                        {},
                        "delete"
                    ],
                    {
                        "proxyid": [
                            "10278"
                        ]
                    }
                ]
            },
            {
                "file": "/srv/www/htdocs/zabbix/api/rpc/class.czbxrpc.php",
                "line": 72,
                "function": "callAPI",
                "class": "czbxrpc",
                "type": "::",
                "args": [
                    "proxy.delete",
                    {
                        "proxyid": [
                            "10278"
                        ]
                    }
                ]
            },
            {
                "file": "/srv/www/htdocs/zabbix/api/rpc/class.cjsonrpc.php",
                "line": 71,
                "function": "call",
                "class": "czbxrpc",
                "type": "::",
                "args": [
                    "proxy.delete",
                    {
                        "proxyid": [
                            "10278"
                        ]
                    },
                    "ab9638041ec6922cb14b07982b268f47"
                ]
            },
            {
                "file": "/srv/www/htdocs/zabbix/api_jsonrpc.php",
                "line": 54,
                "function": "execute",
                "class": "CJSONrpc",
                "type": "->",
                "args": []
            }
        ]
    },
    "id": 1
}
Comment by richlv [ 2013 Jan 07 ]

as paavels noted, square brackets for proxyid are not needed. nevertheless, we should not get an sql error

Comment by Pavels Jelisejevs (Inactive) [ 2013 Jan 15 ]

This will be fixed under ZBX-6126.





[ZBX-6066] proxy.create can create hosts with empty names Created: 2013 Jan 07  Updated: 2017 May 30  Resolved: 2015 Apr 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

2.0 branch rev 32496


Issue Links:
Duplicate
duplicates ZBX-6771 Proxy Frontend/API - difference logic Closed

 Description   
{"jsonrpc": "2.0","method":"proxy.create","params":{"host":"activeproxy2"},"auth":"ab9638041ec6922cb14b07982b268f47","id":1}

this does not create an active proxy... instead a host is created with empty name. it is also possible to create several hosts like that



 Comments   
Comment by richlv [ 2013 Jan 07 ]

type should default to active proxy. after fixing "required" should be removed from https://www.zabbix.com/documentation/2.0/manual/appendix/api/proxy/definitions

Comment by Alexander Vladishev [ 2015 Apr 10 ]

I close the issue as duplicate of ZBX-6771.





[ZBX-6036] Zabbix proxy can start if DB is down or corrupted Created: 2012 Dec 28  Updated: 2023 Apr 07  Resolved: 2015 Mar 26

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.8.15, 2.0.4
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: database, heartbeat, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Proxy process can start if DB is down or corrupted at this moment.

However, proxy cannot send DB down alert and send heartbeat message even if it doesn't work correctly. It's bit hard to know proxy is working correctly or not from frontend.

I think it's better not to start proxy or not to send heartbeat message to Zabbix server if DB is down or corrupted.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Dec 28 ]

We have similar issue for zabbix server - ZBX-4611

Comment by Alexey Pustovalov [ 2015 Mar 25 ]

Zabbix can check sqlite3 database integrity using:

pragma integrity_check;

http://www.sqlite.org/pragma.html#pragma_integrity_check

This pragma does an integrity check of the entire database. The integrity_check pragma looks for out-of-order records, missing pages, malformed records, missing index entries, and UNIQUE and NOT NULL constraint errors. If the integrity_check pragma finds problems, strings are returned (as multiple rows with a single column per row) which describe the problems. Pragma integrity_check will return at most N errors before the analysis quits, with N defaulting to 100. If pragma integrity_check finds no errors, a single row with the value 'ok' is returned.

For example:

echo "asdasdasdasdad" > /tmp/test.db
root@ubuntu:/usr/share/zabbix# sqlite3 /tmp/test.db 
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma integrity_check;
Error: file is encrypted or is not a database
sqlite> 
Comment by Alexander Vladishev [ 2015 Mar 26 ]

I close the issue as "Won't fix".

The database integrity should be checked outside Zabbix because it can be very slow operation. This can be checked by native database tools.

Comment by Chris Christensen [ 2015 Mar 26 ]

@sasha we had an issue specifically with corrupt proxy DBs (sqlite) yet all proxy checks (check-in time, running processes) were valid. One addition we added was:

{zabbix-proxy1.example.com:vfs.file.time[/path/to/zabbix_proxy.db].fuzzytime(7200)}=0

Given that the proxies work well with SQLite DB's (store-and-forward) it seems prudent to at least document how to perform this check out-of-band, as this is a bad failure case.

What's the recommended takeaway? An init.d script, additional custom userparam, ...? A built-in integrity check still seems the most optimal.

Comment by Alexander Vladishev [ 2015 Apr 09 ]

I think the best solution is a custom script because built-in check:

  • will work only with SQLite3 database (other databases should be checked by other way)
  • it can significantly increase Zabbix proxy startup time. For example on Raspberry PI:
    $ ls -lh sqlite3.db 
    -rw-r--r-- 1 pi pi 242M Apr  9 07:53 sqlite3.db
    
    $ time echo 'pragma integrity_check;' | sqlite3 sqlite3.db 
    ok
    
    real	4m55.227s
    user	4m44.690s
    sys	0m9.750s
    
    $ cat /etc/issue
    Raspbian GNU/Linux 7 \n \l
    

zalex_ua I asked Sasha and he said that he did the test on Raspberry PI 1, not 2nd gen. Regular SD card was used.

Comment by Oleksii Zagorskyi [ 2015 Aug 21 ]

What interesting detail is that such problem was discovered already 3 times (on different production installations) and in all cases for the same table "proxy_history".
ADDED: later, noted below, +2 such cases for other productions.

Errors in log files were like:

... Database is down. Retrying in 10 seconds.
... [Z3005] query failed: [0] database disk image is malformed [delete from proxy_history where id<64678908 and (clock<1355446567 or (id<=64211429 and clock<1353440509))]

This table probably gets most of writes/deletes and that's not surprised that it has more chances to become corrupted.

In one case those errors appeared in log right after proxy start (but it was able to start, including heartbeat sender !) and 2nd case - I don't know exactly, but also when proxy was running.

If you for example will create zero-byte db file, then proxy will stop immediately during start:

9112:20150821:163938.256 using configuration file: /zab/bin/2.4/zabbix_proxy.conf
9112:20150821:163938.258 [Z3005] query failed: [0] no such table: users [select userid from users limit 1] 
9112:20150821:163938.258 cannot use database "/zab/bin/2.4/zabbix_proxy2.4.db": database is not a Zabbix database

Interesting test is - the zero-byte file may appear for example if delete the db file with running proxy - then the running proxy "re-creates" the zero-byte file and keeps running (of course incorrectly and logging errors to log file).
But after restart - it will stop immediately.

Another test. When proxy is running, fill db by a garbage:

# echo "garbage" > zabbix_proxy.db

then in log:

9871:20150821:183508.804 [Z3005] query failed: [0] attempt to write a readonly database [update hosts set snmp_disable_until=1440171323,snmp_error='Timeout while connecting to "10.10.10.10:161".' where hostid=10
147]                                                                                                                                                                                                                 
9863:20150821:183519.286 received configuration data from server, datalen 3326

or

10069:20150821:184445.575 [Z3005] query failed: [0] file is encrypted or is not a database [select hostid,available,error,snmp_available,snmp_error,ipmi_available,ipmi_error,jmx_available,jmx_error from hosts whe
re status in (0,1) order by hostid asc]                                                                                                                                                                              
 10069:20150821:184445.576 [Z3005] query failed: [0] file is encrypted or is not a database [pragma synchronous=0]                                                                                                   
 10069:20150821:184445.577 database is down: reconnecting in 10 seconds                                                                                                                                              
 10087:20150821:184450.111 [Z3005] query failed: [0] file is encrypted or is not a database [insert into proxy_history (itemid,clock,ns,value,state) values (30657,1440171887,515867826,'Invalid second parameter.',1
);                                                                                                                                                                                                                   
]

but heartbeat message sender still keeps sending messages to server ....

When db is correct:

# ps aux | grep zabbix_proxy | grep ing
zabbix   10068  0.0  0.0 161412  3324 ?        S    18:41   0:00 ./zabbix_proxy2.4: heartbeat sender [sending heartbeat message success in 0.012326 sec, idle 60 sec]
zabbix   10076  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix   10077  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix   10078  0.0  0.0 161412  4184 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix   10079  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix   10080  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix   10081  0.0  0.0 161756  3324 ?        S    18:41   0:00 ./zabbix_proxy2.4: icmp pinger #1 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix   10089  0.0  0.0 161412  3276 ?        S    18:41   0:00 ./zabbix_proxy2.4: self-monitoring [processed data in 0.000016 sec, idle 1 sec]

When db is filled by garbage:

# ps aux | grep zabbix_proxy | grep ing
zabbix   10067  0.0  0.0 161624  6320 ?        S    18:41   0:00 ./zabbix_proxy2.4: configuration syncer [loading configuration]
zabbix   10068  0.0  0.0 161412  3324 ?        S    18:41   0:00 ./zabbix_proxy2.4: heartbeat sender [sending heartbeat message success in 0.007459 sec, idle 60 sec]
zabbix   10069  0.0  0.0 161412  5688 ?        S    18:41   0:00 ./zabbix_proxy2.4: data sender [sent 0 values in 0.001968 sec, sending data]
zabbix   10075  0.1  0.1 175372 17036 ?        S    18:41   0:00 ./zabbix_proxy2.4: unreachable poller #1 [got 0 values in 0.000005 sec, getting values]
zabbix   10076  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix   10077  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix   10078  0.0  0.0 161412  4184 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix   10079  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix   10080  0.0  0.0 161412  4208 ?        S    18:41   0:00 ./zabbix_proxy2.4: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix   10081  0.0  0.0 161756  3324 ?        S    18:41   0:00 ./zabbix_proxy2.4: icmp pinger #1 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix   10083  0.0  0.0 161412  4136 ?        S    18:41   0:00 ./zabbix_proxy2.4: http poller #1 [got 0 values in 0.000701 sec, getting values]
zabbix   10084  0.1  0.1 174856 16656 ?        S    18:41   0:00 ./zabbix_proxy2.4: discoverer #1 [processed 0 rules in 0.000306 sec, performing discovery]
zabbix   10085  0.0  0.0 161412  4140 ?        S    18:41   0:00 ./zabbix_proxy2.4: history syncer #1 [synced 0 items in 0.000002 sec, syncing history]
zabbix   10087  0.0  0.0 161440  5656 ?        S    18:41   0:00 ./zabbix_proxy2.4: history syncer #3 [synced 0 items in 0.000002 sec, syncing history]
zabbix   10088  0.0  0.0 161412  4140 ?        S    18:41   0:00 ./zabbix_proxy2.4: history syncer #4 [synced 0 items in 0.000002 sec, syncing history]
zabbix   10089  0.0  0.0 161412  3276 ?        S    18:41   0:00 ./zabbix_proxy2.4: self-monitoring [processed data in 0.000004 sec, idle 1 sec]
Comment by Oleksii Zagorskyi [ 2015 Aug 24 ]

Not sure, but still ...
Taking into account previous comment if we would have such malformed db file - we could try to check what we will get for, for example:

SELECT * FROM proxy_history LIMIT 1;

of the malformed file.

Here is just a quick test:
on a zero-byte, or garbage filled db file:

# echo "SELECT * FROM proxy_history LIMIT 1;" | sqlite3 zabbix_proxy2.4.db 2>/dev/null; echo $?
1

on an fresh, correct zabbix db file:

# echo "SELECT * FROM proxy_history LIMIT 1;" | sqlite3 zabbix_proxy2.4-good.db 2>/dev/null; echo $?
0

Such test is very simple and supposedly should not take a lot of time in any case, i.e. could be integrated to init.d script if we would be sure that it's effective.

Comment by Oleksii Zagorskyi [ 2015 Aug 31 ]

I've got such corrupted db file from a production zabbix proxy (v 2.2).
It's not so big, just 9 MB size.

Some tests on it:

# echo "SELECT * FROM proxy_history LIMIT 63;" | sqlite3 zabbix_proxy.db > /dev/null
# echo $?
0

# echo "SELECT count(*) FROM proxy_history;" | sqlite3 zabbix_proxy.db > /dev/null
Error: near line 1: database disk image is malformed
# echo $?
1

I was able to select up to 63 rows limit without errors.

Proxy log file with this db file looks like:

 30737:20150831:145920.377 Starting Zabbix Proxy (active) [first_test_proxy]. Zabbix 2.2.11rc1 (revision 55263).
 30737:20150831:145920.377 **** Enabled features ****
 30737:20150831:145920.377 SNMP monitoring:       YES
 30737:20150831:145920.377 IPMI monitoring:       YES
 30737:20150831:145920.377 WEB monitoring:        YES
 30737:20150831:145920.377 VMware monitoring:     YES
 30737:20150831:145920.377 ODBC:                  YES
 30737:20150831:145920.377 SSH2 support:          YES
 30737:20150831:145920.377 IPv6 support:          YES
 30737:20150831:145920.377 **************************
 30737:20150831:145920.377 using configuration file: /zab/bin/2.2/zabbix_proxy.conf
 30737:20150831:145920.383 current database version (mandatory/optional): 02020000/02020001
 30737:20150831:145920.383 required mandatory version: 02020000
 30738:20150831:145920.389 proxy #1 started [configuration syncer #1]
 30739:20150831:145920.389 proxy #2 started [heartbeat sender #1]
 30740:20150831:145920.390 proxy #3 started [data sender #1]
 30749:20150831:145920.397 proxy #12 started [trapper #3]
 30752:20150831:145920.398 proxy #15 started [icmp pinger #1]
 30737:20150831:145920.398 proxy #0 started [main process]
 30750:20150831:145920.401 proxy #13 started [trapper #4]
 30754:20150831:145920.402 proxy #17 started [http poller #1]
 30747:20150831:145920.402 proxy #10 started [trapper #1]
 30751:20150831:145920.402 proxy #14 started [trapper #5]
 30756:20150831:145920.403 proxy #19 started [history syncer #1]
 30760:20150831:145920.404 proxy #23 started [self-monitoring #1]
 30753:20150831:145920.407 proxy #16 started [housekeeper #1]
 30753:20150831:145920.407 executing housekeeper
 30757:20150831:145920.411 proxy #20 started [history syncer #2]
 30759:20150831:145920.411 proxy #22 started [history syncer #4]
 30748:20150831:145920.422 proxy #11 started [trapper #2]
 30758:20150831:145920.426 proxy #21 started [history syncer #3]
 30738:20150831:145920.429 received configuration data from server, datalen 3201
 30753:20150831:145920.469 [Z3005] query failed: [0] database disk image is malformed [select max(id) from proxy_history]
 30744:20150831:145920.924 proxy #7 started [poller #4]
 30746:20150831:145920.952 proxy #9 started [unreachable poller #1]
 30743:20150831:145920.987 proxy #6 started [poller #3]
 30742:20150831:145920.990 proxy #5 started [poller #2]
 30755:20150831:145921.017 proxy #18 started [discoverer #1]
 30745:20150831:145921.019 proxy #8 started [poller #5]
 30741:20150831:145921.025 proxy #4 started [poller #1]

note above a failed query "select max(id) from proxy_history".
Zabbix proxy, obviously, could not start to operate normally, but the "heartbeat" is working:

# ps aux | grep zabbix_proxy | grep ing
zabbix   30738  0.0  0.0 161636  5684 ?        S    14:59   0:00 ./zabbix_proxy2.2: configuration syncer [loading configuration]
zabbix   30739  0.0  0.0 161424  3308 ?        S    14:59   0:00 ./zabbix_proxy2.2: heartbeat sender [sending heartbeat message success in 0.017676 sec, idle 60 sec]
zabbix   30740  0.0  0.0 161424  4144 ?        S    14:59   0:00 ./zabbix_proxy2.2: data sender [sent 0 values in 0.000000 sec, sending data]
zabbix   30741  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: poller #1 [connecting to the database]
zabbix   30742  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: poller #2 [connecting to the database]
zabbix   30743  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: poller #3 [connecting to the database]
zabbix   30744  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: poller #4 [connecting to the database]
zabbix   30745  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: poller #5 [connecting to the database]
zabbix   30746  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: unreachable poller #1 [connecting to the database]
zabbix   30747  0.0  0.0 161424  4204 ?        S    14:59   0:00 ./zabbix_proxy2.2: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix   30748  0.0  0.0 161424  4204 ?        S    14:59   0:00 ./zabbix_proxy2.2: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix   30749  0.0  0.0 161424  4204 ?        S    14:59   0:00 ./zabbix_proxy2.2: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix   30750  0.0  0.0 161424  4204 ?        S    14:59   0:00 ./zabbix_proxy2.2: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix   30751  0.0  0.0 161424  4204 ?        S    14:59   0:00 ./zabbix_proxy2.2: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix   30752  0.0  0.0 161744  3304 ?        S    14:59   0:00 ./zabbix_proxy2.2: icmp pinger #1 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix   30753  0.0  0.0 161424  4332 ?        S    14:59   0:00 ./zabbix_proxy2.2: housekeeper [removing old history]
zabbix   30754  0.0  0.0 161424  4140 ?        S    14:59   0:00 ./zabbix_proxy2.2: http poller #1 [got 0 values in 0.000000 sec, getting values]
zabbix   30755  0.2  0.1 174412 15408 ?        S    14:59   0:00 ./zabbix_proxy2.2: discoverer #1 [connecting to the database]
zabbix   30760  0.0  0.0 161424  3308 ?        S    14:59   0:00 ./zabbix_proxy2.2: self-monitoring [processed data in 0.000007 sec, idle 1 sec]

So according this case, we would need to scan the table completely to make sure it's readable.
At least it should be (supposedly) faster than "pragma integrity_check;" and could be (theoretically) acceptable as for init script.

Let's check by "pragma integrity_check":

# time echo 'pragma integrity_check;' | sqlite3 zabbix_proxy.db 
*** in database main ***
Fragmentation of 352 bytes reported as 0 on page 8885
On tree page 8873 cell 57: Extends off end of page
On tree page 353 cell 63: Rowid 11 out of order
On tree page 8850 cell 63: Extends off end of page
On tree page 353 cell 62: Rowid 11268148 out of order
On tree page 7749 cell 6: Rowid 11565396 out of order
On tree page 353 cell 60: Child page depth differs
On tree page 7219 cell 7: Rowid 11567553 out of order
On tree page 7081 cell 7: Rowid 11569566 out of order
On tree page 7218 cell 6: Rowid 11572396 out of order
On tree page 7135 cell 9: Rowid 11569666 out of order
On tree page 7163 cell 8: Rowid 11569310 out of order
On tree page 7221 cell 11: Rowid 11569536 out of order
On tree page 7211 cell 6: Rowid 11569367 out of order
On tree page 7217 cell 6: Rowid 11569446 out of order
On tree page 353 cell 58: Child page depth differs
On tree page 7249 cell 8: Rowid 11569516 out of order
On tree page 7147 cell 7: Rowid 11569500 out of order
On tree page 7128 cell 8: Rowid 11569582 out of order
On tree page 7122 cell 6: Rowid 11571233 out of order
On tree page 353 cell 57: Child page depth differs
On tree page 353 cell 56: Child page depth differs
On tree page 353 cell 55: Child page depth differs
Page 7245: btreeInitPage() returns error code 11
On tree page 353 cell 54: Child page depth differs
Page 7381: btreeInitPage() returns error code 11
Page 7082: btreeInitPage() returns error code 11
On tree page 353 cell 52: Child page depth differs
On tree page 7330 cell 6: Rowid 11551050 out of order
On tree page 353 cell 51: Child page depth differs
Page 8879: btreeInitPage() returns error code 11
Page 8878: btreeInitPage() returns error code 11
On tree page 8877 cell 21: 2nd reference to page 546
On tree page 8877 cell 88: Rowid 11524755 out of order
On tree page 8877 cell 88: 2nd reference to page 1300
On tree page 8877 cell 87: 2nd reference to page 5746
On tree page 8877 cell 86: 2nd reference to page 5519
On tree page 8877 cell 85: 2nd reference to page 1101
On tree page 8877 cell 84: 2nd reference to page 2392
On tree page 8877 cell 83: 2nd reference to page 1450
On tree page 8877 cell 82: 2nd reference to page 5299
On tree page 8877 cell 81: 2nd reference to page 4654
On tree page 8877 cell 80: 2nd reference to page 4740
On tree page 8877 cell 79: 2nd reference to page 2981
On tree page 8877 cell 78: 2nd reference to page 725
On tree page 8877 cell 77: 2nd reference to page 1625
On tree page 8877 cell 76: 2nd reference to page 5415
On tree page 8877 cell 75: 2nd reference to page 3401
On tree page 8877 cell 74: 2nd reference to page 1790
On tree page 8877 cell 73: 2nd reference to page 7068
On tree page 8877 cell 72: 2nd reference to page 4253
On tree page 8877 cell 71: 2nd reference to page 2432
On tree page 8877 cell 70: 2nd reference to page 1059
On tree page 8877 cell 69: 2nd reference to page 3466
On tree page 8877 cell 68: 2nd reference to page 4501
On tree page 8877 cell 67: 2nd reference to page 6212
On tree page 8877 cell 66: 2nd reference to page 1700
On tree page 8877 cell 65: 2nd reference to page 2782
On tree page 8877 cell 64: 2nd reference to page 6729
On tree page 8877 cell 63: 2nd reference to page 5414
On tree page 8877 cell 62: 2nd reference to page 2192
On tree page 8877 cell 61: 2nd reference to page 6384
On tree page 8877 cell 60: 2nd reference to page 6576
On tree page 8877 cell 59: 2nd reference to page 850
On tree page 8877 cell 58: 2nd reference to page 2530
On tree page 8877 cell 57: 2nd reference to page 745
On tree page 8877 cell 56: 2nd reference to page 6440
On tree page 8877 cell 55: 2nd reference to page 837
On tree page 8877 cell 54: 2nd reference to page 1367
On tree page 8877 cell 53: 2nd reference to page 1724
On tree page 8877 cell 52: 2nd reference to page 6743
On tree page 8877 cell 51: 2nd reference to page 3566
On tree page 8877 cell 50: 2nd reference to page 2372
On tree page 8877 cell 49: 2nd reference to page 6076
On tree page 8877 cell 48: 2nd reference to page 2484
On tree page 8877 cell 47: 2nd reference to page 6342
On tree page 8877 cell 46: 2nd reference to page 1580
On tree page 8877 cell 45: 2nd reference to page 6455
On tree page 8877 cell 44: 2nd reference to page 1221
On tree page 8877 cell 43: 2nd reference to page 7699
On tree page 8877 cell 42: 2nd reference to page 1961
On tree page 8877 cell 41: 2nd reference to page 3101
On tree page 8877 cell 40: 2nd reference to page 6621
On tree page 8877 cell 39: 2nd reference to page 3492
On tree page 8877 cell 38: 2nd reference to page 612
On tree page 8877 cell 37: 2nd reference to page 6964
On tree page 8877 cell 36: 2nd reference to page 492
On tree page 8877 cell 35: 2nd reference to page 7377
On tree page 8877 cell 34: 2nd reference to page 1965
On tree page 8877 cell 33: 2nd reference to page 3658
On tree page 8877 cell 32: 2nd reference to page 6011
On tree page 8877 cell 31: 2nd reference to page 512
On tree page 8877 cell 30: 2nd reference to page 858
On tree page 8877 cell 29: 2nd reference to page 6584
On tree page 8877 cell 28: 2nd reference to page 7045
On tree page 8877 cell 27: 2nd reference to page 7262
On tree page 8877 cell 26: 2nd reference to page 5925
On tree page 8877 cell 25: 2nd reference to page 4554
On tree page 8877 cell 24: 2nd reference to page 1675
On tree page 8877 cell 23: 2nd reference to page 5705

real    0m0.013s
user    0m0.004s
sys     0m0.004s
# echo 'pragma integrity_check;' | sqlite3 zabbix_proxy.db > /dev/null
# echo $?
0

note that the exit code is 0, so in initscripts a STDOUT should be checked for a single-line "ok" text only.

On a clean DB file we get the same exit code 0:

# echo 'pragma integrity_check;' | sqlite3 zabbix_proxy_clean.db
ok
# echo $?
0

Conclusion, IMO:
In init scripts I'd go with echo "SELECT count (*) FROM proxy_history;" | sqlite3 zabbix_proxy.db &> /dev/null and checking exitcode.
If the exitcode is 1 - then delete the db file.

hmm, interesting thing is exitcode when getting the result in different ways, be careful:

# echo "SELECT count(*) FROM proxy_history;" | sqlite3 zabbix_proxy.db &> /dev/null; echo $?
1
# sqlite3 zabbix_proxy.db "SELECT count(*) FROM proxy_history;" &> /dev/null; echo $?
11

# echo "SELECT count(*) FROM proxy_history;" | sqlite3 zabbix_proxy.db; echo $?
Error: near line 1: database disk image is malformed
1
# sqlite3 zabbix_proxy.db "SELECT count(*) FROM proxy_history;"; echo $?
Error: database disk image is malformed
11

and with manually corrupted db:

# echo "garbage" > garbage.db
# echo "SELECT count(*) FROM proxy_history;" | sqlite3 garbage.db; echo $?
Error: near line 1: file is encrypted or is not a database
1
# sqlite3 garbage.db "SELECT count(*) FROM proxy_history;"; echo $?
Error: file is encrypted or is not a database
26

# echo "" > garbage.db
# echo "SELECT count(*) FROM proxy_history;" | sqlite3 garbage.db; echo $?
Error: near line 1: no such table: proxy_history
1
# sqlite3 garbage.db "SELECT count(*) FROM proxy_history;"; echo $?
Error: no such table: proxy_history
1
Comment by Oleksii Zagorskyi [ 2016 Mar 22 ]

Another corrupted database case from production:

# sqlite3 sqlite.zabbix_proxy.db "SELECT count(*) FROM proxy_history;"; echo $?
Error: database disk image is malformed
11

# echo "SELECT count(*) FROM proxy_history;" | sqlite3 sqlite.zabbix_proxy.db; echo $?
Error: near line 1: database disk image is malformed
1
Comment by Oleksii Zagorskyi [ 2017 Jan 14 ]

One more case from a production:

24638:20170104:010930.002 [Z3005] query failed: [0] database disk image is malformed [delete from proxy_history where id<2913563192 and (clock<1483319366 or (id<=2913556555 and clock<1483492166))]
24485:20170104:033953.371 [Z3005] query failed: [0] database disk image is malformed [insert into proxy_history (itemid,clock,ns,value) values (891319,1483490199,910633193,'xxx');
12102:20170111:181524.589 [Z3005] query failed: [0] database disk image is malformed [delete from proxy_history where id<2913563192 and (clock<1483985722 or (id<=2913556555 and clock<1483553957))]

looks like happened during the proxy operation, but again, with the "proxy_history" table.
If during proxy (re)start and checking the table we would remove the db file automatically - that would be user friendly enough.

Comment by Tony den Haan [ 2023 Apr 07 ]

I spotted "query failed: [0] database disk image is malformed" after which proxy happily went on burning electrons. Shouldn't it log and then quit on such critical error?





[ZBX-5731] No data trigger going off even though data received sooner. Created: 2012 Oct 24  Updated: 2017 May 30  Resolved: 2013 Jul 23

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.0.2
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Mikhail Dobrinin Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: event, proxy, server, trigger
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Server appliance, proxy running on Ubuntu 12.04


Attachments: JPEG File Trigger Events.jpg    

 Description   

Host monitored by JMX through active proxy.
Two items:
jmx[java.lang:type=Runtime,Uptime] stored AS-IS checked 5m
jmx["java.lang:type=Runtime","Uptime"] stored DELTA SIMPLE CHANGE checked 30s

Active proxy forwards data to server every 30s:

28446:20121023:132855.568
In send_data_to_server ...
28446:20121023:132925.833
In send_data_to_server ...

Server is receiving data every 30s. A view of the Latest Data page:

2012.Oct.23 15:44:39	30077
2012.Oct.23 15:44:09	30150
2012.Oct.23 15:43:39	30034
2012.Oct.23 15:43:09	30078
2012.Oct.23 15:42:39	29926
2012.Oct.23 15:42:10	29225
2012.Oct.23 15:41:40	30082
2012.Oct.23 15:41:10	30082
2012.Oct.23 15:40:40	30089
2012.Oct.23 15:40:10	30190
2012.Oct.23 15:39:40	30018

The trigger:

{HOSTNAME} is not reachable - {JMX Generic:jmx["java.lang:type=Runtime","Uptime"].nodata(45)}=1

Trigger is going off:

23 Oct 2012 15:44:09	ProxyJMXTest is not reachable	OK	High	51s	No
23 Oct 2012 15:43:00	ProxyJMXTest is not reachable	PROBLEM	High	1m 9s	No	
23 Oct 2012 15:42:10	ProxyJMXTest is not reachable	OK	High	50s	No	
23 Oct 2012 15:42:31	ProxyJMXTest is not reachable	PROBLEM	High	21s	No	
23 Oct 2012 15:41:40	ProxyJMXTest is not reachable	OK	High	51s	No	
23 Oct 2012 15:42:00	ProxyJMXTest is not reachable	PROBLEM	High	20s	No	
23 Oct 2012 15:41:10	ProxyJMXTest is not reachable	OK	High	50s	No	
23 Oct 2012 15:41:30	ProxyJMXTest is not reachable	PROBLEM	High	20s	No	
23 Oct 2012 15:40:40	ProxyJMXTest is not reachable	OK	High	50s	No	
23 Oct 2012 15:41:00	ProxyJMXTest is not reachable	PROBLEM	High	20s	No	
23 Oct 2012 15:40:10	ProxyJMXTest is not reachable	OK	High	50s	No	
23 Oct 2012 15:40:30	ProxyJMXTest is not reachable	PROBLEM	High	20s	No	
23 Oct 2012 15:39:40	ProxyJMXTest is not reachable	OK	High	50s	No	
23 Oct 2012 15:40:00	ProxyJMXTest is not reachable	PROBLEM	High	20s	No	
23 Oct 2012 15:39:09	ProxyJMXTest is not reachable	OK	High	51s	No	
23 Oct 2012 15:39:30	ProxyJMXTest is not reachable	PROBLEM	High	21s	No

Trigger appears to be unstable. Sometimes it is in OK state for a while:

24 Oct 2012 11:29:41	ProxyJMXTest is not reachable		High	10m 38s	No	
-4 Oct 2012 10:29:00	ProxyJMXTest is not reachable	PROBLEM	High	1h 41s	No	
24 Oct 2012 10:28:11	ProxyJMXTest is not reachable	OK	High	49s	No	
24 Oct 2012 10:28:30	ProxyJMXTest is not reachable	PROBLEM	High	19s	No	
24 Oct 2012 10:27:41	ProxyJMXTest is not reachable	OK	High	49s	No


 Comments   
Comment by Mikhail Dobrinin [ 2012 Oct 24 ]

The last part should be:

 
24 Oct 2012 12:50:30	ProxyJMXTest is not reachable		High	19s	No	
24 Oct 2012 12:49:41	ProxyJMXTest is not reachable		High	49s	No	
24 Oct 2012 12:50:00	ProxyJMXTest is not reachable		High	19s	No	
24 Oct 2012 12:49:11	ProxyJMXTest is not reachable		High	49s	No	
24 Oct 2012 12:49:30	ProxyJMXTest is not reachable		High	19s	No	
24 Oct 2012 12:48:41	ProxyJMXTest is not reachable		High	49s	No	
24 Oct 2012 12:49:00	ProxyJMXTest is not reachable		High	19s	No	
24 Oct 2012 11:29:41	ProxyJMXTest is not reachable	OK	High	1h 19m 19s	No	
24 Oct 2012 10:29:00	ProxyJMXTest is not reachable	PROBLEM	High	1h 41s	No<<<<<Machine went off the network
Comment by Mikhail Dobrinin [ 2012 Oct 24 ]

The number of items does not affect the problem from arising. I originally included that information because before further investigation I thought that may have contributed to the problem. With one item polled every 30 seconds there is still the trigger event going off:

24 Oct 2012 13:36:30	ProxyJMXTest is not reachable		High	20s	No	
24 Oct 2012 13:35:40	ProxyJMXTest is not reachable		High	50s	No	
24 Oct 2012 13:36:00	ProxyJMXTest is not reachable		High	20s	No	
24 Oct 2012 13:35:10	ProxyJMXTest is not reachable		High	50s	No	
24 Oct 2012 13:35:30	ProxyJMXTest is not reachable		High	20s	No	
24 Oct 2012 13:34:40	ProxyJMXTest is not reachable		High	50s	No	
Comment by richlv [ 2012 Oct 25 ]

why send data every 30 seconds only ? default is one second...

most likely proxy is unable to transmit all collected data quickly/timely enough, and it arrives in server with a delay.

the timestamps you see for item values are assigned on the proxy, they are not indicating when server received the values.

i'd suggest reducing the data sending interval to 1, 5 or even 10 seconds and seeing whether the problem goes away.

Comment by Mikhail Dobrinin [ 2012 Oct 25 ]

Indeed that solves the problem. However, even when the rate is 30 seconds, it appears that the proxy transmits the data just fine. I've tested it with a single host monitored with a single item and the problem exists.

Comment by richlv [ 2012 Oct 25 ]

is that a single host with single item on a single proxy, and the only thing monitored by a server ?

Comment by Alexei Vladishev [ 2013 Jul 23 ]

I am closing it for now, feel free to reopen in case of any news.





[ZBX-5485] Macro {HOST.NAME} does not work in external check params Created: 2012 Aug 23  Updated: 2017 May 30  Resolved: 2012 Aug 23

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.3, 2.1.0
Fix Version/s: 2.0.3rc1, 2.1.0

Type: Incident report Priority: Minor
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: macros, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Macro

{HOST.NAME}

does not work in external check params when host is monitored by proxy. It is empty.



 Comments   
Comment by Alexey Pustovalov [ 2012 Aug 23 ]
{HOSTNAME}

macro works.

Comment by Alexey Pustovalov [ 2012 Aug 23 ]

HOST.NAME expands when visible name does not filled, but

{HOST.NAME}

macro is visible name only!
Zabbix server expands this macro, but proxy does not.

Comment by Oleksii Zagorskyi [ 2012 Aug 23 ]

Probably will be closed as duplicate of ZBX-5329 with identical explanation

Comment by richlv [ 2012 Aug 23 ]

manual explicitly says that HOST.NAME is supported in "Item key's parameters"

Comment by Alexander Vladishev [ 2012 Aug 23 ]

The problem is that we don't send the host.name server on a proxy. It a very simple fix.

Comment by Alexander Vladishev [ 2012 Aug 23 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-5485.

Comment by dimir [ 2012 Aug 23 ]

Successfully tested.

Comment by Alexander Vladishev [ 2012 Aug 23 ]

Fixed in pre-2.0.3rc1 r29802 and pre-2.1.0 (trunk) r29803.

Comment by Alexander Vladishev [ 2012 Aug 23 ]

This fix affects only the server side.





[ZBX-5311] deleting a proxy which is used in a discovery rule generates SQL error Created: 2012 Jul 11  Updated: 2017 May 30  Resolved: 2012 Jul 16

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 2.0.2rc1
Fix Version/s: 2.0.2rc1, 2.1.0

Type: Incident report Priority: Major
Reporter: Oleksii Zagorskyi Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, sql
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

trunk rev 28795


Issue Links:
Duplicate

 Description   

Set "Discovery by proxy" to a proxy and try to delete the proxy:

You will see an error:

Error in query [DELETE FROM hosts WHERE (hostid IN ('10109')) ] [Cannot delete or update a parent row: a foreign key constraint fails (`zabbix`.`drules`, CONSTRAINT `c_drules_1` FOREIGN KEY (`proxy_hostid`) REFERENCES `hosts` (`hostid`))]
SQL statement execution has failed "DELETE FROM hosts WHERE (hostid IN ('10109')) " [CProxy.delete -> DB.delete]



 Comments   
Comment by Toms (Inactive) [ 2012 Jul 13 ]

Fixed in dev. branch: svn://svn.zabbix.com/branches/dev/ZBX-5311

Comment by Alexey Fukalov [ 2012 Jul 13 ]

(1)
Please review my changes in rev. 28856

<Toms> to big changes.

<Vedmak> All changes are related only to current bug.

<pavels> CLOSED.

Comment by Toms (Inactive) [ 2012 Jul 13 ]

(2) comment "cannot delete proxy if it is used in host" proxies are not used in hosts, rather hosts are assigned to proxies

<Vedmak> RESOLVED

<pavels> I've corrected the error messages a bit, please review r28945.

<Vedmak> CLOSED

Comment by Toms (Inactive) [ 2012 Jul 13 ]

(3) now CProxy.php it is really not clear when else in line 309 should happen

<Vedmak> It's almost same as before. To make it better there are needed 'big changes' but it's not related to this issue. RESOLVED

<pavels> CLOSED.

Comment by Toms (Inactive) [ 2012 Jul 13 ]

(4) With so large changes all 3 checks should be written by those standards which implies here. And also new guidelines should be taken into account. http://zabbix.org/wiki/Docs/specs/coding_style#Input_validation

<Vedmak> RESOLVED for delete action

<pavels> Please review my changes in r28945.

<Vedmak> CLOSED

Comment by Pavels Jelisejevs (Inactive) [ 2012 Jul 17 ]

Please review my changes in r28946 and (2), (4). If everything is ok, you can merge.

TESTED.

Comment by Alexey Fukalov [ 2012 Jul 17 ]

Fixed in pre-2.0.2rc1 r28947, pre-2.1.0rc1 r28948





[ZBX-5149] Proxy doesn't include unsupported items in a list of active checks after 'refresh_unsupported' interval expires Created: 2012 Jun 08  Updated: 2017 May 30  Resolved: 2012 Nov 02

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 2.0.0
Fix Version/s: 2.0.4rc1, 2.1.0

Type: Incident report Priority: Major
Reporter: Sergei Turchanov Assignee: Unassigned
Resolution: Fixed Votes: 2
Labels: active, agent, check, items, proxy, unsupported
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux, x86_64, CentOS


Issue Links:
Duplicate

 Description   

src/zabbix_server/trapper/active.c functions 'send_list_of_active_checks' and 'send_list_of_active_checks_json' supposed to include unsupported items it a list of active checks for a host after CONFIG_REFRESH_UNSUPPORTED interval expires. Relevant lines from SQL query: 'select ... from items where ... or (i.status=%d and i.lastclock+%d<=%d) ...'.

The problem is that .lastclock field of 'items' table is always NULL, i.e. proxy doesn't update .lastclock field when it receives item values from agents.

To check that I deleted proxy database and let proxy create a new empty one. After some period of time I performed query: 'select count from items where lastclock is not NULL' and got '0'.
Work-around for this issue is to manually set .lastclock field to some value in the past, i.e. 0. After that re-enabling of usupported items starts working again.



 Comments   
Comment by Łukasz Jernaś [ 2012 Oct 02 ]

This hit us lately as a serious issue, due to MySQL monitoring getting disabled when the database server is down, for doing backups, etc. Almost all of our hosts are monitored via proxies...

Comment by michael chan [ 2012 Oct 04 ]

Same problem here. Often proxied checks become unsupported due to timeouts, etc. and never get re-enabled. I have to manually every day go in and modify this, which is unacceptable for a monitoring system. And all my checks are done via proxies, since this is best practice.

Comment by Sergei Turchanov [ 2012 Oct 05 ]

Michael, please try my work-around to see if it works for you. Go to database configured for your proxy and execute:

update items set lastclock = 0 where lastclock is NULL;

after that re-enabling of unsupported items should be working again, although you need to execute this statement every time new hosts or items have been added to monitor through that proxy.

Comment by michael chan [ 2012 Oct 05 ]

This does fix the issue - will it cause any issues if the above is done periodically, e.g. done daily via a cronjob?

Comment by Sergei Turchanov [ 2012 Oct 08 ]

It shouldn't cause any issues. Agents periodically ask proxy for a list of active checks. And the above mentioned functions send_list_of_active_checks{,_json} do not include metrics which became unsupported in that list unless sufficient time has passed ("Refresh unsupported items" configuration option - 600 seconds by default). To do so the field lastclock in the table items hold a timestamp when proxy retrieved successfully(?) a metric from an agent. Given that timestamp and current time you can measure the interval after which an unsupported metric must be re-included in a list of active checks.
Something apparently gone wrong with zabbix 2.x series as the lastclock in not updated anymore, so any new items which appear in proxy database now have NULL value assigned to that field. And SQL arithmetics has special treating of NULL value so that 'i.lastclock+%d<=%d' evaluates to 'false'. So if you set lastclock to some value in the past (0 is ok) you short-cut the logic which postpones sending unsupported items so that those items will always be included in a list.

P.S. If you use sqlite for your proxy db backend you may need to implement re-try logic in cronjob because sqlite sometimes report 'Database is locked' when zabbix-proxy updates it at the same time.

Comment by Alexander Vladishev [ 2012 Nov 02 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-5149

Comment by dimir [ 2012 Nov 13 ]

Successfully tested.

We decided to fix it by adding an item's "lastclock" value to the cache. So, the proxy won't still be updating the "lastclock" in the database but instead keep it in the cache. Cached "lastclock" will be also available on the server side.

This is very important fix. Before it, if you had a proxy (any, active or passive) working with an active agent and any of your items would go NOT_SUPPORTED they wouldn't be back from that status ever (unless you e. g. set the "lastclock" to 0 in proxy DB manually or change item status manually etc).

Comment by Alexander Vladishev [ 2012 Nov 21 ]

Fixed in versions pre-2.0.4 r31543 and pre-2.1.0 (trunk) r31547.





[ZBX-4973] Auto registration creates duplicate host interface when switching to proxy monitoring Created: 2012 May 09  Updated: 2022 Aug 16

Status: Open
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: 2.0.0rc3
Fix Version/s: None

Type: Incident report Priority: Trivial
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: autoregistration, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL 5.6 x64

Proxy using SQLite as DB backend


Attachments: PNG File Selection_002.png    
Issue Links:
Duplicate

 Description   

I'm in the process of switching some servers to being monitored by a proxy (instead of the server itself). These servers already exist as hosts in Zabbix (through auto-registration).

When I switched the configuration for the hosts to be monitored by a proxy, they ended up getting a duplicate Zabbix Agent interface added to their profile. If my understanding is correct, this should not happen. The auto-registration process should only add a new interface if it does not already exist.



 Comments   
Comment by Corey Shaw [ 2012 Aug 17 ]

Here are the queries I run on my database after I have switched proxies monitoring hosts to remove the duplicate interfaces that are created. For anyone interested I guess:

-- Remove duplicate interfaces with no monitored items
DROP TEMPORARY TABLE IF EXISTS dupinterface;
DROP TEMPORARY TABLE IF EXISTS deleteThisInterface;
CREATE TEMPORARY TABLE dupinterface SELECT ip, PORT, COUNT(*) AS mycount FROM interface GROUP BY hostid, `port` HAVING mycount>1;
CREATE TEMPORARY TABLE deleteThisInterface SELECT MAX(interface.interfaceid) AS newest_interface FROM interface LEFT JOIN items ON items.`interfaceid`=interface.`interfaceid` INNER JOIN dupinterface ON dupinterface.ip=interface.`ip` AND dupinterface.port=interface.`port` WHERE items.`interfaceid` IS NULL GROUP BY interface.`ip`, interface.`port`;
DELETE interface FROM interface, deleteThisInterface WHERE deleteThisInterface.newest_interface=interface.`interfaceid`;
Comment by Alexander Vladishev [ 2014 Aug 22 ]

Similar issue: ZBX-8612

Comment by Vladislavs Sokurenko [ 2016 Sep 07 ]

Hello corey.shaw,
I am having trouble reproducing the issue, aree you being able to reproduce the issue ?
Maybe you have additional information that you can share please ?
Steps would be excellent if possible.

Comment by Oleksii Zagorskyi [ 2016 Sep 07 ]

Just FYI - I recently performed a test where an active agent was pointed to two zabbix proxies.
Auto-registration action changed the host "monitored by proxy" setting back and forward every ~3 minute, but no new host interfaces were created.

Comment by Vladislavs Sokurenko [ 2016 Sep 07 ]

Thank you for your input Oleksiy, I experience the same, any ideas what could have cause issue described ?

Comment by Oleksii Zagorskyi [ 2016 Sep 07 ]

Vlad, as Affects version is specified 2.0.0rc3, it means it was before ZBXNEXT-1267 (fixed for 2.2.0 stable release), which could be the reason why it was reproducible in the past.
If issue cannot be reproduced currently - it may be closed with appropriate resolution.

p.s. don't use special jira syntax for user names on start of line - it may falsely look like the person you mentioned wrote that , especially if there is a discussion in one comment
See http://zabbix.org/wiki/Docs/specs/development_guidelines#Working_with_an_issue
In such cases I prefer to simply write as text First name/nickname/etc to indicate whom it's dedicated for, like current comment.
To expect - will be the person notified by Jira or not - I check watchers list of issue (need to click on an icon - number of watchers).

Comment by richlv [ 2016 Sep 07 ]

zalex_ua, just enclose usernames in angle brackets to indicate speech like this

<richlv> in this case it is clear who is the author of this sentence

Comment by Corey Shaw [ 2016 Sep 07 ]

I don't have the steps to reproduce this since it was so many years ago. I wouldn't doubt at all that it has already been fixed in newer versions of Zabbix anyway.

Comment by Vladislavs Sokurenko [ 2016 Sep 08 ]

It's hard to tell fore sure without steps and pictures of duplicate interfaces so I can only guess about the issue and reasons.

Here are some clues that are related to each other and maybe are not coincidence.

1. Server code does not allow to add duplicate.
I see in the code that new interface will only be added if:
DNS flag mismatch ( 1 use IP or 0 use DNS )
or
IP address mismatch
or
DNS address mismatch
or
Port mismatch.

Function used is DBadd_interface

2. I see in ZBXNEXT-1267 pictures of duplicate interfaces where DNS flag mismatch

3. It does not matter if you set DNS or IP in agent configuration, when auto registration is performed it always adds DNS flag as use IP
So when user configures use DNS but then auto discovery is performed it will always add duplicate entry.

4. if I am not mistaken in your query you do SELECT MAX(interface.interfaceid) to select use IP, this could be possible that you had Use DNS flag in all your original entries. But I might need to analyze your query a little bit deeper.

So based on those, first of all I would recommend that there wouldn't be difference in configuration between, front end where you can select flag use DNS or use IP, and agent config file where you can't select this flag and it is always use IP.

steps:
1. Configure host without proxy and add flag Use DNS
2. Add proxy where agent uses DNS.

expected:
There are one interface.

Actual:
There are 2 interfaces which are identical, but first one says use DNS while second one says use IP.

Possible fix should be investigated, but could be to update Use DNS entries to our newly discovered use IP instead of adding duplicate.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Feb 10 ]

ZBX-11799 may be related.

Comment by Orion Poplawski [ 2018 Jan 17 ]

This is annoying. I'd like to in general have auto discovery use and track IP addresses. But some machines I'd like to switch to DNS/hostname so that I can change their IP address without having to update zabbix.





[ZBX-4448] Not possible to create Passive proxy Created: 2011 Dec 15  Updated: 2017 May 30  Resolved: 2011 Dec 21

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 1.9.9 (beta), 2.0.0
Fix Version/s: 1.9.9 (beta)

Type: Incident report Priority: Blocker
Reporter: Igor Danoshaites (Inactive) Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, regression, trivial
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File passive_proxy_creation_error.png    

 Description   

When in the "Administration->DM->Proxies" report trying to create Passive proxy appears the following error:

ERROR: Cannot add proxy
Incorrect arguments passed to function [CProxy.create -> CHostInterface.create -> CHostInterface.checkInput]

Please see attached screen shot.

By the way, Active proxy can be created without any problems.



 Comments   
Comment by Igor Danoshaites (Inactive) [ 2011 Dec 15 ]

Trunk rev #24012.

Comment by Pavels Jelisejevs (Inactive) [ 2011 Dec 16 ]

RESOLVED.

Comment by Alexander Vladishev [ 2011 Dec 17 ]

(1) Cannot update a proxy (same error message)
Steps to reproduce:

  • create active proxy
  • open its and change a type to Passive
  • save

<pavels> RESOLVED in 24059.
<Sasha> REOPENED frontends/php/api/classes/class.cproxy.php:385 The interface can be only one. What for here 'foreach'?

<pavels> Right. Anyway, I think I'll fix it a bit differently.

<pavels> RESOLVED.

<Sasha> REOPENED frontends/php/api/classes/class.cproxy.php:403,451 It is necessary to remove and from these places 'foreach'.

<pavels> RESOLVED.
<Sasha> CLOSED

Comment by Alexander Vladishev [ 2011 Dec 19 ]

(2) The interface remains not deleted if we change type to "active"

After that we can't make it passive again:
Host cannot have more than one default interface of the same type. [CProxy.update -> CHostInterface.create ->
CHostInterface.checkMainInterfacesOnCreate -> CHostInterface.checkMainInterfaces]

<pavels> RESOLVED.
<Sasha> REOPENED the active proxy shouldn't have an interface

<pavels> RESOLVED.
<Sasha> CLOSED

Comment by Alexander Vladishev [ 2011 Dec 20 ]

(3) Formatting and coding style:
frontends/php/api/classes/class.chostinterface.php:866 the field 'status' is not used anywhere
frontends/php/include/views/administration.proxy.edit.php:32 unused variable $interfaces
frontends/php/include/views/administration.proxy.edit.php:77:80 formatting

<pavels> RESOLVED.
<Sasha> CLOSED

Comment by Alexander Vladishev [ 2011 Dec 20 ]

(4) The proxy should have a main interface

<pavels> RESOLVED.
<Sasha> CLOSED

Comment by Alexander Vladishev [ 2011 Dec 21 ]

(5) Formatting and coding style:
frontends/php/api/classes/class.cproxy.php:359 'main' not boolean variable; true -> INERFACE_PRIMARY
frontends/php/api/classes/class.cproxy.php:450 in such cases we should use API_OUTPUT_REFER

<pavels> CLOSED.

Comment by Alexander Vladishev [ 2011 Dec 21 ]

Tested successfully. Before merge please fix (5)

Comment by Pavels Jelisejevs (Inactive) [ 2011 Dec 21 ]

Merged to trunk r24139.

CLOSED.





[ZBX-4165] Sqlite database insert failures Created: 2011 Sep 22  Updated: 2017 May 30  Resolved: 2011 Sep 29

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.9.6 (beta)
Fix Version/s: 1.9.7 (beta)

Type: Incident report Priority: Blocker
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, sqlite
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL5 x64
2 CPU and 6 GB RAM



 Description   

I'm running Zabbix 1.9.6 (compiled on my own) on RHEL5. My setup is that I have a main Zabbix server (16 CPU, 64GB RAM) that runs just fine. Along with that I have an active Zabbix proxy server (2CPU, 6GB RAM) that is having issues with its SQLite3 database.

I have a discovery rule for the proxy that is having issues inserting data into the SQLite database. Every time the proxy tries to write to the database the following error shows up in the logs:

[Z3005] query failed: [0] proxy_dhistory.dcheckid may not be NULL [insert into proxy_dhistory (clock,druleid,type,ip,dns,status) values (1316636599,2,-1,'ip.add.xxx.xxx','server.fqdn.com',1)]

I have tried recompiling to account for any oddities that could've showed up, but it didn't make any difference.

Now here's the real kicker: I have this exact same setup in another environment. That other environment works great without any problems. In fact, the scripts I use to do all the compilation/configuring/install were used in both environments. I have compared the configuration in the non-working environment to the working environment and both are identical (with the exception of server names of course).

I have already verified that permissions on the file system were correct for the zabbix user to be able to write to the database. Everything checks out there.



 Comments   
Comment by Corey Shaw [ 2011 Sep 22 ]

I forgot to mention that the proxy has not been upgraded (it is a clean install) and the schema for the sqlite database is the latest as created by the proxy itself.

Comment by Rudolfs Kreicbergs [ 2011 Sep 28 ]

Fixed/available in dev branch: svn://svn.zabbix.com/branches/dev/ZBX-4165

Comment by Aleksandrs Saveljevs [ 2011 Sep 29 ]

Fixed in pre-1.9.7 in r22034.

Corey, please note that in order to install the fix, you have to do "make dbschema", recompile both Zabbix server and Zabbix proxy, and let Zabbix proxy recreate its database from scratch.

Comment by Corey Shaw [ 2011 Oct 03 ]

Awesome! Thanks for the quick fix. I'll give it a test sometime this week. It could be a few days though.

Comment by Aleksandrs Saveljevs [ 2011 Oct 04 ]

Additional fixes to proxy_dhistory upgrade patches available in pre-1.9.7 in r22110.





[ZBX-4073] proxy accepts parameters it does not use Created: 2011 Aug 25  Updated: 2017 May 30  Resolved: 2012 Jan 06

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.8.7rc1
Fix Version/s: 1.8.11, 1.9.9 (beta)

Type: Incident report Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

zabbix proxy seems to accept a few configuration parameters it does not use, notably TrendCacheSize and StartHTTPPollers
. there might be others, for example, i'm not fully sure about CacheUpdateFrequency

additionally, housekeeper/housekeeper.c in proxy claims that " * Purpose: remove outdated information from history and trends", which also seems to be slightly incorrect



 Comments   
Comment by Alexander Vladishev [ 2012 Jan 06 ]

Updated documentation:
http://www.zabbix.com/documentation/1.8/manual/processes/zabbix_proxy?&#configuration_file
http://www.zabbix.com/documentation/2.0/manual/appendix/config/zabbix_proxy

Comment by Alexander Vladishev [ 2012 Jan 06 ]

Fixed in the development branches:
svn://svn.zabbix.com/branches/dev/ZBX-4073
svn://svn.zabbix.com/branches/dev/ZBX-4073-TRUNK

Comment by dimir [ 2012 Jan 10 ]

Tested, please review my changes in r24630 and r24631. Feel free to argue about those.

Great! CLOSED

Comment by Alexander Vladishev [ 2012 Jan 11 ]

Fixed in version pre-1.8.11, revision 24666.





[ZBX-3992] web monitoring items are synced to the proxy Created: 2011 Jul 28  Updated: 2017 May 30  Resolved: 2012 Feb 09

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: 1.8.11, 2.0.0rc1

Type: Incident report Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: codequality, performance, proxy, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

web monitoring items are synchronised to zabbix proxy. this is useless.



 Comments   
Comment by Alexander Vladishev [ 2012 Feb 09 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-3992

Comment by dimir [ 2012 Feb 10 ]

Tested. The web monitoring items are not synced anymore.

Comment by Alexander Vladishev [ 2012 Feb 10 ]

Fixed in versions pre-1.8.11 (revision 25335) and pre-1.9.10 (revision 25336)





[ZBX-3991] passive proxy with ipaddress 0.0.0.0 Created: 2011 Jul 28  Updated: 2017 May 30  Resolved: 2012 Mar 30

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: None
Fix Version/s: 2.0.0rc3

Type: Incident report Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: passiveproxy, proxy, trivial, validation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

a passive proxy with ipaddress 0.0.0.0 is accepted as valid. server tries to use it and connects to the local host.

this can be extremely confusing. unless there is a use case for such a configuration, creating a passive proxy with ipaddress of 0.0.0.0 should be prevented



 Comments   
Comment by Alexander Vladishev [ 2011 Aug 07 ]

I think if the operating system allows such connections we shouldn't forbid them.

For example, you can connect to the local ssh service using IP 0.0.0.0.

Comment by richlv [ 2011 Aug 08 ]

indeed, this was discussed - but nobody could come up with a real world scenario where this would be useful for a passive proxy.

note that server should probably keep in accepting and using whatever ip is in that field - it's just that the frontend could prevent such a configuration.

it's worse because frontend pre-populates this field with 0.0.0.0, which it should not do either

Comment by Alexander Vladishev [ 2011 Aug 08 ]

Ok, I change a Component field to "GUI". It not a server problem.

Comment by Vladimir Rusinov [ 2012 Mar 28 ]

I just had a similar issue with agent. Remote host was configured as 'Connect to IP' and IP=0.0.0.0 in web ui and server was connecting to localhost.

It took quite a lot of time to figure out why some metrics works, while others (custom) does not or returning incorrect results. Of course, it was my mistake, but I think it should not be possible to save such host.

Comment by Alexey Fukalov [ 2012 Mar 28 ]

dev branch: svn://svn.zabbix.com/branches/dev/ZBX-3991
Added check only for proxy interface.

Comment by richlv [ 2012 Mar 29 ]

although for hosts 0.0.0.0 is used when a host doesn't really have any ip - for example, host is used to represent a virtual entity (like some application)

Comment by Vladimir Rusinov [ 2012 Mar 29 ]

Ok, then may be there should be a warning when adding host with 0.0.0.0?

Comment by Toms (Inactive) [ 2012 Mar 29 ]

(1) it is possible to enter 00.0.0.0 ip address

<Vedmak> RESOLVED

<Toms> CLOSED

Comment by richlv [ 2012 Mar 29 ]

as for a warning when adding a host with such an ip, we don't really have such a system - but you could open a new zbxnext about this

Comment by Toms (Inactive) [ 2012 Mar 30 ]

Review my changes, if everything OK, merge.

<Vedmak> Fine. CLOSED

Comment by Alexey Fukalov [ 2012 Mar 30 ]

svn://svn.zabbix.com/trunk 26482





[ZBX-3970] proxy crashes after database connection to postgresql is recovered Created: 2011 Jul 20  Updated: 2017 May 30  Resolved: 2012 Aug 09

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.8.5rc1
Fix Version/s: 1.8.8, 1.9.6 (beta), 2.0.0

Type: Incident report Priority: Critical
Reporter: Aleksandrs Saveljevs Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: postgresql, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Zabbix proxy crashed with the following messages in its log file:

1788:20110719:122213.173 [Z3001] Connection to database 'zabbix_proxy' failed: [0] could not connect to server: No route to host
Is the server running on host "192.168.X.X" and accepting
TCP/IP connections on port 5432?
1788:20110719:122213.173 Database is down. Reconnecting in 10 seconds
1791:20110719:122213.173 Database is down. Reconnecting in 10 seconds
1783:20110719:122213.173 [Z3001] Connection to database 'zabbix_proxy' failed: [0] could not connect to server: No route to host
Is the server running on host "192.168.X.X" and accepting
TCP/IP connections on port 5432?
1783:20110719:122213.174 Database is down. Reconnecting in 10 seconds
1790:20110719:122219.179 ERROR: commit without transaction. Please report it to Zabbix Team.
zabbix_proxy: db.c:513: zbx_db_commit: Assertion `0' failed.
1776:20110719:122219.185 One child process died (PID:1790,exitcode/signal:6). Exiting ...
1776:20110719:122221.189 Syncing history data...
1776:20110719:122221.235 Syncing history data... done.
1776:20110719:122221.236 Syncing trends data...
1776:20110719:122221.236 Syncing trends data... done.
1776:20110719:122221.236 Zabbix Proxy stopped. Zabbix 1.8.5rc1 (revision

{ZABBIX_REVISION}

).



 Comments   
Comment by Denis Kochergin (Inactive) [ 2011 Aug 26 ]

not all zbx_db_begin results were handled, ZBX_DB_FAIL caused DBbegin to exit without starting transaction.

Comment by Denis Kochergin (Inactive) [ 2011 Aug 26 ]

Fixed in ZBX-3970 dev branch

Comment by Alexander Vladishev [ 2011 Sep 05 ]

Fidex in version pre1.8.8, r21450.





[ZBX-3823] uninformative messages in server logfile Created: 2011 May 19  Updated: 2017 May 30  Resolved: 2016 May 22

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: 3.2.0alpha1

Type: Incident report Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: codequality, logging, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

if an unknown proxy connects to the zabbix server, sometimes really uninformative messages are printed :

Invalid discovery data. Can't find pair with name "clock"
Invalid auto registration data. Can't find pair with name "clock"
Received invalid host availability data. Can't find pair with name "data"
cannot find "data" pair

it would be great if these could provide more useful information, and preferably - ip address that data is being received from.

related to ZBXNEXT-377



 Comments   
Comment by richlv [ 2013 Aug 14 ]

two issues have recenty been reported where these messages not being helpful enough is mentioned :
ZBX-6884
ZBX-6889

Comment by Glebs Ivanovskis (Inactive) [ 2016 Jan 07 ]

This situation takes place when server sends request to passive proxy and gets back something like "{}".

Very interesting situation is when server interface is used in passive proxy configuration. Proxy poller sends request, trapper treats them as active proxy requests and fails to parse them.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Jan 12 ]

We will have two messages like:

  4206:20160112:092644.401 invalid host availability data: Can't find pair with name "data"
  4206:20160112:092644.401 proxy "Agent in fact" at "127.0.0.1" returned invalid availability data

or like:

  4206:20160112:092140.291 invalid host availability data: Can't find pair with name "data"
  4206:20160112:092140.291 proxy "Server in fact" at "127.0.0.1" returned invalid availability data

or one message if there is not a JSON at all:

  4206:20160112:093825.481 proxy "Crazy script" at "127.0.0.1" returned invalid availability data

Hopefully, this will make catching misconfigured proxies easier.

Fix for trunk available in development branch svn://svn.zabbix.com/branches/dev/ZBX-3823 revision 57484.

Comment by dimir [ 2016 Jan 19 ]

(1) In functions like process_host_availability(), when proxy data is parsed in some cases of parsing errors (e. g. missing hostid tag) the warnings are issued. Warnings do not mention proxy name or IP address. Perhaps it could be useful to pass host name and IP to these functions just for the log messages.

glebs.ivanovskis We discussed this potential situation and decided that for data processing functions it will be better to fail than to log warnings per every corrupted data entry. This way a single error message containing defected proxy/agent name, IP and specific parsing error can be logged by proxypoller/trapper.
RESOLVED in r58276.

wiper CLOSED

Comment by dimir [ 2016 Jan 20 ]

Please review my changes in r57870.

glebs.ivanovskis In process_dhis_data() we still need continue; at the end of while loop. Otherwise we will fall through to json_parse_error:.

In process_proxy() we can go even further and leave only one zbx_free(answer); in the end like we do with port variable. answer will be freed by zbx_strdup() in get_data_from_proxy().

Please take a look at r57900.

<dimir> Indeed, well done!

Comment by Alexander Vladishev [ 2016 Mar 15 ]

(2) changed strings must be documented in the "Upgrade notes"

glebs.ivanovskis Documented in Upgrade notes for 3.2.0
RESOLVED

wiper I think adding some notes like 'improved host validation error messages' to daemon improvements in wha'ts new wouldn't hurt either.
REOPENED

glebs.ivanovskis I agree. Added a few words to What's new in 3.2.
RESOLVED

sasha Thanks! CLOSED

Comment by Andris Zeila [ 2016 Apr 11 ]

(3) memory leak in process_hist_data() function. If json contains clock field and no data field, then the memory allocated in tmp variable to read clock values are not freed.

glebs.ivanovskis Right! RESOLVED in r59379.

wiper CLOSED

Comment by Andris Zeila [ 2016 Apr 11 ]

Successfully tested

Comment by Glebs Ivanovskis (Inactive) [ 2016 Apr 12 ]

(4) Updating to the latest trunk involved some conflict resolution in src/zabbix_server/proxypoller/proxypoller.c and src/zabbix_server/trapper/trapper.c related to ZBX-9640 and new zbx_timespec_t *ts parameter of process_hist_data(). Please have a look at r59401.

wiper looks good, CLOSED

Comment by Glebs Ivanovskis (Inactive) [ 2016 Apr 12 ]

Fixed in pre-3.1.0 (trunk) r59407.

Comment by Gabriele Armao [ 2016 May 19 ]

just to be sure, I had the same issue during a training session, a trainee wrongly configured a passive proxy on the frontend to connect to zabbix server trapper port, zabbix_server.log started showing all those messages, which was good, but the "bad" thing was that zabbix_server actually updated the "last seen" age of that proxy on the frontend to "0" so it seemed that the proxy was working correctly, making it harder to troubleshoot.
I saw you're fixing how zabbix_server deals with this, I just wanted to be sure it also deals correctly with the "last seen" value, that is, it won't be updated in this situation.

Comment by Glebs Ivanovskis (Inactive) [ 2016 May 20 ]

Indeed, proxypoller used to update "last seen" every time it managed to get a non-empty response from proxy (or whatever it is configured to communicate with) and this behaviour is still present in 3.0. Current trunk (since revision 59407) will not update "last seen" unless response contains valid host availability, discovery and auto-registration data (historical data is a bit different, we try to salvage as many values as we can even if not every one of them is formatted correctly).





[ZBX-3817] proxy_get_history_data query using temporary and filesort in mysql Created: 2011 May 17  Updated: 2017 May 30  Resolved: 2013 May 30

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.8.5
Fix Version/s: 2.1.0

Type: Incident report Priority: Minor
Reporter: Javier Gonel Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: performance, proxy, sql
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 10.10, 32 bits, mysql 5.1.49-1ubuntu8


Issue Links:
Duplicate
duplicates ZBX-6601 Error in `/usr/local/sbin/zabbix_prox... Closed

 Description   

I'm using zabbix proxy in a small virtual machine with mysql in the same virtual machine. Mysql crawls when querying a big proxy_history table (3.5 million rows).

The original query needs filesorting and takes a lot of time. I've modified the default 1000 items to 10

mysql> select p.id,h.host,i.key_,p.clock,p.timestamp,p.source,p.severity,p.value,p.logeventid from hosts h inner join items i on h.hostid=i.hostid inner join proxy_history p on i.itemid=p.itemid where p.id>21824754 order by p.id limit 10;
.... (Removed)....
10 rows in set (1 min 50.70 sec)

Testing another way to get the data I got the following results:
mysql> select p.id,h.host,i.key_,p.clock,p.timestamp,p.source,p.severity,p.value,p.logeventid from hosts h inner join items i on h.hostid=i.hostid right outer join proxy_history p on i.itemid=p.itemid where p.id>21824754 order by p.id limit 10
right outer join proxy_history p

...(Removed)....
10 rows in set (0.07 sec)

The difference is in the right outer join for the proxy_history table.



 Comments   
Comment by Alexei Vladishev [ 2011 May 17 ]

MySQL is supposed to use existing index but it doesn't. PostgreSQL and other DB engines work in a much more efficient way in this case.

Anyway, thank you for the proposed solution. Please give us some time to evaluate it.

Comment by Alexei Vladishev [ 2012 Aug 30 ]

Just a quick update. It will be fixed differently in a much more effective way in 2.2.

Comment by Alexander Vladishev [ 2012 Sep 13 ]

Available in the development branch svn://svn.zabbix.com/branches/dev/ZBX-3817 (from /trunk:30207)

Comment by richlv [ 2012 Sep 14 ]

any "user friendly" description on what was changed ?

Comment by dimir [ 2012 Sep 17 ]

Getting items configuration from cache instead of database. This was only implemented for proxy when sending history data (not autoreg or discovery data).

Comment by dimir [ 2012 Sep 18 ]

Successfully tested. Great optimization. See my small change in r30264, feel free to disagree.

<Sasha> Great! Thanks.

Comment by Alexander Vladishev [ 2012 Sep 19 ]

Available in version pre-2.1.0 (trunk) r30275.

Comment by richlv [ 2012 Sep 19 ]

documented in http://www.zabbix.com/documentation/2.2/manual/introduction/whatsnew220#daemon_improvements

Comment by dimir [ 2013 May 30 ]

(1) [P] Regression: proxy crashes on item values bigger than 1k. This was discovered in ZBX-6601.

Forum discussion: https://www.zabbix.com/forum/showthread.php?t=40883

As showed by user forum user asdftyjkl the problem happens during a string buffer reallocation in src/libs/zbxdbhigh/proxy.c .

dimir In order to reproduce:

  • set up zabbix server with proxy
  • add host "Zabbix server", link it to proxy
  • add 3 Zabbix trapper items to a host: a, b and c (with keys a, b and c and value type Text)
  • start server and proxy
  • issue command (few times, quickly): for k in a b c; do bin/zabbix_sender -z 127.0.0.1 -s "Zabbix server" -p 11337 -k $k -vv -o $(for ((i=0; i<2200; i++)); do echo -en "\0$[($RANDOM % 10)+141]"; done); done
  • observe zabbix_proxy.log

RESOLVED in r35979,r36000

sasha Successfully tested! CLOSED

dimir This regression was fixed in trunk r36011.





[ZBX-3739] Stop sync between proxy and server Created: 2011 Apr 19  Updated: 2017 May 30  Resolved: 2012 Feb 25

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P)
Affects Version/s: 1.8.6
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: proxy, sql
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

PostgreSQL



 Description   

29957:20110419:140040.373 [Z3005] Query failed: [0] PGRES_FATAL_ERROR:ERROR: duplicate key value violates unique constraint "items_1"
DETAIL: Key (hostid, key_)=(31275, #634923) already exists.
[update items set key_='#'||itemid]
29957:20110419:140141.047 [Z3005] Query failed: [0] PGRES_FATAL_ERROR:ERROR: duplicate key value violates unique constraint "items_1"
DETAIL: Key (hostid, key_)=(31275, #634923) already exists.
[update items set key_='#'||itemid]
29957:20110419:140241.711 [Z3005] Query failed: [0] PGRES_FATAL_ERROR:ERROR: duplicate key value violates unique constraint "items_1"
DETAIL: Key (hostid, key_)=(31275, #634923) already exists.
[update items set key_='#'||itemid]
30071:20110419:140321.682 Executing housekeeper
30071:20110419:140324.380 Deleted 164543 records from history [2.694894 seconds]
29957:20110419:140342.373 [Z3005] Query failed: [0] PGRES_FATAL_ERROR:ERROR: duplicate key value violates unique constraint "items_1"
DETAIL: Key (hostid, key_)=(31275, #634923) already exists.
[update items set key_='#'||itemid]



 Comments   
Comment by Alexey Pustovalov [ 2011 Apr 19 ]

Thise trouble appears periodically

Comment by richlv [ 2011 Apr 19 ]

hmm. unique constraint in 1.8 ?

Comment by Aleksandrs Saveljevs [ 2011 Apr 19 ]

Yes, we have that in schema.sql under "items" table:

UNIQUE |1 |hostid,key_

Comment by richlv [ 2011 Apr 19 ]

i was just returning to this issue to say "doh, that's index..."
that's what i get for reading a few words :/

Comment by Alexei Vladishev [ 2012 Feb 21 ]

Alexey, just wondering, do you still have this problem?

Comment by Alexey Pustovalov [ 2012 Feb 21 ]

No, i don't have this problem. I think need close this issue. We with Alexander Vladishev searched root of this trouble and concluded, what problem can not have place now.

Comment by Alexei Vladishev [ 2012 Feb 25 ]

Thanks, I am closing it.





[ZBX-3662] lastlogsize is not sent from server to proxy Created: 2011 Mar 29  Updated: 2017 May 30  Resolved: 2014 Sep 24

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: Rudolfs Kreicbergs Assignee: Unassigned
Resolution: Duplicate Votes: 2
Labels: eventlog, log, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-444 Improvement processing of event logs ... Closed

 Description   

lastlogsize is not sent to proxy, see create/schema/schema.sql
this might cause a problem if a proxy is introduced into an existing environment, causing rescanning the whole file. needs more investigation.



 Comments   
Comment by Rudolfs Kreicbergs [ 2011 Mar 30 ]

Confirmed. Possible scenarios:
A) switching from server to proxy
1) log is monitored by server
2) switched to proxy - lastlogsize is set to 0 for proxy
3) the whole log is re-read

B) switching from proxy to server
1) log is monitored by proxy - lastlogsize is set to 0 for server
2) log monitoring switched to server
3) the whole log is re-read

C) switching temporarily from proxy to server
1) log is monitored by proxy - lastlogsize is set to 0 for server
2) proxy is shut down
3) host is switched to server
4) the whole log is re-read - X new items are read
5) host is switched back to proxy
6) proxy is brought up - lastlogsize is the same as in step 2) for the proxy
7) the last X items are re-read

Comment by Alexei Vladishev [ 2011 Mar 31 ]

The problem won't be fixed in 1.8.x because there are some many changes required everywhere. Let's leave it as it is for now and fix in one of 2.0.x or 2.x.

Comment by Christian Brosch [ 2013 Jan 23 ]

see https://www.zabbix.com/forum/showthread.php?t=38817

Comment by Alexander Vladishev [ 2014 Sep 24 ]

It will be fixed under ZBXNEXT-444.

I close the issue.





[ZBX-3450] gui allows to create a proxy with arbitrary characters in name Created: 2011 Jan 24  Updated: 2017 May 30  Resolved: 2012 Mar 09

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F)
Affects Version/s: 1.8.4
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Aleksandrs Saveljevs Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: proxy, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Proxy name should instead be limited to the same character set as regular host names.



 Comments   
Comment by Alexander Vladishev [ 2012 Mar 09 ]

Already fixed in version 1.9.1 r16195 with ZBXNEXT-587





[ZBX-3293] unsupported items monitored through proxy appear in latest data Created: 2010 Dec 15  Updated: 2017 May 30  Resolved: 2012 Feb 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 1.9.0 (alpha)
Fix Version/s: None

Type: Incident report Priority: Critical
Reporter: Aleksandrs Saveljevs Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: items, proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File unsupported-proxy.png    
Issue Links:
Duplicate
duplicates ZBX-2604 unsupported items not marked as such ... Closed

 Description   

See unsupported-proxy.png. The host is monitored through proxy and the items marked with "Never" are not supported.



 Comments   
Comment by Aleksandrs Saveljevs [ 2010 Dec 23 ]

ZBX-3329 looks very similar. The digits are the same, too!

Comment by Alexei Vladishev [ 2011 Sep 01 ]

Alexei, Sasha: decided not to include into 2.0.

Comment by Alexander Vladishev [ 2012 Feb 10 ]

Duplicate. Will be fixed with ZBX-2604.





[ZBX-2604] unsupported items not marked as such on proxied hosts Created: 2010 Jun 23  Updated: 2017 May 30  Resolved: 2012 Feb 07

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: None
Affects Version/s: 1.8.3
Fix Version/s: 2.0.0rc1

Type: Incident report Priority: Major
Reporter: Petrov Vladimir Assignee: Unassigned
Resolution: Fixed Votes: 4
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

FreeBSD 8.0, Zabbix Server v1.8.3 (revision 12889) (29 March 2010), Zabbix Proxy v1.8.3 (revision 12889) (29 March 2010),Zabbix Agent (daemon) v1.8.3 (revision 12889) (29 March 2010)


Issue Links:
Duplicate
is duplicated by ZBX-4306 Item status incorrect in the zabbix s... Closed
is duplicated by ZBX-3293 unsupported items monitored through p... Closed
is duplicated by ZBX-3421 unsupported items not marked as such ... Closed

 Description   

If host is monitored through proxy the status item of host not changed in web interface when item check became not supported, it's allways active, but in zabbix_proxy log i find
1063:20100623:122058.018 Item [kdata:check_share.pl[kData]] error: Not supported by Zabbix Agent



 Comments   
Comment by richlv [ 2011 Aug 30 ]

note that this seems to be different from ZBX-1061 - that one is about 'status' item, this is about item "not supported" status

Comment by Alexander Vladishev [ 2012 Feb 07 ]

Fixed in the development branch svn://svn.zabbix.com/branches/dev/ZBX-2604

Comment by Alexei Vladishev [ 2012 Feb 17 ]

Tested, everything works perfectly. It's good that we send status & error only if needed in JSON.

Comment by Alexander Vladishev [ 2012 Feb 18 ]

Available in the version pre-1.9.10, revision 25453.





[ZBX-1061] Agents behind a proxy are shown as "unreachable" ('status' parameter works not as expected) Created: 2009 Sep 25  Updated: 2017 May 30  Resolved: 2012 Jun 18

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 1.6.5
Fix Version/s: 1.8, 2.0.0

Type: Incident report Priority: Major
Reporter: Christoph Haas Assignee: Unassigned
Resolution: Fixed Votes: 2
Labels: proxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian GNU/Linux 5 ("Lenny")



 Description   

Usually the "status" item (as in "status.last(0)=...) is handled correctly if a system is monitored directly.

But a system behind a proxy is shown as "unreachable" all the time. A possible workaround is to change the trigger from

status.last(0)=2

to

agent.ping=0

I had rather expected that the 'status' parameter shows that a system is reachable - even when being located behind a proxy.



 Comments   
Comment by Christoph Haas [ 2009 Sep 30 ]

Regarding agent.ping:

Correction to my description above. It's supposed to be:

agent.ping.nodata(120)=1

In my opinion this is not the best solution because it will take at least 120 seconds before a system is detected as unvailable.
Please make agent.ping not only return 1 (success) or nothing (=nodata) but also 0 (failure). If the "TCP ping" to an agent fails then I would expect a proper response (e.g. "0").

  • * *

Regarding "status":

I understand that the "status" is calculated by the server depending on whether the server receives data. So it doesn't work through a proxy. (This was very confusing for me.)
Please (if possible) fix the calculation of "status" on the server so that it becomes 'unreachable' (2?) in case the proxy determins the system isn't available.

  • * *

My problem is that I'm not sure how to monitor systems for general availability correctly.

  • status.last(0)=2 does not work through a proxy
  • agent.ping.nodata(120)=1 is artificially delayed (although the proxy/server knows that the agent is unreachable)
  • icmpping.last(0)=1 would detect whether the system is down (possible workaround)
  • tcp,port[10050].last(0)=1 would detect whether the agent is listening (possible workaroung)
Comment by richlv [ 2010 Aug 13 ]

i believe host status is passed by proxies since 1.8 -> fixed

Comment by Stefan Sabolowitsch [ 2010 Oct 15 ]

i have exactly the same problem, as described here. V1.8.3
http://www.zabbix.com/forum/showthread.php?t=19592

Comment by Christoph Haas [ 2010 Oct 15 ]

See comment from Stefan Sabolowitsch

Comment by Alexander Vladishev [ 2012 Jun 18 ]

Handling of status check has been fully refactored in 2.0.0. Please reopen if it does not work.





Generated at Fri Apr 19 04:26:50 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.