[ZBXNEXT-9138] zabbix fails to work with recent versions of mysql_aurora - "content_type" column name is reserved Created: 2024 Apr 19  Updated: 2024 Apr 25

Status: In Progress
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Server (S)
Affects Version/s: 5.0.42
Fix Version/s: 7.0.0rc1 (master), 7.0 (plan)

Type: New Feature Request Priority: Major
Reporter: Oleksii Zagorskyi Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File frontend-error.png    
Issue Links:
Duplicate
Team: Team A
Sprint: S24-W16/17
Story Points: 1

 Description   

Zabbix server produces error:

34385:20240419:074505.215 [Z3005] query failed: [1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'content_type,script,timeout,process_tags from media_type where mediatypeid=1' at line 1 [select mediatypeid,type,smtp_server,smtp_helo,smtp_email,exec_path,gsm_modem,username,passwd,smtp_port,smtp_security,smtp_verify_peer,smtp_verify_host,smtp_authentication,exec_params,maxsessions,maxattempts,attempt_interval,content_type,script,timeout,process_tags from media_type where mediatypeid=1]

The same error is when test from command line.
If edit the query and enclose the name by double quotes ("content_type") - it works.

Frontend also shows an error "Cannot find specified media type" when manually test it, see screenshot.

This error appeared after upgrading DB engine from 5.7.mysql_aurora.2.11.4 to 8.0.mysql_aurora.3.06.0

Related discussion is https://github.com/znuny/Znuny/issues/548

Not sure how this can/should be addressed in zabbix. Should be discussed.



 Comments   
Comment by Alexander Vladishev [ 2024 Apr 22 ]

Officially, we do not support this distribution of MySQL and cannot consider it as a bug report. I'm moving this to the ZBXNEXT project.

Comment by Stefano Ghelfi [ 2024 Apr 22 ]

Just to provide more context, we have 2 ZBX infrastructures in AWS (PROD & DEV) that are composed by:

ZBX FE: Running in ECS (Prod & Dev)

ZBX Server: Running in EC2 (Prod & Dev - c4.xlarge RH  7.9)

ZBX DB: Running in Aurora MySQL:

  • Prod: 5.7.mysql_aurora.2.11.5 - Size: 3.5TB
  • Dev: 8.0.mysql_aurora.3.06.0 - Size: 6 TB




[ZBXNEXT-9044] Change dashboard constants Created: 2024 Feb 26  Updated: 2024 Apr 25

Status: IN MANUAL TESTING
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F)
Affects Version/s: None
Fix Version/s: 7.0.0rc1 (master), 7.0 (plan)

Type: New Feature Request Priority: Trivial
Reporter: Alex Kalimulin Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBXNEXT-9097 Change the width of the dashboard wid... READY TO DEVELOP
Epic Link: Zabbix 7.0
Team: Team A
Sprint: S24-W12/13, S24-W14/15, S24-W16/17
Story Points: 3

 Description   
  1. Frontend
    1. Increase DASHBOARD_MAX_COLUMNS to 72
    2. Increase DASHBOARD_WIDGET_MAX_ROWS to 64
    3. Reduce DASHBOARD_WIDGET_MIN_ROWS to 1
    4. Modify import/export accordingly
  2. DB upgrade
    1. Change the coordinates of existing widgets accordingly





[ZBXNEXT-2979] Log in to Zabbix using OAUTH LOGIN Created: 2015 Sep 22  Updated: 2024 Apr 24

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

Type: New Feature Request Priority: Trivial
Reporter: Aryel Nouer Ribeiro Assignee: Unassigned
Resolution: Unresolved Votes: 53
Labels: authentication, oauth
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
is duplicated by ZBX-15429 Email alerts are failed in zabbix wit... Closed
Sub-task
part of ZBXNEXT-1390 user auto creation if authentication ... Closed

 Description   

I would suggest the possibility of holding OAuth login by GMAIL account, Google Plus etc.
This feature, greatly facilitate the platform management work in large companies and management teams.



 Comments   
Comment by richlv [ 2015 Sep 22 ]

probably depends on ZBXNEXT-1390

Comment by Alexander Moskalev [ 2017 Nov 27 ]

It was 2017. No OAuth support.

Comment by YuriyS [ 2018 Feb 07 ]

It was 2018. Private aerospace companies launches heavy reusable rockets with electrovehicles to Mars orbit. And... Still no OAuth support.

Comment by Sergey Ignatov [ 2018 Aug 25 ]

https://gist.github.com/sergeyignatov/0228aa61e808bd830e63076e273e9fc9

Comment by Eugene [ 2019 Aug 25 ]

Guys,

Any plans to support oauth in general and google auth in particular? I used the link above to implement a workaround. It's really a workaround since there is no auto sign up of authenticated users. Also it took literally days to understand and implement it properly. Something that I did in Grafana in a matter of minutes.
Zabbix starts to look "dated"  

Comment by Eugene [ 2019 Aug 25 ]

+1

Comment by dimir [ 2022 Jun 09 ]

Related issue ZBX-21187

Comment by Robson Maniasso [ 2022 Jul 29 ]

looking for an update about oauth authentication, it´s been 7 years since this request was created and seems no plans to implement this feature...

Comment by Patxi [ 2022 Sep 08 ]

Deprecation of Basic authentication in Exchange Online is comming!

Comment by Jay Campey [ 2022 Sep 09 ]

October 1, 2022

(tick tock, tick tock)  Since this appears to be less of a feature request and more of a "misery loves company" thread, I'd be interested to know if anyone else has devised a workaround for this, or did you just say to heck with it and deploy your own postfix server?

Comment by Alex [ 2022 Sep 09 ]

Between zabbix and oauth provider you can install keycloak. This solution some users already described. Or use self created api-gateway for auth.

Comment by Nathan Liefting [ 2023 Mar 15 ]

Media types are also depended on the oAuth support being added, as such I would like to bump this ticket and I have provided some additional info here: ZBX-21187





Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-8351] Implement audit for frontend (Discovery rule) Created: 2023 Mar 16  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 7.0.0rc1 (master), 7.0 (plan)

Type: Specification change (Sub-task) Priority: Trivial
Reporter: Vladimirs Maksimovs Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBX-22729 PHP Warning 'Undefined array key' err... Closed
Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 5




Audit log bulk operations performance improvements (ZBXNEXT-6528)

[ZBXNEXT-6567] Performance improvements for trigger.create, trigger.update, triggerprototype.create, triggerprototype.update methods working with template triggers Created: 2021 Mar 17  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 7.0.0rc1 (master), 7.0 (plan)

Type: Specification change (Sub-task) Priority: Trivial
Reporter: Vladimirs Maksimovs Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C
Sprint: Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6998] Implement audit for API host Created: 2021 Oct 13  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Janis Freibergs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
causes ZBX-23823 Cannot remove host or template macros... READY TO DEVELOP
Duplicate
duplicates ZBX-22636 Max repetition count field is not val... Closed
is duplicated by ZBX-13461 Obscure API error message "Incorrect ... Closed
is duplicated by ZBX-23182 SQL error when trying to save host wi... Closed
Sub-task
part of ZBX-21870 Extra fields of nested objects are lo... READY TO DEVELOP
Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 10




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6990] Implement audit for valuemap Created: 2021 Oct 08  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 1




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-7123] Implement audit for User roles (API) Created: 2021 Dec 15  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: auditlog, roles
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-21482 No audit log for role modification Closed
Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17




Audit log bulk operations performance improvements (ZBXNEXT-6528)

[ZBXNEXT-6774] Performance improvements of host interfaces Created: 2021 Jul 12  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 5.4.2
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Specification change (Sub-task) Priority: Trivial
Reporter: Vladimirs Maksimovs Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: Zabbix7.2
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBX-19671 The custom host interfaces of templat... Open
Team: Team C
Sprint: Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401
Story Points: 5




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6988] Implement audit for task Created: 2021 Oct 08  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 1




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6960] Implement audit for frontend (Web scenarios) Created: 2021 Sep 29  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Specification change (Sub-task) Priority: Trivial
Reporter: Vladimirs Maksimovs Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 2




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6984] Implement audit for graph Created: 2021 Oct 08  Updated: 2024 Apr 17

Status: In Progress
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Elina Pulke
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 3




Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6983] Implement audit for trigger prototype Created: 2021 Oct 08  Updated: 2024 Apr 17

Status: Resolved
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 4

 Comments   
Comment by Roberts Lataria (Inactive) [ 2021 Dec 27 ]

Implemented in development branch feature/ZBXNEXT-6983-5.5.





Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6987] Implement audit for map Created: 2021 Oct 08  Updated: 2024 Apr 17

Status: READY TO DEVELOP
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Janis Freibergs
Resolution: Unresolved Votes: 2
Labels: audit, auditlog, map
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-7089 Audit Changes to Map Elements Closed
Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 8

 Comments   
Comment by Andrejs Griščenko [ 2022 Jan 18 ]

Resolved in development branch feature/ZBXNEXT-6987-5.5.





Make audit log complete and reliable (ZBXNEXT-6470)

[ZBXNEXT-6982] Implement audit for trigger Created: 2021 Oct 08  Updated: 2024 Apr 17

Status: Resolved
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master), 7.0 (plan)

Type: Change Request (Sub-task) Priority: Trivial
Reporter: Gregory Chalenko Assignee: Vladimirs Maksimovs
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBX-19803 Not logging in audit log when tag is ... Closed
depends on ZBX-21415 ORA-03113 on Trigger update Confirmed
Team: Team C
Sprint: Sprint 72 (Jan 2021), Sprint 73 (Feb 2021), Sprint 74 (Mar 2021), Sprint 75 (Apr 2021), Sprint 76 (May 2021), Sprint 77 (Jun 2021), Sprint 78 (Jul 2021), Sprint 79 (Aug 2021), Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022), Sprint 92 (Sep 2022), Sprint 93 (Oct 2022), Sprint 94 (Nov 2022), Sprint 95 (Dec 2022), Sprint 96 (Jan 2023), Sprint 97 (Feb 2023), Sprint 98 (Mar 2023), Sprint 99 (Apr 2023), 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), Sprint 107 (Dec 2023), S2401, S24-W6/7, S24-W8/9, S24-W14/15, S24-W16/17
Story Points: 3




[ZBXNEXT-5419] Add posibility to export & import own dashboards from dashboard.list Created: 2019 Sep 11  Updated: 2024 Apr 12

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

Type: Change Request Priority: Major
Reporter: Denis Golius aka Terry Filch Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 82
Labels: Zabbix7.2, dashboard, frontend, graphs
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File photo_2019-09-11_10-55-35.jpg    
Issue Links:
Causes
Duplicate
is duplicated by ZBXNEXT-6732 Dashboard export Import Closed

 Description   

Add posibility to export & import own dashboards from Monitoring/Dashboard/Dashboards.
It's useful when user/admin want to migrate/install new/test pre-release version of Zabbix.

They can only be ported by creating new ones in a different web interface, which is very time consuming, so it is worth thinking about exporting or importing.



 Comments   
Comment by Victor Hugo Assunção [ 2020 Apr 28 ]

Great feature to 5.0 maybe?

Comment by Sotirios Roussis [ 2022 Sep 30 ]

Awesome to have yet very important for different zabbix deployments.

Comment by Cesar Inacio Martins [ 2023 Aug 24 ]

Really useful resource, mainly to quickly duplicate and make mass changes like hostnames , items ... 

 

Comment by Jeffrey Descan [ 2023 Aug 25 ]

We have tons of dashboards and Zabbix instances. This feature would be ideal to import them in various instances at once and maintain them in an automated way.

Comment by Robert Markula [ 2023 Aug 25 ]

Agreed - We install new Zabbix instances quite often. Dashboards are one of the main entry points for Zabbix users and one of the things users interact with most.

It would be very neat to have our set of carefully crafted Dashboads available for import on other instances - including being able to use things like versioning for our dashboards.

Maybe in the future that paves the way for something like dashboard sharing (analog to template sharing)?

Comment by Omer Khan [ 2023 Dec 23 ]

Is there any recent information available regarding the potential inclusion of this feature in Zabbix's next release?

Comment by dimir [ 2024 Jan 22 ]

We are aware of this issue and we'd like to implement it as soon as possible but currently the closest that might get this in is 7.2 . Please stay tuned.

Until then, one alternative to handle dashboards is (very high-level overview) creating an export script that would perform the following via Zabbix API:

  • get dashboard
  • get all IDs
  • map them to names

and an import script that would:

  • get all IDs (by using names)
  • create dashboard

Working with dashboards via Zabbix API:

 





[ZBXNEXT-6668] Add auditlog call and remove calls from frontend Created: 2021 May 19  Updated: 2024 Apr 10

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

Type: Change Request Priority: Trivial
Reporter: Roberts Lataria (Inactive) Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: auditlog
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Team: Team C

 Description   

Add new auditlog call for actions in API services and remove calls from frontend part.

List of frontend files where need remove: graphs.php, CControllerImageCreate, CControllerImageUpdate, CControllerImageDelete, sysmaps.php, CControllerProxyCreate, CControllerProxyUpdate, services.php, templates.php.

List of API actions where need add auditlog call:

API service(s) Actions
CGraph, CGraphPrototype Add, Update
CImage Add, Update, Delete
CMap Add, Update, Delete
CProxy Add, Update
CService Add, Update, Delete
CTemplate Add, Update





[ZBXNEXT-8352] Add support to MS Azure SCIM requests with the flag Created: 2023 Mar 16  Updated: 2024 Apr 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F)
Affects Version/s: 6.4.0, 7.0.0alpha1
Fix Version/s: None

Type: Change Request Priority: Low
Reporter: Elina Pulke Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBXNEXT-276 LDAP authentication with groups support Closed
Sub-task
part of ZBX-21976 Finalize SAML and SCIM development Closed
Team: Team C

 Description   

In MS Azure when special flag is added to SCIM URL, some requests are sent in different format.

Need to provide support for these requests.






[ZBXNEXT-5709] Adopt Host API to export XML data structure. Created: 2020 Jan 22  Updated: 2024 Apr 10

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

Type: New Feature Request Priority: Trivial
Reporter: Miks Kronkalns Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: Host.create, host.update, import, tls_accept, tls_connect
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBXNEXT-5228 Make template attributes optional Closed
Sub-task
depends on ZBX-17165 Incorrect validation rules for 4.4 XM... Closed
Team: Team B
Story Points: 1

 Description   

ZBXNEXT-5228 involved changes in export XML schema. In Zabbix 4.2, host TLS connection was defined like:

<tls_connect>4</tls_connect>
<tls_accept>5</tls_accept> 

Starting with 4.4, TLS is defined as:

<tls_accept>
  <option>NO_ENCRYPTION</option>
  <option>TLS_CERTIFICATE</option>
</tls_accept> 

Changes made to implement this change was done wrongly (see ZBX-17165 for more details). Starting from 5.0, this should be fixed by adopting API for new data structure. CTransformImportConverter involved in ZBX-17165 should be removed from Zabbix 5.0.






[ZBXNEXT-1167] zabbix snmp monitor over tcp Created: 2012 Mar 28  Updated: 2024 Apr 10

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

Type: New Feature Request Priority: Trivial
Reporter: pengyao Assignee: Vladislavs Sokurenko
Resolution: Unresolved Votes: 5
Labels: snmp, tcp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
Team: Team A

 Description   

I have some application use snmp over tcp (like resin admin interface), I want to monitor it, but current zabbix is only support snmp over udp. what should i do? Thanks



 Comments   
Comment by Oleksii Zagorskyi [ 2013 Mar 01 ]

My humble investigation :
http://osdir.com/ml/network.net-snmp.user/2003-05/msg00360.html
http://www.net-snmp.org/dev/agent/structsnmp__session.html#a6651007c1d156f67f99d54d84aac09b9

Zabbix (code checks_snmp.c:snmp_session) for IPv6 - UDP specified explicitly, for IPv4 - by default:

#ifdef HAVE_IPV6
	if (SUCCEED != get_address_family(item->interface.addr, &family, err, MAX_STRING_LEN))
		goto end;

	if (family == PF_INET)
		zbx_snprintf(addr, sizeof(addr), "%s:%d", item->interface.addr, (int)item->interface.port);
	else
	{
		if (item->interface.useip)
			zbx_snprintf(addr, sizeof(addr), "udp6:[%s]:%d", item->interface.addr, (int)item->interface.port);
		else
			zbx_snprintf(addr, sizeof(addr), "udp6:%s:%d", item->interface.addr, (int)item->interface.port);
	}
#else
	zbx_snprintf(addr, sizeof(addr), "%s:%d", item->interface.addr, (int)item->interface.port);
#endif	/* HAVE_IPV6 */
	session.peername = addr;

# man snmpcmd

...
AGENT SPECIFICATION
The string AGENT in the SYNOPSIS above specifies the remote SNMP entity with which to communicate. This specification takes the form:

[<transport-specifier>:]<transport-address>

At its simplest, the AGENT specification may consist of a hostname, or an IPv4 address in the standard "dotted quad" notation. In this case,
communication will be attempted using UDP/IPv4 to port 161 of the given host. Otherwise, the <transport-address> part of the specification is
parsed according to the following table:

<transport-specifier> <transport-address> format

udp hostname[:port] or IPv4-address[:port]

tcp hostname[:port] or IPv4-address[:port]

unix pathname

ipx [network]:node[/port]

aal5pvc or pvc [interface.][VPI.]VCI

udp6 or udpv6 or udpipv6 hostname[:port] or IPv6-address:port or
'['IPv6-address']'[:port]

tcp6 or tcpv6 or tcpipv6 hostname[:port] or IPv6-address:port or
'['IPv6-address']'[:port]

Note that <transport-specifier> strings are case-insensitive so that, for example, "tcp" and "TCP" are equivalent. Here are some examples, along
with their interpretation:

hostname:161 perform query using UDP/IPv4 datagrams to hostname on port 161. The ":161" is redundant here since that is the default
SNMP port in any case.

udp:hostname identical to the previous specification. The "udp:" is redundant here since UDP/IPv4 is the default transport.
...

Conclusion:
zabbix uses only UDP transport by default.

Comment by Kester Allen [ 2013 Mar 01 ]

Thanks, Oleksiy,

Do you know when TCP transport will be released for Zabbix?

Comment by Colo Host [ 2018 Apr 25 ]

Did anything ever come of this?  I've got a platform that can only be talked to via TCP.  I can query it fine using snmpwalk tcp:ipaddress, but haven't found a way to get zabbix to talk to it, so I'm thinking I've run into this issue.

Comment by Michael Mol [ 2019 Sep 27 ]

I've started to run into this. I'm starting to see SNMP error statuses (via Wireshark) of "tooBig (1)". When I went to look at how to get the queries sent over TCP instead of UDP, I came across this.

Comment by Vladislavs Sokurenko [ 2023 Sep 21 ]

Something like this can introduce tcp support:

diff --git a/src/zabbix_server/poller/checks_snmp.c b/src/zabbix_server/poller/checks_snmp.c
index f80b592ef99..452214eb295 100644
--- a/src/zabbix_server/poller/checks_snmp.c
+++ b/src/zabbix_server/poller/checks_snmp.c
@@ -616,7 +616,7 @@ static zbx_snmp_sess_t      zbx_snmp_open_session(unsigned char snmp_version, const c
        session.timeout = config_timeout * 1000 * 1000; /* timeout of one attempt in microseconds */
                                                        /* (net-snmp default = 1 second) */
        if (SUCCEED == zbx_is_ip4(ip))
-               zbx_snprintf(addr, sizeof(addr), "%s:%hu", ip, port);
+               zbx_snprintf(addr, sizeof(addr), "tcp:%s:%hu", ip, port);
        else
                zbx_snprintf(addr, sizeof(addr), "udp6:[%s]:%hu", ip, port); 




[ZBXNEXT-5119] Limit amount of simultaneous sessions per user Created: 2019 Mar 18  Updated: 2024 Mar 14

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

Type: Change Request Priority: Trivial
Reporter: Alexey Pustovalov Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: limits, sessions, user
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

It would be great to have global/per user option which can limit amount of sessions per user.






[ZBXNEXT-5167] problem.get returns arrays of problems from disabled items/triggers Created: 2018 Aug 22  Updated: 2024 Mar 11

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

Type: Change Request Priority: Major
Reporter: Ingus Vilnis Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 15
Labels: api, problem
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-5186 Show only active problems through pro... Closed
is duplicated by ZBX-17438 problem.get returns problems that has... Closed

 Description   

 

Steps to reproduce:

  1. Get a trigger in Problem state. See it listed in Monitoring -> Problems and dashboard widgets. 
  2. Disable the trigger or item for it in host or template. See the trigger is not listed in the Problems page thus it is invisible for the frontend.

Result:

Using the Debug mode see that the problem event generated by the disabled trigger is still listed in the array returned by problem.get API. 

Set the trigger back to enabled and see it returns to Problem page (expected). 

Expected:
Problems are not returned by API for triggers that are not actually displayed by web interface. 

 

While this is not such a big deal on "normal" daily use, there can be edge cases where this makes the web interface almost unusable. One such happened during a performance test with many triggers having multiple event generation mode on. It is understandable that displaying all those problems generate load but it exhausts all the PHP memory limit even after the items were disabled.

The problem events are removed only after the items / triggers are deleted (or unlinked from hosts).



 Comments   
Comment by Edgars Melveris [ 2018 Oct 22 ]

Moved this to feature requests.

Comment by Ingus Vilnis [ 2018 Oct 22 ]

So you think this is a cool feature instead of a performance bug?

Comment by Edgars Melveris [ 2018 Oct 22 ]

Well... I think it works "as designed". If we think, that the design can be better, that's a feature request... in my opinion.

Comment by Ingus Vilnis [ 2018 Oct 22 ]

Then is it a good design to return in the background lots of data which is not even displayed by the web interface in any way?

Comment by Edgars Melveris [ 2018 Oct 22 ]

Not to get into discussion about good or bad design, but as most designs - it can be improved.

I'm not sure I'm right, maybe there where reasons I'm not aware of, why it was created as is. So I see it as a design that works, but can/should be improved.

A bug in my opinion is something that doesn't work as designed.

Comment by Ingus Vilnis [ 2018 Oct 23 ]

From such perspective we can treat any bug reports as feature requests because regardless of the problem Zabbix as such is working, isn't it? 

I can clearly imagine that no one ever thought about this particular problem for a second before it was designed and implemented. 

On one hand Zabbix is putting serious efforts to improve the performance on large scale. Take ZBXNEXT-4108 as example. Off the topic but even ZBXNEXT-4820 requesting for better sounds gets turned down because of the increase in the file size. Then how is this my request considered as a feature when useless data is returned by a page request causing considerable load on all components of Zabbix?

Were you actually able to reproduce it?

Comment by Edgars Melveris [ 2018 Oct 23 ]

Hello Ingus, thanks for the valuable opinion, you might be right. But I'm not the person to make the decision, but I will forward this ticket, so that appropriate decision can be made. Maybe it will be moved back to ZBX.

Yes, I was able to reproduce the error, it's easy on a host with one trigger.

Comment by Ingus Vilnis [ 2018 Oct 23 ]

Thank you very much!

With one trigger it is not a big problem, I agree there, but when there are thousands of triggers in mixed order on multiple hosts then the slowdown is significant. 

Comment by Edgars Melveris [ 2018 Oct 23 ]

Thanks to aleksejs.petrovs, who pointed out that api output should match that what you see in frontend, so moving this back to bugs and marking as confirmed.

Sorry for the confusion.

Comment by Valdis Murzins [ 2019 Mar 28 ]

While I can understand the confusion, that problem.get is returning more problems, than displayed, in Problem list it was done on purpose.
Currently the steps are:

  1. select number of problems, with any matching filters applied.
  2. get triggerids, that matches them.
  3. select triggers, with any matching filters applied (including 'monitored' => true)
  4. remove from list the problems without related triggers
  5. repeat from step 1, if not enough problems are selected
    (Note: data for any trigger is requested only once)

What is requested by this task, is to add "monitored" filter for event.get and problem.get.
'monitored' filter implies adding NOT EXISTS check, which will look for data in tables functions, items, hosts and triggers, to the SQL.
This is quiet heavy check. In current implementation it is done only for triggers request, and is checked only once for any trigger. Adding it in problem.get and event.get, will require to do this check for every problem or event, which is way more times, than it is currently done.

With this, I have strong grounds to doubt that this change will be beneficial to the performance of Problem list page.

Also I will insist, that this is Feature request and not a bug, because

  1. currently the pages are displaying correct data
  2. problem.get and event.get was made without 'monitored' on purpose as very heavy operations. (same as history.get)
    And implementing such option should be considered as feature request.

I am not closing the task, as proper performance comparison still can be done.

vmurzins EDIT: It can be considered as feature request to add API parameter, that will be used only by users. (Zabbix frontend has no need for such parameter).

Comment by richlv [ 2019 Apr 18 ]

Looks like moving to bugs was not successful, still a ZBXNEXT.

Comment by Egor [ 2024 Feb 20 ]

Hello colleagues. This is NOT just "Preaty to have" feature. This is real fail of design.

One of Zabbix development direction - service based monitoring. Am I correct? A lot of changes was made for this and we are using this structure for more than 300 service trees. 

Problem described here is one of the most critical issue:

You have service tree with more than 50 services, 300 hosts and 5000 triggers.

You need add one more host - you can't predict that triggers will not generate problems.

Problem generated by template trigger -> Service status changed.

You have no way to change service status back!

You can't change template because a lot of hosts use this template. You can not delete trigger or item because problem will not disapper. You can not delete host - problem will not desappear also plus this will be impossible to resolve this problem at all. Only via database request. 

Only one option - allow manual close from  template -> manual close -> fast disable trigger before item will data. Is this really "Target design"?

 

This problem exist in 7.0.0 unfortunatelly.

 

 

Comment by Egor [ 2024 Feb 20 ]

If you are using "service oriented" monitoring and accidentally deleted host (operator mistake for example) - nightmare for big and 24/7 environments.

only delete FROM events where eventid = '';

Same request here

https://support.zabbix.com/browse/ZBX-21994?jql=reporter%20%3D%20%22Egor%20T.%22

 





[ZBXNEXT-1527] cascaded/nested lld Created: 2012 Nov 28  Updated: 2024 Feb 27

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 107
Labels: lld, nested
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
causes ZBXNEXT-7527 Nested host prototypes Open
Duplicate
is duplicated by ZBX-12436 Graph prototype process create only t... Closed
is duplicated by ZBX-9762 Nested LLD Closed
is duplicated by ZBX-11111 Smarter nested LLD? Closed

 Description   

in some cases one-level lld is not enough. for example, one might want to discover all databases and then discover all tables for them, to monitor some statistic for all of them.

this might be doable by creating some sort of "lld rule prototype", which could then cascade almost indefinitely (although i can't think of more than 2 level practical application right now)



 Comments   
Comment by Volker Fröhlich [ 2014 Sep 26 ]

http://zabbix.org/wiki/Docs/howto/Nested_LLD

Comment by Stefan [ 2014 Sep 26 ]

i have an other example: to monitor Dell Equallogic Disks i need 2Querys, for example:
snmpwalk -v2c -c public 192.168.1.1 .1.3.6.1.4.1.12740.2.1.1.1.9.1
iso.3.6.1.4.1.12740.2.1.1.1.9.1.563984362 = STRING: "foo"
so this number is need to get the disks:
snmpwalk -v2c -c public 192.168.1.1 .1.3.6.1.4.1.12740.3.1.1.1.8.1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.1 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.2 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.3 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.4 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.5 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.6 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.7 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.8 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.9 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.10 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.11 = INTEGER: 1
iso.3.6.1.4.1.12740.3.1.1.1.8.1.563984362.12 = INTEGER: 2

actually i can only use SNMPINDEX and i get 563984362, but i need the last number too. so i must use .1.3.6.1.4.1.12740.3.1.1.1.8.1.{#SNMPINDEX}.1, a better will be .1.3.6.1.4.1.12740.3.1.1.1.8.1.{#SNMPINDEX1}.{#SNMPINDEX2} to get the second one, or other idea {#SNMPINDEX(2)} to get the last 2 numbers (563984362.1), or {#SNMPINDEX(#7)} to get a specific number (for #7 i will get 12740)

Comment by Naruto [ 2016 Aug 18 ]

Should this be closed? It's supported now.

Comment by Raimo [ 2016 Aug 18 ]

It is supported now? How? Can't find it in the documentation.

Comment by Raimo [ 2016 Aug 19 ]

Stefan Krügers approach above (.1.3.6.1.4.1.12740.3.1.1.1.8.1.

{#SNMPINDEX1}

.

{#SNMPINDEX2}

) is the way to go in my opinion. It is the most intuitive solution from a users perspective....

Comment by Naruto [ 2016 Aug 19 ]

We are touching two different topics here, one is the built-in "discovery" keys, and another is the support for custom LLD rules.

As Volker pointed out, custom nested LLD's are somehow already supported: http://zabbix.org/wiki/Docs/howto/Nested_LLD

Comment by richlv [ 2016 Aug 19 ]

well, technically, the method you are using is nice & it works, but it is still a hack and not officially supported, so it would still be more like "adding support for nested lld"

Comment by Naruto [ 2016 Aug 19 ]

The complete structure of the discovered nested values is defined by the user on the template.
Asking the user to define that structure again on the JSON code is redundant and an open door to many problems; it's complicated and overloaded.

Think in folders and labels. They are two different approaches. Gmail uses labels, no hierarchy. Filesystems use directories, that's a hierarchy.

When you have already defined the hierarchy on the template side (for example, I'll use the "#DATABASE" macro for zabbix Applications, and "#TBL" for item names), there is no need to define the same hierarchy again on the JSON making side. Therefore the "labels" approach is the right approach.

Each line of the JSON code must represent a combination of labels.

But there is a problem with the current implementation of this feature.
For example, we'll suppose that I am Zabbix Server and I receive this JSON:

{
 "data":[
   { "{#INSTANCE}" : "MSSQL$TEST_INST", "{#DATABASE}" : "DBA" },
   { "{#INSTANCE}" : "MSSQL$TEST_INST", "{#DATABASE}" : "DBA2" },
   { "{#INSTANCE}" : "SQLServer", "{#DATABASE}" : "SQL_SERVER_MONITORING" },
   { "{#INSTANCE}" : "SQLServer", "{#DATABASE}" : "ORACLE_MONITORING" },
   { "{#INSTANCE}" : "SQLServer", "{#DATABASE}" : "DBA" },
 ]
}
  • Ok, now I know that I have to create items for a prototype that is referring to "#DATABASE" macro/label only. I'll create 4 items, one for each "#DATABASE" value: "DBA", "DBA2", "SQL_SERVER_MONITORING" and "ORACLE_MONITORING"; and I'll rise an error, because the fifth value is repeated ("DBA"). OK, it is not possible, and the request is not normal, I mean, why should I want a list of all databases, when I know that I could have the same name in multiple instances (by coincidence)?, it's weird. So, ok, next prototype.
  • It turns out that I've been asked to create items for another prototype, referring to both "#INSTANCE" and "#DATABASE". I will create 5 items:
    MSSQL$TEST_INST - DBA
    MSSQL$TEST_INST - DBA2
    SQLServer - SQL_SERVER_MONITORING
    SQLServer - ORACLE_MONITORING
    SQLServer - DBA
    And no error. OK. This request is normal.
  • Great, now I'm being asked to create items for another prototype, this time referring to "#INSTANCE" only. It's normal! I want to refer to instances, completely normal request! However I, Zabbix, throw errors for lines 2, 4 and 5, because I'm blindly trying to create an item for each JSON line.

How I see the solution to this problem? Simple, we don't need errors here; the user knows what he's doing; just don't try to create an item that is already created, in the first place. I can admit that that first request was weird, I know it, but it could be useful in some scenarios, having a list of unique values across many "containers".
Now, the third request, it's 100% normal, and wanted, and useful.

The question is, what is the purpose of attempting to create something that was already created? There was already an item created for "SQLServer", then why is Zabbix trying to perform the same action again? It makes no sense.

Comment by richlv [ 2016 Aug 23 ]

i wouldn't say this is supported.
host prototypes sort of provide one extra level, but only if you want separate hosts.
the hack with the somewhat duplicate entries is mostly working, and it might even end up being the supported method, but until it does become one, this issue still tracking that

Comment by Naruto [ 2016 Aug 23 ]

Hi, richlv, I know, right, that's why I'm opening this discussion about this feature, it's in an inconsistent state right now. It doesn't work well in one way or another. We need to define this, right now. What is the way to go, and how.

To me, it's pretty clear and easy. Just read my comment above, as I said there, labels is the way to go, and no hierarchy. Let the hierarchy in the user's mind, he knows what he's doing.

Otherwise you'll end up having to give support to things like this:

{
	"data": [
		{ "{#INS}": "MSSQL$TESTE_INST", "{#INL}": "TESTE_INST", "data": [
			{ "{#DBS}": "DBA" }, 
			{ "{#DBS}": "DBA2" }
	    ]},
	  	{ "{#INS}": "SQLServer", "{#INL}": "SQL Server", "data": [
			{ "{#DBS}": "SQL_SERVER_MONITORING" }, 
			{ "{#DBS}": "ORACLE_MONITORING" }, 
			{ "{#DBS}": "DBA" }
	   ]}
	]
}

Which is a pain in the butt, for both, the user and the developer.

Comment by richlv [ 2018 Apr 18 ]

Here's a usecase where the current hacks fall short.

A script discovers JMX ports on a box and creates JMX items for each found JVM. Now, on each JVM one might want to have another level of LLD, but that is not possible - the JMX discovery would have to stem from the discovered items.

The problem is that not all information can be gathered in one script and then sent to an LLD rule, different discovery methods/types have to be used.

Comment by Stéphane Olivier [ 2018 Dec 18 ]

Hi.

I'm trying to understand the following sentence from https://www.zabbix.org/wiki/Docs/howto/Nested_LLD:

"In a single go: You can implement the secondary rule with a trapper item of your choice, if possible connectivity-wise. Just invoke the trapping from your script"

For me, trapper items have to be created so you can use zabbix_sender to send values.

I don't see how to implement the second discovery rule with a trapper.

Thx

Comment by richlv [ 2018 Dec 18 ]

My interpretation:
The first method uses two LLD rules that separately gather information about the two levels (using the example from the wiki page, one to collect list of databases, and one to collect list of db:tables). The second method collects information on databases and tables in one go, and sends data to both LLD rules.

Comment by Stéphane Olivier [ 2018 Dec 18 ]

There is one problem with a big json file which includes dbs and tables. ie:

{
  "data": [
    { "#DBNAME": "db01", "#TBLNAME": "tbl01" },
    { "#DBNAME": "db01", "#TBLNAME": "tbl02" },
    { "#DBNAME": "db02", "#TBLNAME": "tbl01" },
    { "#DBNAME": "db02", "#TBLNAME": "tbl02" }
  ]
}

if you have an item property named db.size[#DBNAME] in your db LLD, you'll get duplicate keys.

That's why i was not sure to have properly understood the sentence

Comment by richlv [ 2018 Dec 18 ]

The script would send two different JSONs to two different rules, it's just that the data collection would happen once.

Comment by Stéphane Olivier [ 2018 Dec 18 ]

Data collection for both discovery rules would happen only once if you don't use "Zabbix agent" or "Zabbix agent (active)" as type for them else the script will be called twice.

Comment by Jack Valko [ 2021 Apr 21 ]

Here's another use case that really would make a nested LLD w/ host prototypes powerful.

I'm managing a large Meraki installation on 3 continents.  The only way to properly get data from devices is to use Meraki's API (snmpwalk wont scale and cant see devices behind a meraki appliance).  Meraki devices are configured hierarchically --> Org/Network/Device.

My Org discovery returns this:

{['name':'Org Name','id':'1234567','url':'https://a-meraki-url.com/foo'}

]

I then want to discover networks so I create a host from the 'name' key and use it to discover networks.  Once those networks are discovered I'd like to create hosts for those and start to discover devices.

I can write an external script to do this but I'd like to do this natively within Zabbix and not have to shell out every time I discover.  Nested LLD is about the only practical way to discover large groups of devices.  

Comment by dimir [ 2021 Aug 20 ]

jackvalko, you might be interested in voting and following ZBXNEXT-6844 then.

Comment by Stefan [ 2021 Aug 20 ]

Sorry, but no we are not interested in other features we want this

Comment by James Kirsop [ 2022 May 04 ]

I outlined another use case for nested LLD here: https://www.zabbix.com/forum/zabbix-help/433212-cascading-lld-building-juniper-cos-items-on-interface-and-queue-indexes

@palivoda can we get this request assigned to someone for review?

Comment by Gustavo Guido [ 2022 May 26 ]

The link https://www.zabbix.org/wiki/Docs/howto/Nested_LLD in pointing to https://www.zabbix.com/community, not to a particular doc, so I did not read it (sorry if Im saying something that is explained in that article)
There are many situations where the LLD should iterate, when adding tags to items or tirgger prototypes, when an entity has sub-entitys and you need to relate triggers (no trigger in sub-entity if the master entity is offline)

Comment by Gergely Czuczy [ 2022 Jun 27 ]

This would also make it possible to more easily monitor nginx JSON status.

The open module's format is here, it's an upstream/server nesting: https://github.com/nginx-modules/ngx_http_json_status_module

And the commercial official API module also has some nesting: https://nginx.org/en/docs/http/ngx_http_api_module.html

 

Comment by Gergely Czuczy [ 2022 Jun 28 ]

The Solr cluster status response is also a nested json: https://solr.apache.org/guide/6_6/collections-api.html#CollectionsAPI-clusterstatus

$.collections.{collection}.{shard}.replicas.{replica}

That's 3 levels of nesting. Without this feature, enterprises using solr cannot really utilize zabbix. It's pretty much like ZBXNEXT-1, when people need a template generator specific for their setup, due to a lack of a well needed feature in zabbix.

 

Comment by Stefan [ 2022 Jun 28 ]

maybe this feature can be funded by the community via https://bountysource.com/ ?

Comment by Oleg Ivanivskyi [ 2022 Aug 08 ]

Improved filtering is another possible use case for this feature.

For example, you would like to monitor SFP transceiver power status for a Cisco device. You can get all SFP modules via SNMP, e.g. port, serial, model, etc.:

.1.3.6.1.2.1.47.1.1.1.1.2.311 = STRING: "Transceiver (slot:11-port:11)"
.1.3.6.1.2.1.47.1.1.1.1.12.311 = STRING: "CISCO-AVAGO"
.1.3.6.1.2.1.47.1.1.1.1.13.311 = STRING: "SFP-10G"

Each module has different sensors, e.g. receive power, transmit power, etc. SFP module with 311 index has 5 different sensors:

.1.3.6.1.2.1.47.1.1.1.1.4.10001 = INTEGER: 311
.1.3.6.1.2.1.47.1.1.1.1.4.10002 = INTEGER: 311
.1.3.6.1.2.1.47.1.1.1.1.4.10003 = INTEGER: 311
.1.3.6.1.2.1.47.1.1.1.1.4.10004 = INTEGER: 311
.1.3.6.1.2.1.47.1.1.1.1.4.10005 = INTEGER: 311

Sensor data (e.g. name, status, etc.)

.1.3.6.1.2.1.47.1.1.1.1.2.10001 = STRING: "Ethernet11/11 Lane 1 Transceiver Receive Power Sensor"
.1.3.6.1.4.1.9.9.91.1.2.1.1.3.10001.1 = INTEGER: 3

At the moment, you can discover sensors but can't use module related information as a filter. I.e. you can't monitor power sensors for "SFP-10G" modules only.

Comment by Ben Hanson [ 2022 Sep 09 ]

"Improved filtering is another possible use case for this feature"

This is my motivator as well, though with a configuration/design use case rather than hardware discovery.

We utilize Cisco gear and do port discovery of all of our switches.  I currently filter based on port type and up/down status.  There is an SNMP OID that uses the interface index that will report CDP neighbor name(s) (.1.3.6.1.4.1.9.9.23.1.2.1.1.6.{IFINDEX}.#) .  Unfortunately, it has a trailing number after the index, and it also is only populated if a value is present.  If the LLD could include this OID in discovery, then I could create one discovery rule for ports with a neighbor based on device name prefix, and a second for everything else.  This would allow me to automatically assign triggers based on expected port type (uplink vs device, etc).

So, the ability to include {IFINDEX} in a discovery label would be helpful.

Comment by John Ivan [ 2022 Nov 11 ]

Might be related.  Using SNMP discovery to generate monitoring items based on a storage type.  Presently I can have several discoveries run the same SNMP walk, each with a different discovery filter by storage type (scheduled to avoid concurrency that causes the discovery to time out).  Seems to me this would be better with a master discovery (with no item prototypes) that is run once to return all storage types, then run dependent discoveries with preprocessing to match the storage type and generate the items.  The dependent discoveries do not have to repeat the SNMP walk.

This is similar to the existing feature where a Master Item run a command that returns multiple values and dependent items can preprocess those results without having to run the command again.  

Comment by Oleksii Zagorskyi [ 2023 Feb 03 ]

ZBXNEXT-7527 asks to host prototypes nesting, which is very related to current case, but still a little bit specific.

Comment by Craig Hopkins [ 2023 Feb 23 ]

Nested LLD would definitely be useful for multi-lane optics. The OID looks like

SNMPv2-SMI::enterprises.2636.3.60.1.2.1.1.6.{PORTINDEX}.{LANE}

but there's no way currently (that I can find) within Zabbix to support this.

Comment by LivreAcesso.Pro [ 2023 Jun 27 ]

Where the info at http://zabbix.org/wiki/Docs/howto/Nested_LLD go?

Comment by Volker Fröhlich [ 2023 Jun 27 ]

https://web.archive.org/web/20171115143613/http://zabbix.org/wiki/Docs/howto/Nested_LLD

The wiki is no more.

Comment by Arthur Ivanov [ 2024 Feb 27 ]

Another case for cascaded LLD is redfish API:

/redfish/v1/Chassis/<ID>/Power/PowerSupplies/<ID>

Currently, there is no way to enumerate Chassis and then Power Supplies within one template and http-agent.

Supermicro:

{
    "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
    "@odata.type": "#ChassisCollection.ChassisCollection",
    "@odata.id": "/redfish/v1/Chassis",
    "Name": "Chassis Collection",
    "Members": [
        {
            "@odata.id": "/redfish/v1/Chassis/1"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/HA-RAID.0.StorageEnclosure.0"
        }
    ],
    "[email protected]": 2
}

Lenovo:

{
    "@odata.type": "#ChassisCollection.ChassisCollection",
    "@odata.id": "/redfish/v1/Chassis",
    "Members": [
        {
            "@odata.id": "/redfish/v1/Chassis/1"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/3"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/4"
        }
    ],
    "@odata.etag": "\"2b1611aac39424e542c\"",
    "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
    "Description": "A collection of Chassis resource instances.",
    "[email protected]": 3,
    "Name": "ChassisCollection"
}

Dell:

{
    "@odata.context": "/redfish/v1/$metadata#ChassisCollection.ChassisCollection",
    "@odata.id": "/redfish/v1/Chassis",
    "@odata.type": "#ChassisCollection.ChassisCollection",
    "Description": "Collection of Chassis",
    "Members": [
        {
            "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/Enclosure.Internal.0-1:RAID.SL.3-1"
        }
    ],
    "[email protected]": 2,
    "Name": "Chassis Collection"
}

ZBXNEXT-3643





[ZBXNEXT-1417] remote wmi from server/proxy Created: 2012 Sep 10  Updated: 2024 Feb 22

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 11
Labels: agentless, windows, wmi
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

remote wmi support from server/proxy might be useful.
ZBXNEXT-836 deals with wmi on the agent



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Oct 03 ]

Some interesting links for agent-less WMI monitoring solutions:
http://honglus.blogspot.com/2010/12/zabbix-vs-zenoss.html
http://www.mikepalmer.net/tag/wmi/
http://pkgs.org/centos-6-rhel-6/atomic-x86_64/wmi-1.3.14-2.el6.art.x86_64.rpm.html
http://www.zabbix.com/forum/showthread.php?t=10770

http://semafour.wordpress.com/2010/02/17/compiling-wmic-for-linux-without-installing-samba/
add "ZENHOME= /usr"
comment "USE_BREAKPAD = 1"

http://pzolee.blogs.balabit.com/2010/09/wmi-client-for-linux/

Comment by Mickael Martin (Cyres) [ 2024 Feb 22 ]

Hello,

Another updated solution https://github.com/greenbone/openvas-smb/tree/main/wmi





[ZBXNEXT-9006] Action only trigger Created: 2024 Feb 09  Updated: 2024 Feb 21

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

Type: New Feature Request Priority: Trivial
Reporter: LivreAcesso.Pro Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: JavaScript, action, calculateditems, item, script, ssh
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File mock-up.png     PNG File mock-up_action.png    

 Description   

I want a type of trigger that does not generate a "Problem" but just performs an action, whether it is a script, JavaScript code, calculates an item, or run an "Execute now" on an item.

This trigger can be used to perform just-in-time data harvesting and interact with the API via webhooks.

There are many possibilities.



 Comments   
Comment by LivreAcesso.Pro [ 2024 Feb 09 ]

See:

ZBXNEXT-1414

ZBXNEXT-1475

ZBXNEXT-8609

 

Comment by LivreAcesso.Pro [ 2024 Feb 09 ]

See:

https://web.archive.org/web/20210615190540/http://www.zabbixbook.com/2016/10/24/using-the-zabbixtiny-to-change-an-item-interval-based-on-a-trigger/





[ZBXNEXT-2132] Accept offset parameter for API calls Created: 2014 Jan 28  Updated: 2024 Feb 14

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Corey Shaw Assignee: Unassigned
Resolution: Unresolved Votes: 23
Labels: limits, pagination, patch, performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File history_api_offset_param.patch     Text File zabbix-3.0.2-history_api_offset_param.patch    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-1082 API should support pagination Closed
is duplicated by ZBXNEXT-4989 offset parameter for API calls - New... Closed

 Description   

While it is useful to have the "limit" parameter in API requests, it's use would be greatly enhanced if an "offset" parameter existed as well. Let's say I have 10,000 history rows to retrieve through the API. It would make sense to not only be able to limit the result to 2000 rows at a time, but also submit an offset that so that I can first get the first 2000, then the next 2000, etc.

I created a patch to do this in 2.2.x and it was a trivial addition to add it only for history.get. I'm not sure what would have to be done to add it everywhere.



 Comments   
Comment by Corey Shaw [ 2014 Jan 28 ]

This was very easy to add because the DBselect() function already supportes an offset parameter.

Comment by Oleksii Zagorskyi [ 2014 Jan 31 ]

See also ZBXNEXT-1503

Comment by Norimitsu Sugimoto [ 2016 May 05 ]

support offset parameter history.get() for zabbix-3.0.2

Comment by Norimitsu Sugimoto [ 2016 May 05 ]

Useful offset parameter.
Original attached patch for only zabix-2.2, and not fail patch for zabbix-3.0.2.

I rewrote the patch for zabbix-3.0.2. see attached file.
Please import this patch and support offset parameter.

Comment by vitalijs.cemeris (Inactive) [ 2016 Aug 02 ]

Adding offset could lead to changing "Search/Filter elements limit" GUI configuration option to "Maximum rows per page".

Comment by Naga Maheswara Reddy Palem [ 2021 Mar 31 ]

Having pagenation support will help for other system integrations. When the historyget or items.get has more results its throwing 500 internal error. Pagination helps in api calls usecases

Comment by Marcel Renner [ 2022 May 30 ]

+1 It would also be useful in PowerShell to paging/piping the results in small badges. For example, we use PowerShell to synchronize the inventory data of all hosts with our CMDB via the API. But when you have 10,000 hosts, this can quickly lead to problems. Something like in SQL with offsets and limits would be great.

Comment by S K [ 2024 Feb 09 ]

Are there any news regarding this feature? 
we are having troubles to sync zabbix hosts with our cmdb. Paging would be useful.

Comment by dimir [ 2024 Feb 12 ]

It's possible that the cause of this feature missing was support of things like "limit, offset" back in the days when we supported more database backends (like IBM DB2) which either don't have it or didn't have it back then. We now do not support IBM DB2 so the only question is Oracle.

According to this support for limiting and specifying offset was added to Oracle 12c. This should be fine since we require at least version 19c at this point.

I'll try to get more information.

Comment by dimir [ 2024 Feb 13 ]

simkimdm While this is still not implemented, would it work for you if you'd fetch the list of all hostids first and then go on handling them by smaller batches? Have you tried it?

Comment by S K [ 2024 Feb 14 ]

@dimir works better than fetching all at once. thank you.
here is a small python snippet how i implemented it.

from zabbix_utils import ZabbixAPI
// ... login stuff
def get_zabbix_hosts():
    zabbix_hosts_ids = zabbix.host.get(
                                    output="hostid",
                                    evaltype=0,
                                    tags=[
                                       {
                                           "tag": "cmdb_id",
                                           "operator": 4
                                       }
                                    ]
    )
    chunk_size = 1000
    chunks = [chunk['hostid'] for chunk in zabbix_hosts_ids]
    zabbix_hosts = []
    for i in range(0, len(chunks), chunk_size):
        chunk = chunks[i:i + chunk_size]
        zabbix_hosts += zabbix.host.get(hostids=chunk,
                                        selectMacros="extend",
                                        selectTags="extend",
                                        selectHostGroups="extend",
                                        selectParentTemplates="extend",
                                        selectInterfaces="extend")
    return zabbix_hosts 
Comment by dimir [ 2024 Feb 14 ]

Nice. And nice to see you use our zabbix_utils and it works for you.





[ZBXNEXT-1790] ability to alert when lld entity is not discovered anymore Created: 2013 Jun 12  Updated: 2024 Feb 05

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

Type: New Feature Request Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 17
Labels: lld
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-4613 Trigger for discovery rule issues Closed
is duplicated by ZBXNEXT-8711 Internal event for not discovered Closed

 Description   

if low level discovery rule does not discover some entity anymore, we show a warning on the frontend, but there is no way to alert on this.

for example, we can monitor filesystems for used space, but not for availability.

maybe that could be another internal event type ?

"New LLD entities discovered" / "Previously discovered LLD entities lost"

the last would be a bit bad with period of 0 - could we have some way to notify user about which entities were lost ?



 Comments   
Comment by Nicola V [ 2015 Oct 02 ]

Hello, I strongly support this feature: it's very valuable to asses whether an item has disappeared because of LLD.

Comment by jj [ 2016 Mar 23 ]

tried internal cheks?

Comment by richlv [ 2016 Mar 23 ]

internal items/events won't help.

another idea - a new trigger function lldwilldeletein() or better named
would return 0 if an item is still discovered and time in seconds until the item would be deleted.

Comment by Gustavo Guido [ 2023 Oct 04 ]

Appliying the same rules applied with services in network discovery will be nice.
Discovered, Up, Lost, Down (don´t know if with the same names)
Also the deletion of the item/trigger etc can be done by the same rules, you decide when an item will be deleted depending on certain rules, not the same keep lost resource for every resource discovered.

 

Very similar

https://support.zabbix.com/browse/ZBXNEXT-8711

Comment by Cesar Inacio Martins [ 2024 Jan 24 ]

Hi, has anyone found a workaround?

I'm looking for a way to identify when a discovered item stops to be discovered... 
I need to trigger and create an event about this situation.
Trying to figure out if a trigger prototype with nodata() function does the job.

 

Comment by Peter Barrette [ 2024 Jan 24 ]

Hi Ceasar, here's what I've done:

Create a user parameter file for zabbix agent on the zabbix server:

/etc/zabbix/zabbix_agent2.d/userparameter_pgsql.conf

 

The file contains the following line:

UserParameter=zabbix.undiscovered,psql -d zabbix -U zabbix -c "select count(item_discovery.ts_delete) from item_discovery where item_discovery.ts_delete <> 0 and item_discovery.key_ not like 'exclude%';" -qt

Note that I'm using a PostgreSQL database, so I also need a .pgpass file for the zabbix user:

/var/lib/zabbix/.pgpass

 

That file contains the password for the zabbix dabase user:

localhost:*:*:zabbix:passwordhere

 

Then create a new check item for the zabbix server:

Name: Zabbix Server dropped from discovery
Type: Zabbix agent
Key: zabbix.undiscovered
Type: Numeric

Then create a new trigger:

Name: Count of items dropped from discovery: {ITEM.VALUE}
Expression: last(/Zabbix Server/zabbix.undiscovered)<>0
Severity: Whatever you like.

 

This produces an alert with the count of dropped discovery items.

To find the specific items that were dropped, I then SSH into the zabbix server and execute the following query against the pgsql database:

select hosts.name, items.name, items.status, to_timestamp(item_discovery.lastcheck) as lastcheck, to_timestamp(item_discovery.ts_delete) as ts_delete
from items
left join hosts on items.hostid = hosts.hostid
left join item_discovery on items.itemid = item_discovery.itemid
where item_discovery.ts_delete <> 0
and item_discovery.key_ not like 'exclude%'
order by hosts.host;

 

Note that I ignore certain dropped discovery items in both cases with the "and item_discovery.key_ not like 'exclude%'" syntax. If you don't need that, don't use it.

Comment by Cesar Inacio Martins [ 2024 Jan 24 ]

Hi Peter , 

 

Thank you for your suggestion, however, they don't apply to my environment. 

I need something that shows exactly to our support team what is missing. 
Need to be simple like any other event.

Comment by Peter Barrette [ 2024 Jan 24 ]

Play around with the userparameter query and you can get the full list dumped to the item and handle the trigger based on that.

Comment by Gustavo Guido [ 2024 Feb 05 ]

A work arround could be done by an script item that uses de API and reports  the not dicovered itms. 

Whith the new history.push you can fire a trigger.





[ZBXNEXT-5555] Multiple Graph of Host in Single Graph Created: 2019 Nov 08  Updated: 2024 Feb 03

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Appliance (L), Java gateway (J), Server (S), Templates (T)
Affects Version/s: 4.2.7
Fix Version/s: None

Type: Change Request Priority: Critical
Reporter: Harsh Trivedi Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL 7.5 kernal version 3.10.0-862.14.4 e17 x86_64



 Description   

I need to graph a resource for a complete group of server to see if one is below or higher than the group. for example lets say i have a 10 physical server  and i want to see a graph with memory usage of all the 10 server in one graph.



 Comments   
Comment by Alexei Vladishev [ 2020 Feb 04 ]

It reminds me ZBXNEXT-5712. Is support of host groups in graph widget what you are looking for?

Comment by xaa ru [ 2020 May 14 ]

you can use grafana for this. just a couple of hours to configure

Comment by Ryan Eberly [ 2024 Feb 03 ]

Host group filtering would probably be an easy addition and it makes it so the widget doesn't need to be updated in environments where the hosts change. 





[ZBXNEXT-1547] additional trigger dependency calculation algorithms Created: 2012 Dec 13  Updated: 2024 Feb 01

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 18
Labels: triggerdependencies, triggers
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File zbx_dependency_relationship_backend.patch     File zbx_dependency_relationship_frontend.patch    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-3181 Allow selecting condition between dep... Closed

 Description   

currently a trigger that depends in several other triggers is "muted" if one of those triggers fires. a more fine grained control would be desirable.
for example, there could be 3 options :

a) OR (works as the current implementation - mutes if any one trigger fires)
b) AND (mutes only when all triggers have fired)
c) % (mutes if more than n% of triggers have fired)



 Comments   
Comment by Marc [ 2012 Dec 14 ]

Maybe in a similar way conditions are defined for actions.
d) AND/OR

<richlv> hmm, in action conditions we have condition types that can be used to determine and/or. how should it work in trigger deps ?

Comment by Volker Fröhlich [ 2013 Mar 01 ]

Loosely connected to ZBXNEXT-1461

Comment by Gustavo Moura de Sousa [ 2013 Mar 18 ]

I would like to have this feature implemente too.
I would be very usefull.

Comment by diana vasconcelos [ 2013 Mar 20 ]

yes it would be very useful to have the possibility to configure relationships between dependancy.

Comment by Benjamin Gronvall [ 2013 Dec 23 ]

I would love this to be implemented on priority. There are several instances in my networking infrastructure where this would provide greater monitoring flexibility.

Comment by Gustavo Moura de Sousa [ 2015 Aug 20 ]

Today if a host depends on two hosts, but only if botth are down, we have to generate a third trigger.
It will be nice if we could configure dependency between hosts as
https://support.zabbix.com/browse/ZBXNEXT-46

Comment by Kevin Daudt [ 2016 Jul 26 ]

I've attached that partially implement this.

Included:

  • Server side changes to check the dependency relationship
  • Frontend-changes to change the relationship

Missing:

  • API changes to take the relationship into account for the front-end. The current code is not recursive, making it harder to check this relationship recursively.
  • Setting the amount of dependencies. Only AND/OR.

Feedback would be appreciated.

Comment by Alexei Vladishev [ 2016 Aug 03 ]

Thanks for the patch! I like the functionality however it's not clear if it will be integrated into Zabbix or not. We are evaluating different options of simplifying management of dependencies and still not sure what might be the best implementation.

Comment by Kevin Daudt [ 2016 Aug 04 ]

Thanks. I'm curious to see any improvements to dependency management.





[ZBXNEXT-8939] prohibit to use previous X passwords in zabbix auth Created: 2024 Jan 11  Updated: 2024 Jan 15

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

Type: New Feature Request Priority: Minor
Reporter: Oleksii Zagorskyi Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

In ZBXNEXT-4029, for version 6.0, passwords in zabbix have been made more secure.

Just to keep in mind - there were some related changes in following major release:
https://www.zabbix.com/documentation/6.2/en/manual/introduction/whatsnew620#secure-password-hashing
https://www.zabbix.com/documentation/current/en/manual/introduction/whatsnew640#secure-password-change

But there is still one option missing - limit users to use X previous passwords.
Such approach exists currently in many auth engines, so it's requested here to be added in zabbix too.






[ZBXNEXT-8862] Allow ordered application of templates and item overlap Created: 2023 Nov 30  Updated: 2023 Nov 30

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F), Packages (C), Templates (T)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Ben Hanson Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

When designing templates, the inability to have overlap in certain item config is a frustrating constraint. If templates were modified to represent an ordered list of templates, then items with same name/same key could be applied based on template priority, allowing for more flexible configuration of templates.






[ZBXNEXT-4856] Add support for the preservation of historical data in Clickhouse Created: 2018 Nov 11  Updated: 2023 Nov 22

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

Type: Change Request Priority: Trivial
Reporter: Evgeny Molchanov Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 72
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I did not find in the search for an active issue, if you already have such a close.
Please add support for storing historical data in the Clickhouse database, by analogy with Elasticsearch.
As far as I know, there is even a ready-made patch for Zabbiks 4.0 in the repository https://github.com/miklert/zabbix/blob/master/zabbix.patch



 Comments   
Comment by Bart Verwilst [ 2018 Nov 11 ]

I'm not sure wether Clickhouse or InfluxDB (or another TSDB) is more appropriate to store the historical data.

Comment by Evgeny Molchanov [ 2018 Nov 11 ]

Clickhouse is an opensource solution. https://clickhouse.yandex . The authors of the patch made a report at Zabbix summit 2018 - https://www.zabbix.com/zabbix_summit2018_agenda#day1_1325 advantages over elasticsearch are obvious.
Now many projects choose Clickhouse to store time series, as it is a very effective (if not the most) solution on the market.

Comment by Mathieu CARBONNEAUX [ 2019 Jan 04 ]

the bigest advantage of clickhouse.... is sql database ... outher timeseries or elasticsearch had her proper query language/api/interface...

the advantage of clickhouse over the other solution is that very near to the original zabbix storage solution... sql...

but with performance of a columnar database... and scalability (distributed and replicated)... and compression...

they are coded in C++...

are very fast in injection...

the only difficulty is that not originaly support sql delete/update, work only on insertion and deleting partition to purge historical...

but now it's possible https://www.altinity.com/blog/2018/10/16/updates-in-clickhouse

Comment by Foxy Lady [ 2019 Nov 12 ]

What is the status for this? Waiting for clickhouse support in Zabbix to use it in a new project!

Comment by Hardway [ 2019 Nov 12 ]

Actually the creator of the patch launched a new fork of zabbix

https://glaber.io/

Comment by Filipe Paternot [ 2019 Nov 26 ]

It would be great for Zabbix to adopt at least some of those principles (from glaber), to get some serious performance improvement and scale natively. Their presentation at 2018 summit was great and they archieved some great numbers. If only that could go back into Zabbix..

 

This sounds like a good plan for Zabbix 5.0 https://www.zabbix.com/roadmap#v5_0

Comment by Foxy Lady [ 2019 Nov 26 ]

Support for TimescaleDB shows, that developers are open for better alternatives - it will be a very good step to let users choose their storage tec and support clickhouse or other systems! Do it, this will be a huge win for Zabbix!

 

Comment by Anton [ 2020 Feb 01 ]

https://habr.com/ru/company/ua-hosting/blog/486540/

https://habr.com/ru/company/ua-hosting/blog/485470/

 

Comment by alex mol [ 2021 May 04 ]

This is a must have for large setups.

Comment by Marco Agostani [ 2023 Nov 22 ]

we use clickhouse for netflow collection and is superfast.

I think we give a try to glaber





[ZBXNEXT-1461] Notify dependent triggers with an indication of the root problem plus dynamic dependency maps Created: 2012 Oct 10  Updated: 2023 Nov 21

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

Type: New Feature Request Priority: Major
Reporter: Volker Fröhlich Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 27
Labels: dependencies, topology
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

This ticket describes my wish from the conference talk "Generating Maps and Hosts from Topological Data" (https://www.youtube.com/watch?v=Sv0ZV05N5oI).

=Scenario=

A Zabbix server is connected to a monitored server via a switch

Z-N-S

Z ... Zabbix server
N ... Networking equipment (switch)
S ... Monitored server

The switch is maintained by a network administrator (NA), the server is maintained by a server administrator (SA). S hosts a website for a customer.

=A little story=

In the middle of the night, SA receives a message on his phone, claiming S is unreachable. What happened? Various things go through his mind: Did somebody mess up the firewall, the nameserver? Did somebody pull a cable or did the switch break? Did the machine or the network stack crash? Is it actually the Zabbix server that became disconnected from this part of the network?

2 minutes later the customer is on the phone, asking the drowsy SA what's wrong with his website. At this point he can't answer the customer's question. He doesn't even know if he can do anything about it. He only knows the problem is apparently real. If he's lucky, he'll reach a NA who can help him find out.

Meanwhile in the network operations center: NA gets a message on the dashboard, saying N is unreachable. He doesn't know the topology very well and therefore doesn't know from the top of his head, which hosts are affected by this outage. He also has no idea what services the machines runs, that is behind the broken switch. He has no immediate sense of urgency besides the trigger severity. If he's lucky, somebody's maintaining some additional information, accessible in the enterprise wiki.

This little story assumes, no trigger dependency is used. The trigger dependency mechanism could have been used to not notify the SA at all, because S depends on N. But that doesn't help the SA, because the customer would have still called him up and he'd have been even more clueless.

=What if ...=

What if the SA would have gotten a message saying:

"Server S is unreachable. This is due to an outage of N."

Reading it, he would have known he can't do anything about the problem. The website would most likely come back online when N is back to work. He could have answered the customer: "We have a network problem, NOC is working on it, have a good night!".

Also, what if the NA had a dynamic map reflecting dependency? Optionally he could also receive messages like below, if he cares:

"Switch N is unreachable. Therefore S is unreachable too."

NA: "Gosh, S is an important server, I better hurry!"

If you're creative with triggers and trigger dependency, you can visually reflect affected hosts on static maps and get this kind of notification. It only works in specific topologies though and may break silently, when you delete a host. This is not how it should be done.

=What would be necessary?=

I believe all necessary information already exists in the Zabbix database. Zabbix knows about the whole dependency chain. Instead of hiding away subsequent problems, it should also be possible to notify subsequent problems with the root problem message.

=Known limitations=

Trigger dependencies are connected with a logical OR. This might not be ideal for modelling topology.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Oct 10 ]

I'm not sure but ZBX-4744 looks a bit related.

Comment by Raymond Kuiper [ 2012 Oct 10 ]

I disagree, Volker is suggesting a fundamental change in handling trigger dependencies in actions and maps.

Comment by Volker Fröhlich [ 2012 Oct 12 ]

Related to ZBXNEXT-1333

Comment by Volker Fröhlich [ 2013 Mar 01 ]

Loosely connected to ZBXNEXT-1547

Comment by romale [ 2013 Nov 19 ]

>all necessary information already exists in the Zabbix database. Zabbix knows about the whole dependency chain.

imho, in current state, zabbix does not know about dependencies. Firstly, it should create a network tree. i think it should discover who is host, who is switch, router etc and who of this at righ side and at left side for topology compilation and relations between devices. Also, it should to know who is Port for root cause discovery and port to port mappings. This mechanism is requires model-oriented approach. And, since, all of network devices are typically SNMP-based, so, discovery should rely on SNMP.
Examples.
Our topology: ZABBIX-switch_port11-SWITCH1-switch_port12router_port1-ROUTER1-router_port2switch_port21-SWITCH2-switch_port22-HOST1
Scenario:
If switch_port21 is disconnected (we are receive router_port2 LinkUp/Down SNMP Trap, we can use this info in correlation).
Remark: Zabbix DB may contain info: router_port2 connected to switch_port21 (based on mac address table info while topology discovery), or on upper level relation: ROUTER1 at left side has SWITCH1, and ROUTER1 at right side has SWITCH2.
When HOST1 is unreachable, zabbix poll by icmp or snmp or tcp the SWITCH2: hey, are you OK? No answer. Next step - zabbix poll ROUTER2: he is replay via icmp for example, it worked and router_port2 status is Down.
So, HOST1 unreachable - is secondary issue and should be suppressed (suppresed message should be emailed to SA with root cause "SWITCH2 is down"), and root cause - "SWITCH2 is down" (this message to NA with affected devices for example. What if 400 hosts is connected to SWITCH2, cisco 6513? NA should know a scale of trouble ).

This is my reflections about network topology discovery and dependencies and about some implementations.
imho, just templates with dependencies is not enough today. It creates human errors, complexity of maintenance and tight monitoring.





[ZBXNEXT-4290] trigger.get auto-expanding functions but not macros Created: 2017 Dec 20  Updated: 2023 Nov 17

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.4.4
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Herbert Buurman Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 3
Labels: api, triggers
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-8512 Ability to get trigger parameters wit... Closed

 Description   

Currently there is an argument `expandExpression` which expands both functions and macros, but I would like the functions to be expanded by default and not the macros.
The reason I prefer this is to have the trigger.get API call return the same contents for the expression as the website does when viewing a trigger. Functions are hidden when using the webinterface, and as such, the webinterface shows the expression with the functions expanded, but with the macros as they are.

To summarize: I would move to to always expand functions in the (trigger.get) API, and use `expandExpression` to only (additionally) expand macros.






[ZBXNEXT-8840] Implement ability to retrieve host count, item count, NVPS with proxy.get API method Created: 2023 Nov 16  Updated: 2023 Nov 16

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

Type: New Feature Request Priority: Trivial
Reporter: Tomass Janis Bross Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2023-11-16-17-40-23-487.png    
Issue Links:
Duplicate

 Description   

Currently the proxy.get API method does not allow to retrieve information like host count, item count, NVPS:

Please add the ability to retrieve this data.






[ZBXNEXT-8744] Split frontend access and authentication method in user group Created: 2023 Oct 09  Updated: 2023 Oct 09

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F), Installation (I)
Affects Version/s: 7.0.0alpha7, 7.0 (plan)
Fix Version/s: 7.0 (plan)

Type: New Feature Request Priority: Minor
Reporter: Elina Pulke Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2023-10-09-14-53-10-979.png     PNG File image-2023-10-09-14-59-28-912.png    

 Description   

Currently both authentication type and access to frontend are combined in one field - in user groups "Frontend access".

There might be situations when user has no access to frontend, but it can still use API, which requires authentication. Thus such kind of setting might be misleading.
Propose to split these two settings, by creating checkbox with "Frontend enabled" and leave dropdown field named "Authentication type" with options System default/Internal/LDAP.






[ZBXNEXT-6790] Save item error with "Check for not supported value" Created: 2021 Jul 20  Updated: 2023 Oct 02

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

Type: Change Request Priority: High
Reporter: Yurii Polenok Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 4
Labels: database, error, history, http, item, notsupported, odbc, preprocessing
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-7726 new preprocessing step: turn not supp... Closed

 Description   

Please add ability to store in the history item error if item became not supported.
Could be added to "Check for not supported value" preprocessing step as another "Custom on fail" parameter.

The ability to save errors can be very useful in http, database monitoring and many other types.
When we receive an ORA error from Oracle DB, it is not enough to simply override it with the default error value, the problem can be resolved much faster if we save the error and send a clear alert to the DBA team or even a specific person based on the content of the error.

Thank you!



 Comments   
Comment by Yurii Polenok [ 2022 Jan 05 ]

"Connection failed: WRONGPASS invalid username-password pair."
Nice error message from the Redis item, but it is not yet possible to automatically save and add it to the ticket to help administrators quickly find where the error is.

 





[ZBXNEXT-2825] User and user group description fields Created: 2015 May 22  Updated: 2023 Sep 07

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F), Installation (I)
Affects Version/s: 2.4.5
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: OdinZabbix Assignee: Unassigned
Resolution: Unresolved Votes: 8
Labels: users
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-6570 Add a 'Description' field to 'Host gr... Closed

 Description   

Add user description field on the user creation screen and user group description on the user group creation screen.
It allows to describe the purpose of all users. For example, if I added some user for test purposes and want to inform my colleagues do not delete it for a couple of days.



 Comments   
Comment by richlv [ 2015 May 22 ]

description for :

Comment by Nathan Liefting [ 2022 Aug 19 ]

This is definitely a nice quick easy addition!

Comment by Galo Xucro [ 2022 Nov 16 ]

It looks trivial to add a description field, with minimal impact on database and other features.

In large installations, it's necessary to document the purpose of each usergroup and some users: why was it created for? permissions? alerting? dashboards? api access?.

Zabbix configuration should allow for some kind of auto-documenting, it'd make the life of Zabbix administrators easier.

Comment by sbindley [ 2023 Sep 07 ]

if not a description field, then a tags field. this would allow to add tags for short description, expiration dates, a temp flag, etc.





[ZBXNEXT-8663] Allow trigger dependencies for trigger prototypes discovered for a host to have dependencies added via api Created: 2023 Aug 30  Updated: 2023 Aug 30

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.4.6
Fix Version/s: None

Type: Change Request Priority: Low
Reporter: James Cook Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Any Zabbix Version



 Description   

The scenario is where you have two templates with discovery rules assigned to a host.

The discovery rules discover triggers on the host and they are defined as discovered triggers allocated to the host.

A discovered trigger (T1) from discovery rule (D1) needs to have a dependency on the a discovered trigger (T2) from discovery rule (D2).

However through the front end or api add a dependency for the discovered trigger (T1).

What would be nice is just like you can enable/disable the discovered triggers directly on the host, that you can also add dependencies.

When updating the trigger prototype perhaps there would be an option 'keep/clear dependencies' which would not clear dependencies for existing discovered triggers.

In our case we have discovered an oid '.1.3.6.1.4.1.12356.101.4.8.2.1.3.XXX' (fgLinkMonitorState) and have a trigger when the link status is active/inactive, along with an oid '.1.3.6.1.2.1.10.7.2.1.19.XXX' (Duplex Status - Duplex Status) and have a trigger when the link duplex is half-duplex.

The condition is when the link is down the status defaults to half-duplex which will cause the duplex status trigger to fire, where as if we could put a dependency in place between the two discovered triggers it would not fire.

We use automation to put dependencies in place which is based on rules/queries so this would not be an issue for us.






[ZBXNEXT-4125] API access to global regular expressions Created: 2017 Sep 26  Updated: 2023 Aug 15

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.4.2
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: David Angelovich Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: regularexpression
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sprint: Roadmap Backlog
Story Points: 2

 Description   

Its either undocumented, hard to find documentation for, or not possible - but I'd like to be able to create/update/delete/get global regular expressions in Zabbix.



 Comments   
Comment by Aleksejs Petrovs [ 2017 Sep 27 ]

Hello David,
currently you can't manipulate with global expressions through the API.





[ZBXNEXT-8590] Introduce an API rate limiting on the application layer for outbound traffic Created: 2023 Jul 24  Updated: 2023 Jul 24

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.0.19, 7.0.0alpha2
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Edgar Akhmetshin Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Introduce an API rate limiting on the application layer for outbound traffic. Distiguish between friendly and not friendly sources and optional on office/non office hours.
 






[ZBXNEXT-3166] get IDs for web monitoring items using API easily Created: 2016 Feb 24  Updated: 2023 Jul 12

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.4.7
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: itcbsops Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: ids, items, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-19160 How to get "speed", "response time", ... Closed

 Description   

Dear,

using API, we want to retrieve some informations about Web scenarios, like the average response time for the first (and uniq) step.

We retrieve the web scenario information without any problem (using httptest.get).

But to get the average response time, we use the historyGet, but we must set in parameter (itemid) the id of the average response time (I get the itemid in the frontend url).

In other word, I don't understand how is linked the web scenario id to the average download time of the 1st step.

I've also check on database but cannot see the relation.

Thanks for your help



 Comments   
Comment by Oleksii Zagorskyi [ 2016 Feb 25 ]

Indeed an "httpstepitem" table could be used to get and include actual items to API response.
As the response contains only steps, but each has 3 items and there are also items for scenario - to resolve this request the method should support something like selectItems, which would include items for steps and scenario.

As a workaround, having scenario and step names it's possible to construct item keys https://www.zabbix.com/documentation/2.4/manual/web_monitoring/items and then using hostid get items using item.get with filtering by key.

Should we move it to ZBXNEXT ?

Comment by Oleksii Zagorskyi [ 2016 Feb 25 ]

Or close it as a duplicate of ZBX-9649

Comment by Oleksii Zagorskyi [ 2016 Feb 25 ]

Well, indeed worth to close.

Comment by richlv [ 2016 Feb 25 ]

i'd suggest moving to zbxnext instead. ZBX-9649 was about getting those items, this issue is about getting their ids in the first place.
while constructing item keys might work, it is fragile - what if an upcoming zabbix version changes the keys ?
being able to properly get the associated ids would be quite useful.

Comment by Oleksii Zagorskyi [ 2016 Feb 25 ]

Good point, moved.

Comment by Carl [ 2023 Jul 12 ]

It does not seem possible via API how we can get the relations between httptestid > httpstepid > itemsid.

Using httptest.get($hostid) we can get httptest.httptestid, httptest.hostid, httpstep.httpstepid and httpstep.httptestid - but we cannot get items.itemid

Using item.get($hostid,webitems) we can get items.itemid and items.hostid - but we cannot get httpstep.httpstepid or httptest.httptestid

The httpstepitem table contains httpstepitemid, httpstepid, itemid, type and is necessary to link the two above; but does not appear exposed in API

It seems the following changes may address this:

a) have httptest.get when during selectSteps return the list of steps including the itemid and type from httpstepitem as an array

and/or

b) have item.get when during webitems=true return the httptestid, httpstepid and type from httpstepitem.

I wrote the above before I found this unresolved item of 7 years ago.

It seems like I am the first to vote on the issue, but is there any likelihood this shortcoming will be addressed?





[ZBXNEXT-8557] implement API method "massupdate" for class "item" Created: 2023 Jul 10  Updated: 2023 Jul 11

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.0.19, 6.4.4
Fix Version/s: None

Type: Change Request Priority: Medium
Reporter: Oleksii Zagorskyi Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Zabbix does not have such method for API, while, for example "host" class has it.

Would be nice to have such method for "item" too.






[ZBXNEXT-8513] trigger.get API: macros do not expand in the trigger URL Created: 2023 Jun 16  Updated: 2023 Jun 19

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.4.3
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Yurii Polenok Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 1
Labels: api, macro, trigger.get, triggerurl
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Request:

{
    "jsonrpc": "2.0",
    "method": "trigger.get",
    "params": {
        "triggerids": "1808353",
        "output": [
            "url"
        ]
    },
    "id": 1
} 

Response:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "triggerid": "1808353",
            "url": "{$CONFLUENCE_URL}"
        }
    ],
    "id": 1
} 

Expected:
In the UI on the Problem page the macros in the trigger url expand well, the API should have the same behaviour, either by default or with an additional option (like expandURL) that for some unknown reason wasn't created/was missed, although similar ones are present for the trigger name, description and expression.



 Comments   
Comment by Elina Kuzyutkina (Inactive) [ 2023 Jun 19 ]

Hi,
you are right that there is no parameter to change the output, but it can't be defined as a bug as it is by design. I will go to close this one. You can create ZBXNEXT request with your vision on how it should be.

Regards, Elina





[ZBXNEXT-8498] API method interface: change bulk to combined Created: 2023 Jun 13  Updated: 2023 Jun 13

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.4.4rc1, 7.0.0alpha2
Fix Version/s: None

Type: Change Request Priority: Low
Reporter: Andrey Tocko Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The interface method for API still has a "bulk" option in detail of interface for 6.4 and 7.0.

Consider changing to "combined". Alias to bulk could stay for compatibility.






[ZBXNEXT-8443] API configuration.export and dashboards Created: 2023 May 12  Updated: 2023 May 12

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.0.17, 6.4.2
Fix Version/s: None

Type: New Feature Request Priority: Medium
Reporter: Ricardo Canani Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In version 5.0, 'screens' was a valid 'options' parameter for API method 'configuration.export'.

https://www.zabbix.com/documentation/5.0/en/manual/api/reference/configuration/export

Since version 5.4, screens have been replaced by dashboards, so 'dashboards' should be supported by 'configuration.export' method as a valid 'options' parameter.

 






[ZBXNEXT-8414] Zabbix API/DB to support clock and support nanoseconds (ns) for Event Acknowledges Created: 2023 Apr 24  Updated: 2023 Apr 24

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

Type: Change Request Priority: Trivial
Reporter: James Cook Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Version: All



 Description   

The ability to support nanoseconds (ns) for event acknowledges would help when you may add multiple event messages within the same second; this would enable the displaying them in the correct order, rather than alphabetical if they are received in the same second.

Along with this it would be useful to be able to specify clock/ns so that you are able to specify the timestamp you may actually want, rather than the time of the api call; this would for example be used when you may have some automation that annotates messages for events.

 






[ZBXNEXT-562] Get PNG graph image via API Created: 2010 Nov 18  Updated: 2023 Feb 20

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

Type: New Feature Request Priority: Major
Reporter: azurIt Assignee: Unassigned
Resolution: Unresolved Votes: 132
Labels: api, export, graphs, png
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
Sub-task
depends on ZBXNEXT-4588 New Graph Widget Closed
depends on ZBXNEXT-5241 Possibility to show graphs and other ... Open
part of ZBXNEXT-5611 Ability to get an image of last value... Open

 Description   

Can you please add API function which will return graph as an PNG image ? We would like to integrate graphs to our application but we don't want to draw them from graph items (Zabbix is doing this very fine so i don't see a point in it). Thx.



 Comments   
Comment by azurIt [ 2012 Oct 11 ]

What 'Zabbix ID: NMR' means?

Comment by Mattias Geniar [ 2012 Dec 30 ]

NMR = Needs More Research

Since the current work-around to get the graphs involves faking a POST form submit to the frontpage and re-using that sessionID to get the graph itself is pretty annoying, a simple PNG return of the image would be much welcomed as an API request.

Comment by Oleksii Zagorskyi [ 2012 Dec 31 ]

NMR = Needs More Research
NMR = Need Major Release

Comment by Karim GUEDIDER [ 2013 Apr 09 ]

Hi
will it be included in the 2.2 ?
thanks

Comment by Thierry Sallé [ 2013 Oct 04 ]

Yo can directly convert images url to png format using the Perl Zabbix::API.
See https://metacpan.org/module/Zabbix::API::Graph for example.

Comment by azurIt [ 2013 Oct 04 ]

Thierry Sallé: I don't see a point in implementing the whole graph drawing as Zabbix is able to do it very fine.

Comment by Eric VdB [ 2014 Jan 14 ]

Well, there is a point here. It would be super handy if we can retrieve graph images from the api for automated reporting features

Comment by Linus Brimstedt [ 2014 Sep 24 ]

The point of implementing in this in the API rather than accessing the php-pages is that the API is a stable and documented interface. The chart2.php is an internal implementation that should not be used by external resources.

Comment by Darrin Chambers [ 2017 Sep 22 ]

Hi all, since the last comment in 2014, has this been resolved? I/we would greatly appreciate it.

Comment by Stoyan Stoyanov [ 2018 May 02 ]

Yes, is there any update on the request?

Comment by Dawid Mos [ 2018 May 02 ]

Maybe in delayed 4.0?

Comment by Stoyan Stoyanov [ 2018 May 02 ]

It will be nice if there is an official statement.

Comment by Alexander Nesterov [ 2019 Feb 04 ]

my solution:

...

use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request;
use MIME::Lite;
use MIME::Base64;

...

sub zabbix_get_graph
{
    my ($graphid, $period) = @_;

    my $ua = create_ua();

    my $url = "$ZABBIX_SERVER/chart2.php?graphid=$graphid&period=$period&isNow=1&width=" . IMAGE_WIDTH;

    my $req = HTTP::Request->new('POST' => $url);
    $req->content_type('image/png');
    $req->header('Cookie' => "tab=0; zbx_sessionid=$ZABBIX_AUTH_ID");

    my $res = $ua->request($req);
    my $tmp = substr($res->content, 1, 4);

    #The first eight bytes of a PNG file always contain the following values:
    #(decimal)              137  80  78  71  13  10  26  10
    #(hexadecimal)           89  50  4e  47  0d  0a  1a  0a
    #(ASCII C notation)    \211   P   N   G  \r  \n \032 \n
    #https://www.w3.org/TR/PNG-Rationale.html#R.PNG-file-signature
    if ($tmp =~ m/PNG/)
    {
        return $res->content;
    }
    return;
}

...

sub send_email
{
    my ($email_body, $subject, $smtp, $email_from, $email_to) = @_;
 
    my $msg = MIME::Lite->new(
                                From    => $email_from,
                                To      => $email_to,
                                Subject => $subject,
                                Type    => 'multipart/related'
                           );
    $msg->attach(Type => 'text/html', Data => $email_body);
    $msg->attach(Type => 'image/png', Filename => 'graph.png', Id => 'graph.png', Data => $DATA_GRAPH) if defined($DATA_GRAPH);
    $msg->attach(Type => 'image/png', Filename => 'logo.png', Id => 'logo.png', Data => decode_base64($LOGO));
    $msg->replace('X-Mailer' => 'Zabbix');
    $msg->add('X-Priority' => $PRIORITY{'Highest'});
    $msg->send('smtp', $smtp, Debug => $DEBUG);
}
Comment by Dimitri Bellini [ 2019 Feb 04 ]

@Alexander: Your solution is based on the old graphs or for the new vector graphs?
Thanks

Comment by Alexander Nesterov [ 2019 Feb 04 ]

for the old (classic) graphs

Comment by Dimitri Bellini [ 2019 Feb 04 ]

@Alexander: Ok Thanks

@ZabbixTeam: I will suggest to bring this improvement (RestAPI for Graphs) as soon as possible with the new Vector Graphs thanks

Comment by Alexander Nesterov [ 2019 Feb 04 ]

@Dimitri: You can also use http request, I think so

Comment by Dimitri Bellini [ 2019 Feb 05 ]

@Alexander: Yes! We have create a simple reporting tool for Zabbix and at the monent is based with the old graphs style...

Comment by Mark Oudsen [ 2021 Mar 03 ]

As this request is running for a very long time, I've decided to code and release a beta version of a Media type that is capable of presenting a graph embedded in an e-mail message while adding TWIG template facilities to allow for some nice customization of the outgoing message (including IF statements for example) and adding some smart way finding the direct or indirectly associated graphs to a trigger (from API perspective).

Note that Chart2 only has the capability to present 'Normal' graphs - I'm also working to support the other types as well (scattered across the other chartX.php).

Have a look at: https://github.com/moudsen/mailGraph

Once the API extension is there, my code will be fully API based (currently logging in to Zabbix to use chartX.php with CURL).

Official request to Zabbix developers to add my Media type to their repository: ZBXNEXT-6534 (declined politely but I guess that when more people want to see this feature instanciated after 6 years that will change ... ).

Comment by Kolunchik [ 2021 Aug 19 ]

any news?

Comment by Mark Oudsen [ 2021 Aug 19 ]

I have developed code to pick up graphs from Zabbix. Recently split the "get image" from my mail code and can make this available beginning of next month.
Not integrated to Zabbix API but has proven to work very well already ...
https://github.com/moudsen/mailGraph
If you are interested let me knowon GitHub (please raise an issue for it).

Comment by Peter Danko [ 2022 Aug 05 ]

Hi,
is there any update in the lates version 6.2 that it makes easier to use?

Or when it will be natively added?
Thanks.

Comment by Evgeny Semerikov [ 2023 Feb 20 ]

This is nice feature, but why this is not implamented yet? 

image.get method have a nice solution for this which returning "image" attribute with base64 encoded image.  





[ZBXNEXT-7808] Enhance system.sw.packages to auto-add template to an host with auto-registering Created: 2022 Jun 17  Updated: 2023 Jan 06

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 6.0.4
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Zeiko Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: agent, api, templates
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Hi,

 

Currently auto-register only use metadata field limited to 255 char to filter hosts.

 

This is usefull to filter between windows and linux but very limited if you want more automation.

 

Auto-register working with agent active, I would be nice to have another field that use system.sw.packages to auto add template to hosts. Currently theres no easy and automated way to add template to host

 

The process could be something like :

 

Host register to server => Server detect windows/linux metadata and filter on that (if auto discover rule is set) => Server filter on system.sw.packages and add template to hosts (with rules added in autoregister action).

 

Regards



 Comments   
Comment by Zeiko [ 2022 Jun 17 ]

I setted up the priority by looking at the "?" if it is not the correct one you can change it !

Comment by dimir [ 2023 Jan 05 ]

Sorry, could you please elaborate what exactly is asked here and provide a complete use case.

Comment by Zeiko [ 2023 Jan 06 ]

Hi,

 

Sorry, English is not my main language so I might be unclear.

The goal here is to automatically add templates to a server when specifics packages are detected.

 

Currently (well in 6.0, I didn't work on this since) auto-registration does not give a way to simply add templates to a server whithout manual actions or specific API scripts (I might be wrong but this is what I concluded after some research)

 

We can simply use a variable to get the OS type (Linux/Windows) and add the server to the correct group with auto-registration.

 

It could be nice to add a way to filter on system.sw.packages and with autoregister rules, add templates to a server when a packages is detected.

 

Simple example :

 

Installing zabbix active agent with auto-registration on nginx server :

  • Zabbix active agent do the registration process
  • Zabbix server get the OS metadata and add the server to linux group
  • Zabbix server get the packages list, find nginx -> Add server into nginx group and add nginx template

 

Is this easier to understand ?





[ZBXNEXT-8127] Consistent Host Discovery Created: 2022 Nov 30  Updated: 2022 Nov 30

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

Type: New Feature Request Priority: Major
Reporter: Norbert Püschel Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: actions, api, frontend, lld, macros, templates
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Host Discovery, Auto Registration, Host Prototypes



 Description   

Zabbix currently has three different mechanisms to automatically create host objects: Discovery with Discovery Action, Autoregistration Actions and LLD Host Prototypes. Each of these is a powerful, useful mechanism on its own. Together they are are confusing inconsistent mess.

For example: LLD creates Hosts with Host Prototypes, allowing you to use Preprocessing and Macros to exactly define the created host. Discovery and Autoregistration are limited to actions with a limited set of possible operations and no preprocessing.

On the other hand, Discovery and Autoregistration create fully customizable host objects, while hosts generated from prototypes are weirdly crippled with a lot of attributes that are readonly (there has been improvement recently there, but e.g. host groups still cannot be added). Even worse, all dependent hosts will vanish when the master host is deleted, which means for example by deleting the vCenter-Host you can wipe out all of your compute monitoring history with two mouse clicks!

So I propose to unify these three mechanisms in a useful and consistent manner:

1) No more dependant hosts and readonly attributes - what use are they anyway? Make host prototypes generate fully editable hosts.

2) Change Discovery and Autoregistration from Actions to a LLD-Style interface with host prototypes and Preprocessing. This would allow much better initial customization of discovered hosts.

3) Make them work together: Whenever a host is found by multiple discovery methods, just let them add their stuff together:

  • Host groups are all added if new -> no problem.
  • Templates are added if new; if there is a conflict, the template that was added first wins.
  • User Macros are copied; if the host already has the respective macro set, it keeps is value.
  • Interfaces are added if they have different attributes.

4) Adopt the LLD "yellow exclamation mark" method for deleting hosts that are no longer discovered by ANY discovery method. Add a button to switch such a host to "manually created" to protect them from expiration.

I believe these changes would make host discovery much more powerful and understandable at the same time.

 






[ZBXNEXT-2291] No way to update the authentication type from internal to ldap or http via zabbix api Created: 2014 May 07  Updated: 2022 Nov 29

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

Type: New Feature Request Priority: Major
Reporter: Harpreet Kaur Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: authentication
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-4268 Authentication API Closed
Sub-task
part of ZBXNEXT-5673 API method for global configuration c... Open

 Description   

There is no api to update the authentication type from intenal to http via zabbix api. From UI only this parameter can be updated. This is a limitation.



 Comments   
Comment by Gregory Chalenko [ 2022 Nov 29 ]

To change user authentication type to LDAP you need to add user to user group with frontend access set to LDAP. To change back you will need to remove user from that user group. As for HTTP authentication: HTTP Basic authentication is done on webserver level therefor API cannot control it, SAML authentication can be used for any Zabbix user with frontend access set to Internal.





[ZBXNEXT-8114] Read time out error Created: 2022 Nov 22  Updated: 2022 Nov 22

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

Type: Change Request Priority: Trivial
Reporter: Bethson Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I got a read time out error in event.get method  API  when I query the user role category users login If I changed the user role as superadmin in zabbix it works for me same time if i come back the user as a user role  type I got the read time out error any can help me






[ZBXNEXT-3013] flexible intervals for web scenarios Created: 2015 Oct 19  Updated: 2022 Oct 08

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

Type: Change Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 33
Labels: flexibleintervals, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-6259 "Custom Intervals", "Scheduling" and ... Open
is duplicated by ZBXNEXT-3156 Extend Custom Intervals from Items to... Closed

 Description   

items have flexible intervals that allow to poll data during some period of time.
if we wanted to monitor a web page only during working days, that would not be supported. it would be nice to add flexible interval support for web scenarios, too



 Comments   
Comment by richlv [ 2015 Oct 19 ]

current workarounds might involve crontab api calls or using host level maintenance - hackish and non-obvious in both cases





[ZBXNEXT-6938] Show SQL detailed errors when performing API Created: 2021 Sep 23  Updated: 2022 Oct 08

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

Type: Change Request Priority: Trivial
Reporter: Antons Sincovs Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Frontend version 5.x


Issue Links:
Duplicate

 Description   

Could you, please, consider returning an actual SQL error when performing API calls which fail on SQL query execution?

So, for example, instead of "SQL statement execution has failed":

SQL statement execution has failed \"INSERT INTO hosts (host,proxy_hostid,name,description,hostid) VALUES ('ABC-ABCDEFGHIJ-KL1234-Mnop-3-QRUVW','11723','ABC-ABCDEFGHIJ-KL1234-Mnop-3-QRUVW','','21722')

An actual detailed error:

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`zabbix`.`hosts`, CONSTRAINT `c_hosts_1` FOREIGN KEY (`proxy_hostid`) REFERENCES `hosts` (`hostid`))

Would be returned if the SQL query is being executed anyway.






[ZBXNEXT-6956] Please provide an alternative to API method application.get Created: 2021 Sep 28  Updated: 2022 Oct 08

Status: Confirmed
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 5.4.4
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Edgars Melveris Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 8
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate

 Description   

Since applications have been deprecated in favor of tags, API method application.get has also been removed. Currently the only way to get item tags is to query for items, which can be slow sometimes.
It would be great if a new API method would be introduced with similar functionality as application.get



 Comments   
Comment by Kirill Varnakov [ 2022 Apr 27 ]

Can the host.get method be improved when used with the selectItems parameter? If it included all tags for every element, that would be great.

Comment by Joachim Vertommen [ 2022 Apr 27 ]

This is also a huge problem for the zabbix-grafana plugin.
When you query a lot of hosts and filter on a specific tag, the plugin will still retrieve all the items for all the hosts because there's no API call to retrieve only the items that match a specific tag.
The plugin then does the filtering on the tag on Grafana side after having retrieved all items first.

This is very inefficient when you have lots of items per host.
Loading a dashboard can easily mean more than 100Mb of data that needs to be downloaded from Zabbix.

See: https://github.com/alexanderzobnin/grafana-zabbix/issues/1315

 





[ZBXNEXT-7022] CMD/PowerShell session reusing Created: 2021 Oct 28  Updated: 2022 Oct 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), API (A)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Aleksey Volodin Assignee: Vladislavs Sokurenko
Resolution: Unresolved Votes: 3
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
part of ZBXNEXT-7021 Add new key for PowerShell commands s... Open

 Description   

In Agent 2, the functional and the idea of minimal use of connections were presented.

This was very clear when working with databases - when connections were reused.

Session reuse saves resources and time.

I suggest adding similar functionality when working with cmd/PowerShell sessions.






[ZBXNEXT-7897] Maintenance status with Zabbix API Created: 2022 Aug 02  Updated: 2022 Aug 02

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

Type: New Feature Request Priority: Low
Reporter: Steve DESTIVELLE Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2022-08-02-11-37-39-534.png    

 Description   

Hi,

 

is it possible to add the maintenance state (expired, active) in the Zabbix API maintenance.get query ?

 

Best regards,

 

Steve Destivelle

 

 






[ZBXNEXT-7716] Event enrichment, possible to add custom tags Created: 2022 May 13  Updated: 2022 Jul 08

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

Type: Change Request Priority: Minor
Reporter: Aigars Kadikis Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 3
Labels: correlation, tags
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task

 Description   

Kindly create an API method to allow to attach new/custom event tags.






[ZBXNEXT-2815] Add possibility to invalidate 'passive' sessions Created: 2015 May 15  Updated: 2022 Jun 27

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

Type: New Feature Request Priority: Trivial
Reporter: Fernando Schmitt Assignee: Unassigned
Resolution: Unresolved Votes: 12
Labels: login, logout, sessions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS x64


Issue Links:
Causes
Duplicate
is duplicated by ZBXNEXT-7566 One session per user object Closed

 Description   

Say you have logged in many times using different browsers/machines, without logging out. You'll have all these sessions marked as active (status=0), but they are still valid. I'd like to invalidate previous sessions by having an option that will delete records from table sessions with my userid and status=0. Of course, this option must only be available for the current 'active' session (status=0).



 Comments   
Comment by Oleksii Zagorskyi [ 2015 May 16 ]

In issue description you are wrong that status=0 means sessions marked as passive

Correct is:

0, ZBX_SESSION_ACTIVE - session active
1, ZBX_SESSION_PASSIVE - session is not active
Comment by Fernando Schmitt [ 2015 May 18 ]

You are correct. Both sessions remain with status=0 (active). I can't edit the description, however. The correct description is the following: I'd like to delete all other active sessions with a sessionid different from my current one. I.e., force a 'logout' of a session I've lost the cookie.

Comment by Fernando Schmitt [ 2015 May 21 ]

Can you edit the description or should I create another issue?

Comment by Oleksii Zagorskyi [ 2015 May 21 ]

Your comment about corrections is enough.

Comment by dimir [ 2019 Nov 21 ]

Fixed.





[ZBXNEXT-4563] Ability to list inherited macros and values in host.get Created: 2018 May 23  Updated: 2022 Jun 25

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.17
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Raymond Kuiper Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 5
Labels: host.get, usermacros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-7818 Getting the Users Macros for a host Closed

 Description   

This is basically a follow up for the UI feature proposed and implemented in ZBXNEXT-210.

We can now easily identify which user macros and values are applied to a host via template inheritance in the UI.

When using the host.get API call we can use SelectMacros to retrieve macros that are defined on the host, however it is not possible to easily find which macros are applied via template inheritance. This would be very useful to determine if a macro needs to be set with a specific value or if the inherited value will suffice.

In the current situation we need to resolve linked templates and retrieve macros on each level, which is very costly.






[ZBXNEXT-7568] Inbound webhook Created: 2022 Mar 18  Updated: 2022 Mar 18

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

Type: New Feature Request Priority: Minor
Reporter: Aleksey Volodin Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Since Webhook is a modern and super popular technology it will bee nice to have this option in Zabbix.

This can make an integration with other services much more easier.






[ZBXNEXT-6949] Allow usermacro as a condition in LLD, including overrides Created: 2021 Sep 27  Updated: 2022 Feb 08

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 6
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

LLD overrides allow to enable or skip creation of entities (items, triggers) based on LLD macro content.
It would be great to also allow usermacros to be verified.
This would allow to selectively enable or skip such discovery on specific hosts by using usermacro as a toggle.



 Comments   
Comment by richlv [ 2021 Sep 27 ]

A specific usecase - Kafka monitoring discovers a lot of topics. Only some topics on some host need some triggers.
The "some topics" part can be achieved with overrides, "some hosts" part - not.
Usermacros would allow to toggle this behaviour per host.





[ZBXNEXT-7407] Allow a simple user to create new Host Groups Created: 2022 Jan 07  Updated: 2022 Jan 28

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F)
Affects Version/s: 5.4.9, 6.0.0beta1
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Aigars Kadikis Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task

 Description   

Host groups can be made only through 'Zabbix Super Admin' user type, not 'Zabbix Admin', not 'Zabbix User'

Kindly allow user type 'Zabbix User' to create host group.



 Comments   
Comment by Alexander Vladishev [ 2022 Jan 28 ]

It doesn't make sense, because only a "Zabbix Super Admin" can assign rights to host groups. New host groups created by "Zabbix user" or "Zabbix admin" will not be available to them. 





[ZBXNEXT-4142] API User group, not found field "Include subgroups" Created: 2017 Oct 03  Updated: 2021 Dec 24

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.4.2
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Pavel Kuznetsov Assignee: Unassigned
Resolution: Unresolved Votes: 10
Labels: api
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task

 Description   

Current Zabbix API object User group hasn't field
Include subgroups, this checked box available only in web interface.



 Comments   
Comment by Dimitri Bellini [ 2019 Feb 26 ]

Today i have discovered the same issue, some DevTeam could provide some information about this question?
Thanks very much

Comment by Miotk Szymon [ 2019 May 24 ]

Please align API with Web UI capabilities.

Comment by Dimitri Bellini [ 2020 Jul 20 ]

Hi DevTeam,

We still suffer of the lack of this option also for Zabbix 5.0, have you some idea on when this feature will alligned with API.

Thanks so much

Comment by Miroslav [ 2021 Jun 09 ]

Hi DevTeam,

Has anyone investigated and have time plan to implement this functionality.

Thank you.

 

Comment by Werner Dijkerman [ 2021 Dec 24 ]

Hi,

One of the maintainers here from the https://github.com/ansible-collections/community.zabbix Ansible collection. When can we expect such an option? It is very critical for us to have this feature to be implemented as we are limited and thus an Ansible user should do complicated workarounds to get this done. Do understand where we live in 2021 (2022 soon) where Infrastructure as Code is very common and we don't manually do things in UI anymore.

Thanks!





[ZBXNEXT-7103] API problem.get property to skip Dependent Problems Created: 2021 Dec 07  Updated: 2021 Dec 07

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

Type: New Feature Request Priority: Low
Reporter: Victor Breda Credidio Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-7106 problem.get doesn't use recent like t... Reopened

 Description   

When using the problem.get API call, it displays all the problems, including those that are hidden in the frontend as dependent problems.

This request is for a property of this call that can easily display all the problems as in the frontend, excluding those that are hidden. 

Something like skipDependent works with triggers.






[ZBXNEXT-1673] Possibility to manipulate SLA by adding corrections Created: 2013 Mar 19  Updated: 2021 Nov 16

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

Type: Change Request Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 9
Labels: itservices, patch, sla
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux, CentOS-6.3, PostgreSQL 9.1.8, Apache HTTPD-2.2.15, PHP-5.3.3


Attachments: File zbxNext1673-2.2.9.patch     PNG File zbxNext1673-MonitoringServices.png     PNG File zbxNext1673-ServicesConfiguration.png    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-6999 Advanced SLA reporting Closed

 Description   

SLA calculation in IT-Services might become a powerful feature.
Beside some minor limitations which actually won't prevent using it seriously, there is one thing that is crucial -at least in my opinion.

If SLA calculation is taken to represent the real service levels and shall be used for reporting and potentially even used for penalty, then there has to be a way to subsequently add corrections for defined time periods.

Such a correction could be defined on trigger level with parameter like 'Trigger status', 'Time period(s)' and 'Comment/Reason'.
For the case of an error that has extensive impact of SLA calculation, it would also be nice to have the possibility to recursively add a SLA-/Trigger-correction on higher levels as well.

These corrections have to be audited and be visible.
For non-graph views this could be a visual indicator with link/tool-tip to/about the corresponding corrections.
In graphs this could be noticeable by different colors.

A correction may not change the data a SLA is based of, it rather should be a separate definition that gets taken into account for on-demand calculation and displaying of SLA.

By this feature it would be possible to correct incorrect SLA calculations based on missing data or any kind of malfunctions in the processes of data collection.



 Comments   
Comment by Oleksii Zagorskyi [ 2013 Mar 20 ]

ZBXNEXT-334 is a bit related.

Comment by Stephen Dayman [ 2013 Oct 31 ]

The current SLA calculation is very useful for us and helps as a leading indicator of our performance but the correction mechanism is a problem. I would like the SLA correction at a child to cause the recalculation of the availability of the parent recursively. Currently I update the parent with uptime/downtime but this affects the calculation since I loose any availability data of other children.

Comment by Marc [ 2015 Jun 07 ]

Attached patch zbxNext1673-2.2.9.patch is an attempt to implement this request without making deep cuts - as always it's quick'n dirty hacked together without much thinking and testing

The idea is to use additional service times to either overrule OK or PROBLEM SLA periods.

While such "Correction periods" affect SLA calculation completely, details may be identified in the availability report (reports3.php) view only:

If a correction takes place within a SLA period, this is indicated by appending the effective correction period in orange to the regular OK/PROBLEM period values. So the regular values consider corrections and the the orange values indicate how much time was corrected.
On mouse-over a popup with responsible correction time services is displayed.

Btw, the nice thing about using service times is that no data modification is necessary. SLA data remains untouched, just the on-demand calculation is affected.

Comment by Alexei Vladishev [ 2021 Oct 13 ]

Support of excluded downtimes is coming in Zabbix 6.0 LTS soon. We are working on it.

Comment by Alexei Vladishev [ 2021 Nov 16 ]

It is under development in ZBXNEXT-6999





[ZBXNEXT-7006] Give customer power to approve new monitoring Created: 2021 Oct 18  Updated: 2021 Oct 18

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

Type: New Feature Request Priority: Trivial
Reporter: Aigars Kadikis Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task

 Description   

A low level discovery (LLD) can create new entities.

The idea is to give the power to customer to validate and approve new monitoring. Only after approval new items will be created on Zabbix proxy server. An extra point to this functionality is to stop automatic configuration update on Zabbix proxy. The configuration update on proxy must happen only after the client has approved new monitoring.






[ZBXNEXT-1115] additional comparison types in action conditions Created: 2012 Feb 10  Updated: 2021 Oct 15

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 0
Labels: actions, consistency, trivial
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

for some freeform text conditions in actions additional comparison types would be useful, otherwise it is not possible to (negate) match exact names

application can be
=
like
not like
missing : <>

trigger name can be
like
not like
missing : = and <>



 Comments   
Comment by Alexei Vladishev [ 2021 Oct 15 ]

Applications are already covered by tags starting from Zabbix 5.4.





[ZBXNEXT-6962] Cisco Webex Media Type Created: 2021 Sep 30  Updated: 2021 Sep 30

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

Type: Change Request Priority: Trivial
Reporter: Marco Koch Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 4
Labels: media, mediatypes
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Cisco Webex offers a webhock option: https://apphub.webex.com/applications/incoming-webhooks-cisco-systems-38054

Now please add an option or a template for Webex Media Type.






[ZBXNEXT-6795] allow a cascaded delete when deleting the last host in a maintenance Created: 2021 Jul 22  Updated: 2021 Sep 29

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

Type: Change Request Priority: Trivial
Reporter: Ronald Rood Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

currently when automation tools try to delete a host that is the last member in a maintenance the deletion fails because a maintenance should at least contain one host or group.
It is very likely that the maintenance should also be deleted.
Would it be feasible to add something like a cascade option to the host delete operation, such that the eventual effected maintenances would also be deleted?






[ZBXNEXT-2519] Move API to Zabbix Server Created: 2014 Oct 16  Updated: 2021 Sep 06

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

Type: New Feature Request Priority: Major
Reporter: Alexei Vladishev Assignee: Unassigned
Resolution: Unresolved Votes: 34
Labels: performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-10119 Method to go over all triggers given ... Closed

 Description   

There are number of drawbacks of current implementation of Zabbix API:

  • code duplication (C, PHP)
  • poor performance especially for template related operations
  • lack of bulk operations and in-memory cache
  • API code is too tied to front-end code (no clear separation)
  • API is not available without Zabbix front-end

It's proposed to move API to Zabbix Server side.



 Comments   
Comment by Marc [ 2014 Nov 15 ]

There should be a reliable mechanism (timeout?) to cancel or prevent expensive API requests.
Currently one can just restart the HTTP server. Restarting the Zabbix server is certainly no option.

Otherwise issues like ZBX-6763 might become a serious problem.

Comment by Marc [ 2014 Nov 15 ]

Btw, how about implementing this as a separate process accessing the shared memory of the server?

Comment by Andris Zeila [ 2014 Nov 21 ]

Yes, the current plan is to implement it as separate process(es). This will allow to partly re-use existing functionaly for some requests (for example template linking) and also will give access to configuration/value caches.

Comment by Oleksii Zagorskyi [ 2015 Aug 28 ]

Performance issue for template related operations discussed in ZBX-6118

Comment by OFN Team [ 2015 Nov 10 ]

We've had a number of comments from our developers that are creating micro services (which we'll run in application containers) that are looking for a restful end point to send metrics to. Will this be available on the proxy as well and will the API be expanded to allow updating item values?

Comment by Ross Peoples [ 2016 Feb 01 ]

Can we make this a separate component from the Zabbix server entirely so that it can be installed on a separate machine from the server? The reason I ask is this: the server already has a lot to do, ingesting data from the proxies, writing it to the database, monitoring anything not monitored by the proxies, calculating triggers and items, and running actions based on those triggers in addition to the other various tasks it has to do.

In a large enterprise environment, being able to horizontally scale is a requirement and thus far, we've been able to do that by adding proxies and additional web servers, but there can only be one Zabbix server. We are planning to start using the Zabbix API much more heavily in the next year, so being able to set up multiple API servers behind a load balancer would be extremely beneficial and take some load off the Zabbix server.

Comment by Ryan Armstrong [ 2016 Apr 03 ]

I agree with Ross. We definitely need to start separating the server into discrete, horizontally scalable micro-services. May need to look at memcached/redis for distributing in-memory caches between components.

I did consider prototyping a RESTful API written in C but it lead to another million new cool ideas and I couldn't decide where to start. For example, it really should sit in front of a shared Data Access Layer (or two: one for config, one for metrics) which could also be a discrete component with a RESTful/other API and then be used by the front-end, server, public API, etc.

So in summary, please don't move the API to the server binary; let's make it discrete and scalable.

Comment by Alexei Vladishev [ 2016 Apr 04 ]

Ryan & Ross, I totally agree with you. The API component must be as independent as possible and ideally shouldn't affect runtime processing of Zabbix Server. We may also give users a choice: run it as part of Zabbix Server or as a standalone process for those who prefer scalability. In both cases the API component shouldn't tightly coupled with Zabbix Server, there will be no shared resources at all.

From the other hand, having API on Zabbix Server side would allow interesting things like building distributed or HA Zabbix Server on top of the API or making all communications (server-agent, proxy-server) to be based entirely on API calls. Just imagine Zabbix Agent doing history.put or Proxy doing config.get. I like it, do you?

Comment by richlv [ 2016 Apr 04 ]

when decoupling the api, what about the server caches (value, configuration) ?
those would be very valuable to reuse for the api.
separate caching engines like redis could be considered, but the complexity of a zabbix deployment would increase massively

Comment by Ryan Armstrong [ 2016 Apr 05 ]

Yeah I think the caches are valuable to the API but do agree that redis/memcached/other would add install complexity.
Alexei, I definitely like it.

I understand this idea is turning into a complete redesign (Zabbix v4?), but if you will indulge me, I'd like to regurgitate the "million new cool ideas" that I feel may actually have value to you. Take it or tweak it or leave it I guess, but I feel some isolation and abstraction would make Zabbix stand out from the crowd.

In brief:

  • All shared memory caches are reimplemented as discrete services with private APIs (i.e. Zabbix implementation of redis/memcached/etcd)
  • Each worker process (currently discrete PIDs via fork()) migrated to a discrete service with private API (e.g. trapper, pinger, poller, trigger eval, action queue, etc.)
  • Two new Data-Access Layer (DAL) private APIs to abstract away the database (one for time series, one for config/other) to enable multiple backends (OpenTSB, MongoDB, etc.) without affecting other components. The config service could apply templates at runtime rather than storing duplicate data to disk (which is then expensive to update)
  • Use a message queue to improve API interconnects (pub/sub), atomicity of changes, producer/consumer load balancing, agent comms, delivery and queuing of metrics, actions, etc.
  • a watchdog service to make sure each component is started/listening
  • Public API is then a discrete service which leverages private APIs and DAL
  • Web front-end should exclusively use the public API ("eat your own dog food")

Advantages:

  • Improved (limitless?) scalability of each component (deploy as monolithic server or distributed micro-services (containerised?))
  • HA per component
  • Significantly improved extensibility (new DAL backends or event brokers would be so much easier!)
  • Improved topologies across network boundaries
  • Eliminate proxies (replace with ZabbixMQ or agent proxies like SCCM)
  • faster changes to templates via config API with updates published on the MQ (no bulk updates or syncers to DB)
  • Leverage service discovery protocols (e.g. consul)

Should I put together some sort of proposal on the wiki?





[ZBXNEXT-6823] Postman API Collection/OpenAPI Availability Created: 2021 Aug 10  Updated: 2021 Aug 10

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

Type: New Feature Request Priority: Trivial
Reporter: Shane Arnold Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be great if Zabbix could provide an API file in OpenAPI format, or, publish a "Postman Collection" that API developers could use to more easily develop against Zabbix.

[Publishing your docs | Postman Learning Center|https://learning.postman.com/docs/publishing-your-api/publishing-your-docs/]



 Comments   
Comment by Shane Arnold [ 2021 Aug 10 ]

See https://developer.connectwise.com/@api/deki/files/872/All.json?origin=mt-web as an example.





[ZBXNEXT-2621] Support LLD for Web Scenario's Created: 2014 Nov 28  Updated: 2021 Jul 15

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

Type: Change Request Priority: Major
Reporter: Frank Assignee: Unassigned
Resolution: Unresolved Votes: 75
Labels: lld, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-3147 Add webcheck prototypes to Zabbix Closed

 Description   

It would be nice if LLD could be used for web scenario's allowing mass vhosting checks.



 Comments   
Comment by Marc [ 2014 Nov 30 ]

Just to get it right, you're talking about something similar to "Web scenario prototypes" for LLD, right?

Comment by Frank [ 2014 Dec 01 ]

Yes, I'd like to auto-detect vhosts (which I'm already doing for a "simple" item/trigger check) and automatically do webchecks on them.

Comment by Jon Beilke [ 2016 May 06 ]

Using the Zabbix API as a workaround for auto generating web scenarios for now, but would really like to see this integrated into LLD. Any updates on this feature request?

Comment by Marc [ 2016 May 06 ]

jrbeilke,
unfortunately it's not on the roadmap yet. Possibly see "(Co-)sponsoring development" for the fastest way to get it there

Comment by Evan Montgomery-Recht [ 2016 Oct 24 ]

Can you provide an example of how to add a web scenario via Zabbix API? Ideally it would be a multi-step scenario.

Basically we have a situation where we have about 60 web applications is various stages of the SDLC. We need a way to dynamically detect if a application has been deployed to one of our servers. This detection would occur based on a 'is-URL' present (or does it respond back to the right status code) in a template. If so, add application to be monitored. (Ideally we would need to be able to say, if down for at least a week, or some other defined timeframe, it's likely no longer deployed.)

Comment by Jon Beilke [ 2016 Oct 24 ]

Should be covered on the Zabbix doc site - https://www.zabbix.com/documentation/3.2/manual/api/reference/httptest/create

{
    "jsonrpc": "2.0",
    "method": "httptest.create",
    "params": {
        "name": "Homepage check",
        "hostid": "10085",
        "steps": [
            {
                "name": "Homepage",
                "url": "http://mycompany.com",
                "status_codes": 200,
                "no": 1
            },
            {
                "name": "Homepage / About",
                "url": "http://mycompany.com/about",
                "status_codes": 200,
                "no": 2
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}

We're using Ruby as it allows us to fetch a JSON list of sites from an internal API and then add the necessary Web Scenarios to Zabbix with this zabbixapi gem - https://github.com/express42/zabbixapi

The readme for the zabbixapi gem includes an example for adding Web Scenarios (a.k.a. httptests). The steps are passed as an array to the API as part of the Web Scenario, and are ordered based on the number (no) property.

Comment by Vladimir Ulogov [ 2016 Oct 25 ]

But long-term solution for this, would be a support of the WebScenario prototypes in LLD. I am voting for this.

Comment by Eduard Muradov [ 2020 Feb 06 ]

Hey. Is there any news about this feature?

Comment by Ben Hanson [ 2021 Jul 15 ]

I can see that using web scenarios prototypes in LLD might be a bit counterintuitive, since scenarios would likely be individual to an apache/iis/etc application.  Maybe it would make more sense to have an improved HTTP agent item to do single URL checking, since that is already a prototype.

It's just so much easier to do a clean web scenario + trigger.

So is there a way to make an HTTP agent item that behaves like a single step web scenario?

Comment by Slash [ 2021 Jul 15 ]

LLD web scenario can be very useful when you need to monitor several websites on a reverse proxy cluster or even a single http server. You can also monitor several endpoints of a specific application.

Currently we have to create a userparameter with LLD to perform this action.





[ZBXNEXT-6759] Expand item.get functionality to include trigger expressions when using "selectTriggers" Created: 2021 Jul 01  Updated: 2021 Jul 01

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 5.0.13, 5.4.2
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Edgars Melveris Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

It would be very convenient to load more data with the item.get method instead of having to do another call with trigger.get just the trigger expression.






[ZBXNEXT-15] possibility to export and import Zabbix users Created: 2009 Jun 30  Updated: 2021 Jun 01

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

Type: New Feature Request Priority: Major
Reporter: Igor Danoshaites (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 11
Labels: usability, usergroups, users, xml
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Will be nice to have possibility to export and import Zabbix users.



 Comments   
Comment by Cal Sawyer [ 2009 Sep 10 ]

To add to this - ability to clone existing group permissions to a new group

Comment by Matt Tharma [ 2015 Dec 09 ]

+1





[ZBXNEXT-6403] Support for trigger tags macros parse via API Created: 2020 Dec 16  Updated: 2021 Jun 01

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.27, 5.0.6
Fix Version/s: None

Type: Change Request Priority: Medium
Reporter: zhangqi Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 3
Labels: api, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Steps to reproduce:

 Parse tags macros in trigger.get method, for example add expandTags property.

Result:
        get expanded tags via API



 Comments   
Comment by Alexander Vladishev [ 2020 Dec 21 ]

Could you please provide use case/s for this feature?

Comment by Mateusz Berkieta [ 2021 Jun 01 ]

Hello

 

I have the same need and I can provide the use case. We use lld to discover some data. Each discovered subject consists of several information's which are then created as items. Then all items are used to create one trigger. One item goes to trigger subject (name) and the rest are added as tags.

 

We have an umbrella monitoring system which gets all active triggers along with hosts and especially hosts groups. We want to present data in tags in separate attributes (columns) in our umbrella system.

 

I hope that this explains the use case





[ZBXNEXT-6640] Integrated Swagger UI for Zabbix Rest API Created: 2021 Apr 26  Updated: 2021 May 20

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

Type: Change Request Priority: Trivial
Reporter: Dimitri Bellini Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Could be very to have the Zabbix RestAPI from a nice useful swagger interface, i know is not so important but could be a very great addiction for RestAPI user experience and documentation.

Ref. : https://swagger.io/



 Comments   
Comment by Matthew Steeves [ 2021 May 20 ]

This would be awesome to have, because with the Swagger (now OpenAPI) spec published, the Zabbix API could be consumed by tools such as https://swagger.io/tools/swagger-codegen/ or https://github.com/Azure/autorest/.

The beauty of being able to use the above tools would be that every time a new version of Zabbix is released, you don't have to manually update whatever Zabbix API module you use.

e.g. I use psbbix to connect to Zabbix API using Powershell. I just finished scrolling through the list of API updates from 5.2 to 5.4, and it would mean A LOT of updates need to be done to the module. At least theoretically, if Zabbix published it's API spec in OpenAPI, I could just run the latest spec through the API code gen tool, and have an updated Powershell module, ready to take advantage of the latest updates to the API.





[ZBXNEXT-6638] Expand Operationnal Data through trigger.get API Created: 2021 Apr 24  Updated: 2021 Apr 24

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 5.2.6
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Romain Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: macros, triggers
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Hello,

 

Following this piece of documentation it appears that we can get opdata through the trigger object :

https://www.zabbix.com/documentation/current/manual/api/reference/trigger/object

But the trigger.get reference doesn't mention expandOpdata Flag :

https://www.zabbix.com/documentation/current/manual/api/reference/trigger/get

 

At the moment we could get the data from Operationnal but macros are not expanded.

 

Thanks in advance,






[ZBXNEXT-5010] Expose Queue information (queue.get) via API Created: 2019 Feb 06  Updated: 2021 Apr 20

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.4
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Christian Anton Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 8
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

For several use cases, such as analyzing and correlating data from Zabbix and faults happening while monitoring, it would be very helpful to be able to fetch queue information via the REST API.

In ZBXNEXT-1945 I have understood that the Queue stats are not anymore calculated in the UI, but just fetched directly from the Zabbix Server via the TCP socket. I would like to fetch this same information via the API, which should be basically just "exposing" the function to the API.



 Comments   
Comment by Mathieu M. [ 2019 Jul 25 ]

Hello

We also need this function cause at the moment we are not able to make diagnostic of the queue problem:

 

Queue Details: "Displaying 480 of 153645 found"

Not Very funny => No filters on queue page, no method to either get it via API, nor via DB....

 

Regards





[ZBXNEXT-6551] Whether the Zabbix network topology function can add elements to the map through the API Created: 2021 Mar 08  Updated: 2021 Mar 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.28
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: 苟亚材 Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Steps to reproduce:

  1. I created a map in Zabbix
  2. I want to add network devices to the Map through the Zabbix API
  3. I refer to the API documentation, and there are only a few methods about operating on the map, such as create, get, delete, and update
  4. May I ask whether Zabbix can realize this requirement at present

Result:

Expected:

 






[ZBXNEXT-6435] Ability to change secret macro by owner or superadmin Created: 2021 Jan 12  Updated: 2021 Jan 12

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

Type: Change Request Priority: Medium
Reporter: Andrei Gushchin (Inactive) Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Currently secret macros cannot be viewed in UI or corrected in case of typos.
So it would be useful to have a chance to change it by owner or superadmin role.






[ZBXNEXT-2260] Deprecated macros should be removed Created: 2014 Apr 14  Updated: 2020 Oct 21

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

Type: Change Request Priority: Major
Reporter: Alexander Vladishev Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: macros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Support of deprecated macros like {IPADDRESS}, {HOSTNAME}, {TRIGGER.KEY}, {TRIGGER.COMMENT}, {STATUS}, {PROFILE.*} should be dropped.

Upgrade path should replace deprecated macros by supported analogs.



 Comments   
Comment by Juris Miščenko (Inactive) [ 2014 Apr 14 ]

Implemented in svn://svn.zabbix.com/branches/dev/ZBXNEXT-2260

Comment by richlv [ 2014 Apr 14 ]

(1) how exactly is this being done ? just by dropping the support ?
if so, this has a potential of massively messing up with existing users that are upgrading - they have huge amounts of items, actions and other configuration entities that will be broken now, and there is no way to easily fix them - they either have to find each instance manually in the frontend, or know all tables in the db where this should be changed and do direct sql.

that would be seriously, seriously bad.

sasha Will be introduced an upgrade patch. All deprecated macros will be replaced by supported analogs.

<richlv> HOORAY, thanks
we will need a nice spec, listing all macros and locations where they will be changed

jurism We need a specification that lists database tables and fields where the macros are stored and what macros can be placed in those fields.

jurism Database patch added.

Comment by Alexander Vladishev [ 2014 Apr 15 ]

(2) [PS] please review my changes in r44407.

jurism Reviewed. RESOLVED.





[ZBXNEXT-686] Create infrastructure for continuous integration and unit testing Created: 2010 Dec 08  Updated: 2020 Oct 21

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

Type: Change Request Priority: Major
Reporter: Alexei Vladishev Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It should probably be a combination of PHPUnit, Hudson and misc code analysers. Let's see what we get at the end.



 Comments   
Comment by richlv [ 2011 Feb 28 ]

created by now

Comment by richlv [ 2011 Mar 02 ]

reopen for moving

Comment by Andrejs Čirkovs (Inactive) [ 2014 Jul 04 ]

(1) We should get rid of testhelpers instead using ZbxExitException instead of exit() / die()

Comment by Andrejs Čirkovs (Inactive) [ 2014 Jul 04 ]

I've implemented basic fixture-based tests in development branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-686

Comment by Andrejs Čirkovs (Inactive) [ 2014 Jul 25 ]

Basic file-based tests and parameter handling implemented in r47620 according to spec.

Comment by Andrejs Čirkovs (Inactive) [ 2014 Jul 29 ]

File-based tests with complicated scenarios and Respect/Validation validation implemented in r47644.

Comment by Pavels Jelisejevs (Inactive) [ 2014 Jul 30 ]

(2) We need to be able to validate arrays using the same validators as separate values. Something like the code below, but simpler:

response:
  __assert: count(3)
  __keys:
    __assert: sequentialKeys
    __each:
      __assert: int
  __each:
    id:
      __assert: notEmpty:int
    hostname:
      __assert: notEmpty|string|length(5,10)
    templates:
      __assert: array|length(3)
      __each:
        __assert: string|length(0,12)

A similar example with equals support:

response:
  __assert: count(3)
  __keys:
    __assert: sequentialKeys
    __each:
      __assert: int
  __each:
    id:
      __equals: 1
    hostname:
      __equals: Zabbix server
    templates:
      __equals: [100, 101, 102]

andrewtch RESOLVED in r47667. Also, a new validator has been added, 'sequence' (implementing sequentialKeys as above).
Also, I've implemented nice exceptions with paths like "Validation definition is not an array on path "_assert->_keys->_each[0]".
I've also added support of short syntax turning:

hostids:
    _each:
        _assert: int

into:

hostids:
    _each: int

in r47671.

jelisejev CLOSED.

Comment by Andrejs Čirkovs (Inactive) [ 2014 Aug 01 ]

(3) We should NOT use direct header() call, using wrapper instead.

RESOLVED in r47747.

jelisejev CLOSED.

Comment by Andrejs Čirkovs (Inactive) [ 2014 Aug 01 ]

(4) We should avoid all

__DIR__ . '/../../../../../.......'

constructs and make some path resolver (probably, these values should be set inside phpunit config file).

jelisejev WON'T FIX.

Comment by Andrejs Čirkovs (Inactive) [ 2014 Aug 04 ]

(5) We should use symfony/console table helper while displaying table rows in sql assertion instead of json_encode.

jelisejev CLOSED.

Comment by Pavels Jelisejevs (Inactive) [ 2014 Oct 29 ]

A lot of changes to the API tests have been made, so the comments above can be ignored.

In short, branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-686 implements a framework for writing API tests.

Some changes have been made to frontend API client. It now fully implements the JSON RPC protocol. Please test that nothing has been broken in the frontend and the API endpoint.

RESOLVED.





[ZBXNEXT-6260] Improve map.update and map.create API Created: 2020 Oct 15  Updated: 2020 Oct 15

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

Type: New Feature Request Priority: Trivial
Reporter: Shane Arnold Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

At the moment, it's not "simple" to create a map using the API when you need to create numerous hosts . The API would be much nicer to use if I could just specify an array of objects of "type", being an elementtype;

i.e if I wanted to create a map with hostid "1001","1002", the API should allow me to specify these hostid's as an array. Because the API already asks for elementtype, maybe it could be;

    "method": "map.create",
    "params": {
        "name": "{{Name}}",
        "width": 1920,
        "height": 1080,
        "elements": [
            {
                "host": {
                	"hostid": ["1001","1002"],
			"iconid_off": "151"
		},
                "hostgroup": {
                	"groupid": ["101"],
	                "areatype": 0,
	                "elementsubtype": 1,
                }

 e.t.c

Basically I just want to be able to loop through an output for ids, create an array and then tell zabbix to create that array of hosts. I don't see a need to individually specify iconid in this use case.






[ZBXNEXT-6214] The concept of 'read only' macros and macro 'validation' Created: 2020 Sep 25  Updated: 2020 Sep 28

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

Type: Change Request Priority: Trivial
Reporter: James Cook Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 4.4+



 Description   

When defining a macros in templates it would be nice to be able to set whether it is a read only macro that can not be changed anywhere but the template at the source.

If hosts or other templates were to inherit the macro it would be greyed out and not made available to edit.

This way it removes the ability for people to 'break' monitoring by incorrectly overwriting macros that are to never be changed.

I also have another similar feature request (ZBXNEXT-3192) in which macros could have defined validation at the source. For example on a port monitoring template you may specify a macro containing a port which should be an integer between 0-65535.

This way it removes the ability for people to 'break' monitoring by incorrectly setting bad values such as 'abc' in the port case.

I know this could be an education thing, however sometimes you cant protect monitoring from people making mistakes.

 

 



 Comments   
Comment by Alexei Vladishev [ 2020 Sep 28 ]

I think that this idea correlates nicely with other suggestions related to tags, i.e. ability to define types and validations rules for tags, policies on what tags can or must be used and where, etc.

Comment by James Cook [ 2020 Sep 28 ]

Thanks for the feedback and for sure macros, tags would benifit from similar readonly/validation features. Im finding with Zabbix at scale the ability to protect against accidental breakages because of bad configuration data as becoming crucial.





[ZBXNEXT-6205] Add more control on macro precedence in templates Created: 2020 Sep 22  Updated: 2020 Sep 22

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

Type: Change Request Priority: Medium
Reporter: Pascal Uhlmann Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: macro, template
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The documentation https://www.zabbix.com/documentation/current/manual/config/macros/user_macros explains how Zabbix resolves macros. In most cases this may be sufficient. But sometimes one needs more control to define the precedence of macros defined in templates.

Example situation:

  • Main OS template "Linux" for each Linux host.
  • Separate template for "SLES" which inherits from "Linux" and has:
    • Additional items and triggers
    • Some macros set to a different value, for example:
      • {$NTP_SERVICE_NAME} set to "ntp"
  • Template for NTP service which is named "ntp" or "ntpd" on different Linux distributions.
    • Linked directly to the host
    • Macro {$NTP_SERVICE_NAME} set to "ntp"
    • Item service.status[\{$NTP_SERVICE_NAME}]
  • The resolved macro value will depend on the template ID which one cannot change. So in some cases it will have the expected value and in some it won't.

So I think it's important to add the ability to have more control on it. One option could be adding a priority to macros defined in templates. Default will be "0" which would result in the current behaviour. If one sets a macro's priority >0 the one with the highest priority should have precedence.






[ZBXNEXT-6151] Webscenario item update performance improvement Created: 2020 Aug 20  Updated: 2020 Aug 20

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

Type: Change Request Priority: Trivial
Reporter: Valdis Murzins Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: performance, webscenario
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently webscenario items and their keys in database are containing name of webscenario and name of webstep.
This means that each time, webscenario or it's step's name is updated, we need to update all related items (this is a heavy update, especially if inheritance is taken into account).

This can be avoided, if we will introduce macros for webscenario name and webstep name and replace all webitem names and keys with strings, containing these macros.






[ZBXNEXT-6126] OID in item prototype name Created: 2020 Aug 09  Updated: 2020 Aug 09

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

Type: New Feature Request Priority: Trivial
Reporter: Damon Hagerstrom Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Very specific example:
enterprises.cisco.ciscoMgmt.ciscoProcessMIB.ciscoProcessMIBObjects.cpmCPU.cpmCPUTotalTable.cpmCPUTotalEntry.cpmCPUTotalPhysicalIndex.7 = INTEGER: 131

The VALUE in the above entry is a reference to the INDEX of the item in the entityMIB.

As far as I have been able to determine, there is no way of creating an LLD item which returns:
'{#entPhysicalName}' utilization: {#cpmCPUTotal5sec} %

There are many questions about using OID's in the name field, all of which are easily overcome with proper macro's, this doesn't seem to be the same.

The SNMP indexes are different for the same item.

Cisco templates generally, and those specifically for resources or even for CPU don't have a solution to this issue.






[ZBXNEXT-5762] Implement custom buttons with custom actions on alerts & problems widgets Created: 2020 Feb 18  Updated: 2020 Jul 20

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

Type: New Feature Request Priority: Trivial
Reporter: Alex Klimov Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: integration
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In order to facilitate the possibility of integrating the monitoring system with other systems (for example, helpdesk-systems), it would be good idea to implement custom buttons with custom javascript actions (with ability post or get html requests) on alerts and problems widgets. JS actions can receive triggerid, eventid, etc as parameters.



 Comments   
Comment by Valdis Murzins [ 2020 Feb 18 ]

Aren't trigger URLs good enough?
You can create and URL, that will contain a link with id's you require, like triggerid, hostid, eventid, item value, etc.
This link could lead either to custom page with your javascript or to helpdesk-system directly.

As for alerts, you can create a webhook media type, that will send the request to remote system automatically, as configured in alerts.

Comment by Alex Klimov [ 2020 Feb 18 ]

1. This is not about automatically request. This is about possibility do something with active trigger (or past problem) in fast and convenient way.

2. Trigger URL is the only field of this type in trigger and if i use it i will not be able to use this field for another purposes.

3. Button is more compact than URL,

4. Helpdesk may use get, post, put requests, but url is only get request.





[ZBXNEXT-3192] Some form of macro value validation required Created: 2016 Mar 15  Updated: 2020 Jun 30

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

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


 Description   

As macros can be used in such places like trigger expressions it would be nice to provide some form of validation of the macro data to ensure that the values actually in the macro conforms to what is expected.

For example you may have a macro "{$FS_CAPACITY_THRESHOLD_CRIT}" which is used in a trigger expression and if this does not conform to a numeric the trigger expression would break.

A suggested / possible way would be for every macro have a macro data type dropdown (default to string) field containing data types.

When someone enters the value or updates the value of the macro it could do some validation at that point.



 Comments   
Comment by Ryan Armstrong [ 2016 Mar 15 ]

... or better notification if a trigger fails to evaluate.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Jan 20 ]

If we do this "strictly", it will be a huge challenge to keep track of where certain macros are used. Especially in the case when due to trigger update macro is not used as numeric any more and shouldn't be checked to be numeric in macro update forms. But we can do it in the form of "hints". "Hint" will provide information about contexts in which Zabbix has spotted the macro and whether macro value fulfills syntax requirements for these contexts. Since "hints" may not be up-to-date (for simplicity, Zabbix will only add them and never remove), user should be able to edit them manually and override them if desired.

Comment by James Cook [ 2017 Jun 29 ]

Hi Glebs,

Thanks for the feedback.

I would think the following may apply to my thoughts:

  • The macro validation would only be configured on the parent macro only and not on inherited macros as they would only allow you to change the inherited macro contents.
  • The macro validation would only be evaluated when the parent macro or inherited macro contents are updated.
  • By default every macro would have no validation and allow any text for the macro contents (this may avoid being strick and allows for opt in)
  • The validation could be specific options that can be selected such examples as "integer->range|min|max", "boolean", "string->length|regex|set|interval" etc... (This will allow zabbix to build on validations as required and maintain some form of control)

I guess however the logic is that determines whether the macro is inherited or not would have to carry over the validation from the parent macro and not allow this to change for the child macro? This may require a schema change to identify macros and inherited macros as two separate objects?

Where this comes in handy it will avoid triggers failing when macros are used, item collection having problems when macros are used for intervals etc...

I see macros and regular expressions (see ZBXNEXT-3571) will fundamentally improve the flexibility and how Zabbix works in large environments at scale where you only want to change "data" to differentiate the outcome rather than configuration like "triggers" for servers etc...

I think hints may be a start however if the above can be considered I would think this feature would allow for some serious usage by the community.

Regards
James

Comment by James Cook [ 2020 Jun 30 ]

Hi Glebs,

Its been a while .... Any ideas about implementing this.

This will become super handy for Zabbix admins to configure the templates with macros + validation (regex or something) and allowing non-Zabbix admins to update the values of inherited macros on profiles/classes or hosts where the parent macros validation from the template is always checked.

Adding the setting to allow for parent macros to be read only or writable would also be a bonus.

This way we could design templates where only threshold macros could be modified and validation would be present to ensure correctness.





[ZBXNEXT-6032] Allow users to reset their password Created: 2020 Jun 25  Updated: 2020 Jun 25

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 3
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be great if users could reset their own password ("forgotten password" functionality).
It would likely send email to all defined email media entries. Would only work for users with internal auth. Others might get an email saying "Your password reset was requested, but <LDAP|HTTP|whatever> is used, blah".






[ZBXNEXT-5998] New Macro - {ITEM.ERROR<1-9>} Created: 2020 Jun 02  Updated: 2020 Jun 02

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F), Templates (T)
Affects Version/s: 3.0.30, 3.0.31, 4.0.20, 4.0.21, 4.4.8, 4.4.9, 5.0.0, 5.0.1
Fix Version/s: None

Type: Change Request Priority: Medium
Reporter: Diego Henrique Stammerjohann Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Hello,

I need a new macro to improve readbility of a problem generated by a HTTP Agent.

{ITEM.ERROR<1-9>}

So in the trigger description I can put the exact error that ocurr when the URL return an error code different from 200:

Response code "503" did not match any of the required status codes "200"






[ZBXNEXT-5979] Ability to post JSON code snippets into a Web form Created: 2020 May 23  Updated: 2020 May 23

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

Type: New Feature Request Priority: Low
Reporter: Victor Sudakov Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 3
Labels: api, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

As many Zabbix administrative tasks such as batch addition of hosts etc is most convenient via the JSON API, there should be a possibility to paste JSON code snippets directly into a Web form of the frontend interface, like it is done in the AWS management console. This would eliminate much of the unnecessary hassle with curl, wget, web authorizations etc. You just prepare a JSON screnario, copy and paste it into the form and press "Execute."






[ZBXNEXT-5749] Informational times and date for hosts Created: 2020 Feb 10  Updated: 2020 May 22

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

Type: New Feature Request Priority: Trivial
Reporter: Markus Fischbacher Assignee: Michael Veksler
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be great if we would have some additional information about host automatically generated and stored.

For example:

  • Date and time of first registration/contact of the host
  • Date and time of last contact with the host ( I know we have this already with the zabbix.ping item for example. But it would be great if we would have this property on the hand in API and the frontend too ).
  • Date and time of the last auto-register action

All that nicely present in the frontend in some ways. For example in the Inventory > Hosts > Overview View. Also a new Reports > Newest Hosts and Reports > Not available Hosts would be a great combination then.

I don't mean additional items for that all but really properties to the host that are handled by zabbix itself. It would help in big installations to get more insights and also in highly dynamic situations like with containerized things or dynamically generated infrastruction in Clouds (Azure, AWS, etc.).

Providing this uniformed infos for each host over the API would also make it attractive for enterprise usage as one might have to couple Zabbix to a external Inventory/CMDB.

 



 Comments   
Comment by Markus Fischbacher [ 2020 Feb 10 ]

Would be a good combination with: ZBXNEXT-5742

Comment by Markus Fischbacher [ 2020 Feb 10 ]

Currently there are awkward but usable workarounds:

  • for last autoreg run we have a action which triggers a remote command with zabbix_sender
  • for first registered I create a file on package installation and remove that with my autoreg script after first usage
  • for unregistration I execute a zabbix_sender rpm preun script.

That's all only possible because we use a small wrapper installer package.





[ZBXNEXT-5918] Unable to add just one link using map.update Created: 2020 Apr 28  Updated: 2020 May 07

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

Type: Change Request Priority: High
Reporter: Dhiman Das Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I am using Zabbix API and method map.update to add a link between 2 elements, its resetting / removing the other, already existing links between other elements is same map.

Sharing a sample payload is like. I am using python's requests module.

payload = {
 "jsonrpc": "2.0",
 "method": "map.update",
 "auth": token,
 "id": 1,
 "params": {
 "sysmapid": "46",
 "links": [{
 "selementid1": "122",
 "selementid2": "119",
 "color": "ffff00",
 "label": "port:2049",
 "permission": 2
 }, {
 "selementid1": "118",
 "selementid2": "121",
 "color": "ffff00",
 "label": "port:9092",
 "permission": 2
 }],
 },
}





[ZBXNEXT-2841] Feature: Zabbix API *.get() calls to expand macros Created: 2015 Jun 05  Updated: 2020 Apr 21

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.4.5
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Lior Goikhburg Assignee: Unassigned
Resolution: Unresolved Votes: 28
Labels: macros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Currently when using api .get() calls on items, triggres etc. the returned results contain raw (unexpanded) macros {$XXX}. This is meaningless outside of zabbix, and would be more useful if the results have the macros expanded.



 Comments   
Comment by Marc [ 2015 Jun 05 ]

Well, expanding macros is already supported for some API methods - e.g. for trigger.get().

Comment by Lior Goikhburg [ 2015 Jun 08 ]

Which version does support that ?
I've just checked against 2.4.5:

{
  "status": "0",
  "description": "{$COMPONENT} Status URI HTTP Code",
  "state": "0",
  "url": "",
  "type": "0",
  "templateid": "17983",
  "lastchange": "1433361132",
  "value": "0",
  "priority": "3",
  "triggerid": "17992",
  "flags": "0",
  "comments": "",
  "error": "",
  "expression": "{22975}=1"
}
Comment by Lior Goikhburg [ 2015 Jun 08 ]

I'm particularly interested in having macros expanded in item keys, but having macros expanded in all object properties would be even better.

Comment by Marc [ 2015 Jun 08 ]

zerthimon, regarding trigger.get() see corresponding API documentation and watch out for "expand*" method parameters.
As for item.get() that would actually make no real sense to me, since the unresolved macro is part of the item key and gets resolved later depending on context by server. Afaik there is no technical use case of an item key with resolved macros in Zabbix at all.

I understand that there might be a custom need to get macros of item key parameters resolved. Anyhow, from my personal pov this should probably not be part of this method. Such a edge case is likely better covered by resolving it in the custom application if needed.

Comment by David [ 2015 Jun 16 ]

I disagree, knowing what the macro value was at the time of data collection is very useful, particularly if it has ever been changed. Also, if you are archiving data elsewhere, the expanded key is more useful than a macro. I assume this is already being expanded in order to tell agents what the value is, can't this code be reused?

From our testing, even host.get only returns expanded macros for macros set on the host, not ones inherited from templates.

Comment by viktorkho [ 2015 Jun 30 ]

In more wide case, it will be rigth to have possibility to "expand" macro's value in every place, where mocros can be used. Isn't it?

What is the developers' reason to go in other way?

Comment by Chris Christensen [ 2015 Oct 29 ]

Agree (with David and viktorkho). There's also some precedent on external libs to try and manage this, like Zabbix2 Perl API client - and interesting note by the developers on this: "we are not expanding hostmacros or globalmacros, those are problematic". I think the implementation details of this are trapped inside the Zabbix application and should be properly supported via the API.

Comment by Chris Christensen [ 2015 Oct 29 ]

Another example of macro replacement challenges: https://github.com/alexanderzobnin/grafana-zabbix/pull/106

Comment by Aleksandrov Artyom [ 2016 May 17 ]

It's may be really useful! In another case we should have expand method for every parameter which can has macros.

For example there is no expandUrl method now but you can use macro there.

Comment by Egon Burgener [ 2017 Mar 21 ]

The same with tags results in trigger.get (selectTags set)

Comment by richlv [ 2017 Sep 11 ]

might be worth listing where expansion would be desired. please correct and expand as needed.

trigger.get explicitly allows 3 fields to be expanded already :

  • expandComment (actually, description)
  • expandDescription (actually, name)
  • expandExpression

items :

  • name
  • key
  • description
  • update interval

hosts :

  • description
  • interface... something ?
Comment by James Cook [ 2020 Apr 21 ]

Hi Richlv,

Were suffering a fair bit with this.

We use user macros a lot to allow configuration in templates that is controlled per host for example in template for PgBouncer port monitoring we have

ITEM NAME - PgBouncer Port - Status ({$APP.PORT.CONF.NUMBER:"PgBouncer"}:tcp)
ITEM KEY - net.tcp.listen[\{$APP.PORT.CONF.NUMBER:"PgBouncer"}]
MACRO - {$APP.PORT.CONF.NUMBER:"PgBouncer"} = 6432

On specific hosts we just override the macro '{$APP.PORT.CONF.NUMBER:"PgBouncer"}' with another port such as 7432 which requires no template change to monitor PgBouncer on a different port.
 
We use Grafana for some visualization and it pulls out the item name as 'PgBouncer Port - Status ({$APP.PORT.CONF.NUMBER:"PgBouncer"}:tcp)' rather than 'PgBouncer Port - Status (6432:tcp)'.

We also have some SLA reporting which uses Zabbix data and this is affected in the same way.

It would be nice for the API to perhaps have an option (ExpandMacros) which would be non breaking and this would replace all macros where ever you can set them in the object (Item/Trigger/Hosts etc...)

We try to use user macros everywhere we can to enable template flexibility across several clients as they all have different needs and configurations.

Cheers

James





[ZBXNEXT-5891] Host Issues widget not showing resolved issues, cannot view history for host Created: 2020 Apr 06  Updated: 2020 Apr 14

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

Type: Change Request Priority: Trivial
Reporter: Marcin Gosiewski Assignee: Aigars Kadikis
Resolution: Unresolved Votes: 0
Labels: history, problems, screens
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Steps to reproduce:

  1. Create host with any trigger that will resolve itself after some time (for instance 'temperature rising'
  2. Trigger the trigger,
  3. Resolve the trigger
  4. Create screen for host
  5. Add "Host Issues" widget
  6. Add "History of events" widget

Result:

On the screen there is no possibility to see the raised events history for the host/

On the "Host issues" the items that are resolved are not showing (no "history" filter available)

On the "History of events" there is no way to filter by host. So there is a lot of junk from other hosts here.

Expected:
Any possibility to see the events that raized and were resolved in the meantime for the host. Either by adding "history" filter for Host Issues, OR by allowing filtering the History of events by Host.



 Comments   
Comment by Valdis Murzins [ 2020 Apr 06 ]

Is creating a dashboard an option to you? If yes, then "Problems" widget on dashboard seems to cover your use case.
(You will need to select "Show: History" and Host, you are interested in.)

Comment by Marcin Gosiewski [ 2020 Apr 07 ]

The dashboard is not an option because you cannot define dashboard in a template. You can define screen in the template. If you wish to create a template for a device and this template should include issues for this device you are out of luck. There is NO standard way to achieve this goal anyhow. 

Adding one filter for issues history to limit it by host/group of hosts would be great...

...and adding one filter for hosts problems to include also the issues that had been resolved in the meantime would be  also great. Especially that a couple of versions ago there was a possibility to do this. 

Comment by Valdis Murzins [ 2020 Apr 14 ]

Hello damago1,

As we are planning to completely replace screens with dashboard, we are not making any new features in screens.
On the other hand we are improving dashboards to have all functionality, that previously was done by screens.
One of features that we still are missing is screen replacement in templates. This feature will be coming in upcoming versions.

Comment by Valdis Murzins [ 2020 Apr 14 ]

I converted the issue to feature request to use for future development of host screen conversion to host dashboards.





[ZBXNEXT-5842] API function to list data from "Reports" => "Availability report" Created: 2020 Mar 26  Updated: 2020 Mar 26

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

Type: Change Request Priority: Trivial
Reporter: Aigars Kadikis Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task

 Description   

Please create API procedure to list data from "Reports" => "Availability report".






[ZBXNEXT-3352] customize created LLD trigger severity based on a filter Created: 2016 Jul 27  Updated: 2020 Mar 05

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

Type: Change Request Priority: Trivial
Reporter: Васильченко Антон Сергеевич Assignee: Unassigned
Resolution: Unresolved Votes: 12
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBXNEXT-3035 Ability to filter LLD triggers creati... Closed

 Description   

Create triggers by using a filter, like LLD rule.

To make choose to create trigger, or not. Or choose trigger severity

Example:

{
  "data":[
  { "{#FSNAME}":"/",                           "{#FSTYPE}":"rootfs"   },
  { "{#FSNAME}":"/sys",                        "{#FSTYPE}":"sysfs"    },
  { "{#FSNAME}":"/proc",                       "{#FSTYPE}":"proc"     },
  { "{#FSNAME}":"/dev",                        "{#FSTYPE}":"devtmpfs" },
  { "{#FSNAME}":"/dev/pts",                    "{#FSTYPE}":"devpts"   },
  { "{#FSNAME}":"/lib/init/rw",                "{#FSTYPE}":"tmpfs"    },
  { "{#FSNAME}":"/dev/shm",                    "{#FSTYPE}":"tmpfs"    },
  { "{#FSNAME}":"/home",                       "{#FSTYPE}":"ext3"     },
  { "{#FSNAME}":"/tmp",                        "{#FSTYPE}":"ext3"     },
  { "{#FSNAME}":"/usr",                        "{#FSTYPE}":"ext3"     },
  { "{#FSNAME}":"/var",                        "{#FSTYPE}":"ext3"     },
  { "{#FSNAME}":"/sys/fs/fuse/connections",    "{#FSTYPE}":"fusectl"  }
  ]
}

Create triggers for all "{#FSNAME}" except "/lib/init/rw,/sys/fs/fuse/connections".

And for all created triggers severity is Averege, except "/home, /tmp", which severity is High.



 Comments   
Comment by richlv [ 2016 Jul 27 ]

lld trigger filtering is a duplicate of ZBXNEXT-3035
customising severities is different, though (and seems to be a bit complex)

Comment by Aleksandrs Saveljevs [ 2016 Aug 01 ]

Updated description to reflect the trigger severity request only.

Comment by Alexei Vladishev [ 2020 Mar 05 ]

It is very much similar to https://support.zabbix.com/browse/ZBXNEXT-3035.

Comment by Alexei Vladishev [ 2020 Mar 05 ]

This functionality will be implemented under https://support.zabbix.com/browse/ZBXNEXT-3035 in 5.0 or 5.2 along with ability to override creation of LLD object and some of their properties (like trigger severity, item interval, host template linkage, etc).





[ZBXNEXT-5780] Allow to use step durations longer than 1 week in Operations Created: 2020 Feb 27  Updated: 2020 Feb 27

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F)
Affects Version/s: 4.4.6, 5.0.0alpha2
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Alex Kalimulin Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: actions, escalations, frontend, operations
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

 

There are use cases that require to send reminders about problems on a monthly basis. Currently it's not possible to define step duration longer than 1 week in Actions -> Operations. This seems like an artificial limitation. Please lift this limit.






[ZBXNEXT-5561] Configuration -> Hosts: Templates filter does not show if template is inherited Created: 2019 Nov 11  Updated: 2020 Feb 04

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

Type: Change Request Priority: Minor
Reporter: Filipe Paternot Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu container 4.0.7



 Description   

In `Configuration -> Hosts` page, we can filter by templates. If we search for a template that is inherited by other however, you get no results.

 

The documentation http://zabbix.com/documentation/4.0/manual/web_interface/frontend_sections/configuration/hosts does not make clear if this should hold true for inherited templates. That omission suggests that it should work for all kinds of templates: direct link or inherited ones.

 

This ticket aims at getting that filter to work for inherited templates as well.

 

Managed to reproduce on 4.0.7 and 4.4.1.



 Comments   
Comment by Alexei Vladishev [ 2020 Feb 04 ]

You are correct, it has to be fixed.





[ZBXNEXT-5669] Expose user session data in the API Created: 2020 Jan 03  Updated: 2020 Jan 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.4.4
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be useful to expose user session data in the API.
That would allow to monitor the number of unclosed sessions and, to some degree, user access rate.



 Comments   
Comment by Alexei Vladishev [ 2020 Jan 31 ]

Not sure if it is a good idea to expose this information in API. Perhaps a better approach would be support of internal metrics or some user-level stats.





[ZBXNEXT-5675] Zabbix API methods debugging Created: 2020 Jan 07  Updated: 2020 Jan 07

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

Type: New Feature Request Priority: Minor
Reporter: Alexey Pustovalov Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 4
Labels: api
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently more and more people use Zabbix API, sometimes methods are used not in proper way. So it would be great to have the following type of Zabbix API debug. Debug should contain:
1. User session information (userid, sessionid... anything which can help to identify user)
2. Methods information (request data), like debug information in Zabbix frontend
3. SQL queries information (full SQL text, SQL response time, place from sources)

Maybe such information should be stored somewhere in physical log file.






[ZBXNEXT-5637] Extending the API capabilities for filtering hosts Created: 2019 Dec 10  Updated: 2019 Dec 12

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

Type: Change Request Priority: Trivial
Reporter: Elina Kuzyutkina (Inactive) Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 5
Labels: API
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

For now "filter" property in host.get method is dedicated only for main query options and interface properties. All other filtering can be done only on the next step in the script parsing JSON recieved from Zabbix API.
The ability to filter at the request stage would be convenient. For example, to get hosts based on there LLD "expiration" properties.






[ZBXNEXT-5631] Change time intervals in API from [time_from, time_till] to [time_from, time_till) Created: 2019 Dec 09  Updated: 2019 Dec 11

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

Type: Change Request Priority: Trivial
Reporter: Alex Klimov Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

If we have [a,b] interval, we have a problem with splitting intervals due to common point problem.



 Comments   
Comment by dimir [ 2019 Dec 09 ]

Sorry, what exactly this feature asks to change?

Comment by Kolunchik [ 2019 Dec 09 ]

Exclude time_till from range ( from "less or equal" to "less")

Comment by Alex Klimov [ 2019 Dec 09 ]

Exactly

Comment by dimir [ 2019 Dec 09 ]

Just to make sure. You're saying coding

1 - 10, 10 - 20, 20 - 30

is much easier than

1 - 9, 10 - 19, 20 - 29

?

Comment by Alex Klimov [ 2019 Dec 10 ]

If i request 1-10, 10-20, 20-30 i'll get all points between 1-30 and no point twice (or missed) in responce? If so, this task may be closed.

Comment by dimir [ 2019 Dec 10 ]

No, currently it's as you described in the issue description. I'm just trying to make sure I understand the issue.

Comment by Alex Klimov [ 2019 Dec 10 ]

So. the case is for requesting events (or problems) for long period, when i must split time interval into smaller one to avoid long request duration. It would be perfect if i got all points without overlapping.

Example:

[1, 2, 3, 4, 5, 6, 7, 8, 9] splitting into [1,2,3,4] and [4,5,6,7,8,9]. So we have timepoint 4 twice.

 

Comment by dimir [ 2019 Dec 10 ]

As far as I know [1,2,3,4] will take care of complete 4th second, that is 4 - 4.99999999 . So all you need is exclude 4 from the second period: [5,6,7,8,9].

gcalenko, can you confirm?

<gcalenko> yes, API uses closed intervals (includes all its limit points), all you have to do is to ensure that every next interval chunk start time is 1 second greater than previous chunk interval end.

Comment by Alex Klimov [ 2019 Dec 11 ]

I think this task may be closed. It's a good idea to add Gregory comment to API documentation.

Comment by dimir [ 2019 Dec 11 ]

We have multiple places where the periods are referenced, e. g.

Unfortunately there's no single place that describes the period. But I think it's already pretty clear that it includes the limit points:

time_from timestamp Return only values that have been received after or at the given time.
time_till timestamp Return only values that have been received before or at the given time.




[ZBXNEXT-1503] introduce default limit for "history.get" method to save performance Created: 2012 Nov 08  Updated: 2019 Oct 30

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.0.3
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Oleksii Zagorskyi Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: api, history, performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

this is follow-up from ZBX-4363

Without such default limit this method is potential performance killer.

Maybe the "limit" parameter should be required but not the optional?

If it missing I suggest the default limit = 1000
or a limit taken form global frontend configuration option "Search/Filter elements limit" <- it used at the moment in history of latest data page.

To discard any limits an user could specify "limit":0

Optionally:
if the limit is reached then we could return additional field in result which will inform user that there are additional values for requested period - see ZBX-3296



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Jan 31 ]

ZBXNEXT-2132 asks for offset (pagination) support.

Comment by Jan Garaj [ 2016 Mar 14 ]

The same performance killer is trend.get.

Hands-on case - Zabbix.org DDoS:

1.) Go to http://monitoringartist.github.io/zapix/ and connect to zabbix.org as guest (https://raw.githubusercontent.com/monitoringartist/zapix/gh-pages/doc/zabbix-zapix.gif)

2.) Execute trend.get query (~1 query per second or ~20x in one go) and ignore any response errors about exhausted memory

=> Zabbix UI will be down - error "Can't connect to DB".

Comment by Marc [ 2016 Mar 14 ]

ZBXNEXT-1984 is distantly related.





[ZBXNEXT-3217] "dry run" for xml import Created: 2016 Mar 26  Updated: 2019 Oct 30

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

Type: New Feature Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: import
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

when importing, it is not always obvious what will be done, and it could be useful to know - especially when deleting the objects, not found in the xml.

a "dry run" option could return a list of whatever would be done, but not perform the changes actually.






[ZBXNEXT-2934] Host group 'visible name' Created: 2015 Aug 31  Updated: 2019 Oct 17

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

Type: New Feature Request Priority: Trivial
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: hostgroups, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Since version 2.0 we have the possibility to define a 'technical' and a 'visible' hostname for a host.
I suggest we use the same scheme for naming host groups.

This way we can use the 'technical' host group name for integration with various systems using the technical name (i.e. CUST-GR1) while retaining user readability by setting the visible name (i.e. Customer - Group 1').

Behavior should be the same as with hostnames.



 Comments   
Comment by richlv [ 2015 Aug 31 ]

group names do not have a technical meaning in zabbix like hostnames do (matching/identifying the host) - would it be worth implementing this complexity in zabbix ? wouldn't it be better to use such matching in the integration layer instead ?

Comment by Raymond Kuiper [ 2015 Aug 31 ]

Group names can be used in various Zabbix locations (actions, usergroup permissions, etc.) So it would be beneficial to match these with an internal naming/numbering convention to keep the system nice and tidy. To add some better readabilty for humans working in the frontend, the visible name would be useful.

Comment by Kirill Varnakov [ 2019 Oct 17 ]

+100500





[ZBXNEXT-4110] Facebook MyRocks at MariaDB Created: 2017 Sep 19  Updated: 2019 Sep 11

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

Type: Change Request Priority: Trivial
Reporter: Oleg Egorov (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: MyRocks
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: DEV-677

 Description   

Facebook MyRocks is NoSQL database supported by MariaDB

I think now it is best solution for history_text, history_log....

Easy to use and will be improved performance of Zabbix.

MyRocks + Zabbix:
https://habrahabr.ru/post/334276/

Performance:
https://habrahabr.ru/post/319500/



 Comments   
Comment by Vadims Kurmis [ 2019 Sep 11 ]

Please ensure RocksDB support with updated documentation for making DB Schema.

Because it Exactly matches Zabbix type of workload - for write-intensive applications.

Strange, that this is not being prioritized yet as Zabbix development was always targeted for increased performance to compete with other products and provide a better and more robust solution.

This is Critical, because Database always was a bottleneck for Zabbix.

 

 





[ZBXNEXT-5418] Behaviour of map.update Created: 2019 Sep 11  Updated: 2019 Sep 11

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

Type: Change Request Priority: Trivial
Reporter: Mikhail Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: API
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2019-09-11-10-41-08-508.png    

 Description   

Currently, map.update API call, from the looks of it, parses the whole request instead of an individual map. Because of this when updating several maps at once you need to specify unique selemtid placeholder for each selement in the request if you want to preserve links integrity. It would be more logical if placeholder selementids would not leave the scope of a map they are attached to when reassigning selementid placeholders for links.

 

 






[ZBXNEXT-5394] Add in item.get() API method ability to get maintenance status Created: 2019 Sep 02  Updated: 2019 Sep 02

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.12, 4.2.6
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Elina Kuzyutkina (Inactive) Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: api, item, maintenance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Need ability to filter the items that are actively on maintenance status.  (if item belongs to host that is in active maintanace or if there is corresponding tag for trigger with this item in expression and there is active maintanance for that tags)






[ZBXNEXT-4566] Permission zabbix administrator on maps with images Created: 2018 Apr 07  Updated: 2019 Aug 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Diego Cavalcante Assignee: Unassigned
Resolution: Unresolved Votes: 8
Labels: frontend
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu 16.04 LTS


Attachments: PNG File bug01.png     PNG File bug02.png     PNG File bug03.png     PNG File bug04.png     PNG File bug05.png     File inserting-image-item-in-private-map-allows-all-zabbix-admins-see-some-content.mp4    
Issue Links:
Duplicate
is duplicated by ZBX-15141 Permissions failure Closed

 Description   

Good night dear.

I recently encountered a problem regarding permissioning on maps,

I have some maps, which are specific hosts and triggers for a group, to which only users who have the appropriate permissions in this group should have access to "list and view the maps", but that is not quite what is happening.

If the user is of type "user zabbix" such maps are not listed nor displayed.
If the user is of type "administrator zabbix" the maps are listed and displayed in a way that had never seen before, with the icons in gray and the text "* UNKNOWN" linked to the data.

I noticed that if the map contains only "host, trigger, group, map" elements, the permission applied to the user works perfectly and it is not able to list or view the maps.

And if the map contains at least 1 element of type "image", the user is able to list and view the map in the way I described above, it seems to me that this is not correct.

I faced this problem in version 3.4.6, and tried an upgrade to version 3.4.8 and the problem persists.

Is it a permission setting, or a bug?
I hope it was clear, below I separated some prints to illustrate the problem.

In short: if any map that contains some element of type "image", any user of type "administrator zabbix" is able to list and see, if I remove all elements of the "image" type of maps, permission works perfectly.



 Comments   
Comment by Diego Cavalcante [ 2018 May 15 ]

version 3.4.9 the problem persists.

Comment by Aigars Kadikis [ 2018 May 23 ]

Can confirm this on 3.4.9.

Here is how to reproduce it:
1) Create user 'another' and assign it to User type 'Zabbix Admin' which by default has no rights to any host.
2) With Zabbix super administrator create a new map and add 'Zabbix server' host inside it. Sharing type remains as 'Private'
3) Authorize with 'another' user. Ensure the map is not visible.
4) Use Zabbix super administrator and include one image in the same map. Save the map
5) With user 'another' refresh the map page. The map becomes visible. It is possible to go inside and see some images (not including sensitive data).
inserting-image-item-in-private-map-allows-all-zabbix-admins-see-some-content.mp4

Comment by Diego Cavalcante [ 2018 May 23 ]

Hello Aigars Kadikis, your reproduction of the problem was perfect.
This is exactly the problem, I followed your procedure and the behavior is the same as yours, the permissioning of the elements in the maps works perfectly, but if you insert a single element of type "image" then the permission fails, so any user of type "zabbix administrator" will be able to list and view the maps of other users even if they are" private "and even if they do not have any permission on the elements contained in the map "even though the sensitive data is hidden ".

I can confirm that the problem affects all versions 3.4.x and all alphas of 4.0.
Version 3.2.x in my tests are working ok.

Comment by Alexander Vladishev [ 2018 May 23 ]

It works as documented.

Admin level users can see private maps regardless of being the owner or belonging to the shared user list.

Comment by Diego Cavalcante [ 2018 May 23 ]

The way it is, I only see 2 exits:

1º Do not use elements of type "image" in the maps. Well, the permissions are respected.
2. Do not leave any users with "Zabbix admin" profile. Well, the permissions are respected.

I have to choose between the 2.

Comment by João Edson [ 2018 May 23 ]

Step by the same problem as Diego and I do not see exit since if not leave some users as admin they no longer have access to some elements

Comment by Alexander Vladishev [ 2018 May 24 ]

I moved this issue to ZBXNEXT project. Please vote for this change request!

Comment by Alex Tomasello [ 2018 Nov 27 ]

In include/classes/api/services/CMap.php there are some lines that permit this:

 // Setting PERM_READ permission for maps with at least one image.
 $selement_images = self::getSelements(array_keys($sysmaps_r), SYSMAP_ELEMENT_TYPE_IMAGE);
 self::setMapPermissions($sysmaps_r, $selement_images, [0 => []], $selement_maps);
 self::setHasElements($sysmaps_r, $selement_images);
Comment by Alex Tomasello [ 2019 Jan 15 ]

Any updates?

Comment by Alex Tomasello [ 2019 Jan 23 ]

Hi there, I've reported code lines involved in this issues/feature. This ticket was opened on  2018 Apr 07 ...Any updates?

Comment by Dirk Bongard [ 2019 Aug 10 ]

I wonder about this authorization concept.

When I look at this list of references, I can not believe that large companies agree with this mess, or have spent a lot of money on work arounds.

Example: We have several 24/7 data centers. Some have their own site administrators. To be able to administer their own hosts, they need to be Zabbix Adminstrator. This gives them all rights to maps again. The same issue is with Discovery. I am not able to give a DBA for a single host the rights for scheduled downtime without giving it the right Zabbix Adminstrator.
From an authorization perspective, Zabbix is not suitable for large DCs, in particular multi-tenancy environment.
Map is one of many gaps.

By the wording, it is true that an administrator should see everything, but an application admin should be able to set up maintenance or add a template to his host. That's why many of us are Zabbix administrators and have in this case too many rights.

 





[ZBXNEXT-5270] no user unblocking in the api Created: 2013 Dec 02  Updated: 2019 Jun 13

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

Type: New Feature Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: newapimethod, users
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

apparently, unblocking was forgotten in the api. probably a new method like user.unblock that would accept user ids would be the way to go.

it might be worth looking at ZBX-7472 when dealing with this






[ZBXNEXT-5248] Better API warnings Created: 2019 May 30  Updated: 2019 May 30

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.2.1
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Bendyna Vitalii Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: api
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix Server 4.2.1
Zabbix Proxy 4.2.1



 Description   
  1. API explanation: please add better explanation for API, as sometimes it's not easy to guess what should be in parameters.
  2. API response warnings: If request is correct, but, for example, parameter "proxy_hostid" is outside of parameters array, API will just omit it without notifying user that parameter is omitted. For example, in this JSON parameter "proxy_hostid" will be omitted without any warnings:
{ 
"jsonrpc":"2.0",
"method":"host.create",
"params":{ 
"host":"Some-host-name",
"interfaces":[ 
{ 
"type":1,
"main":1,
"useip":1,
"ip":"127.0.0.1",
"dns":"",
"port":"10050"
}
],
"groups":[ 
{ 
"groupid":"17"
}
],
"templates":[ 
{ 
"templateid":"10586"
}
],
"macros":[ 
{ 
"macro":"{$REAL_DOMAIN_NAME}",
"value":"example.com"
}
]
},
"proxy_hostid":"10583",
"auth":"some-auth-string",
"id":1
}


 Comments   
Comment by richlv [ 2019 May 30 ]

Mostly the same as ZBX-3783. Specific suggestions on how to improve documentation would be needed, if anything is unclear.





[ZBXNEXT-5246] A new API for analyzing the zabbix queue Created: 2019 May 29  Updated: 2019 May 29

Status: Confirmed
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Andrea Biscuola Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: api, debugging, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

A lot of times, it happen that we need to analyze more than 500 items in the zabbix queue and the current page, is limiting when dealing with global scale issues.

Working with the support, it happen that there is no standardized way and no defined knowledge/procedure, for how to extract, in a parseable form, which items, related to which hosts, are stuck in the queue.

It would be nice if an API in the form "zabbix.queue" or "proxy.queue" could be provided, where the detail, of every single delayed item (itemid, hostid, key and name) can be fetched from the database without resorting to some magic, one shot, query.



 Comments   
Comment by Andrea Biscuola [ 2019 May 29 ]

If required, I could help identifying eventual design needs for this.





[ZBXNEXT-4481] Reveal User group permissions in Host groups Created: 2018 Apr 04  Updated: 2019 Apr 09

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

Type: Change Request Priority: Major
Reporter: Marc Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 2
Labels: adminuser, permissions, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In the configuration view of a User group Zabbix-Admins may find out easily what permission applies to which host group(s) resp. host(s).

But sometimes it is desirable to do the exercise the other way around too. That's to say, looking at a Host group and finding out which User groups apply permission to it and which users have finally access granted or explicitly denied.



 Comments   
Comment by Marc [ 2018 Jun 06 ]

Just hacked together this one after a request of an admin on site - maybe it's for the time being useful to anyone else too (see last condition of WHERE clause!):

zabbix=# SELECT ug.name user_group,
zabbix-#        p.name permission
zabbix-# FROM   groups hg,
zabbix-#        rights r,
zabbix-#        usrgrp ug,
zabbix-#        ( VALUES
zabbix(#         ( 1, 'Deny' ),
zabbix(#         ( 2, 'Read' ),
zabbix(#         ( 3, 'Read-Write' )
zabbix(#        ) AS p ( id, NAME )
zabbix-# WHERE  ug.usrgrpid = r.groupid
zabbix-#        AND r.permission = p.id
zabbix-#        AND r.id = hg.groupid
zabbix-#        AND hg.NAME = 'A Host group name one is interested in';
                  user_group                   |    permission
-----------------------------------------------+------------
 A User group                                  | Read-Write
 Another User group                            | Read
 Yet another User group                        | Read
 What shall I say, a User group                | Read

Should be fairly easy to extend it to reveal users behind user groups as well.

Comment by Marc [ 2019 Apr 09 ]

Similar statement working with MySQL (the one in the previous comment was for Postgres):

SELECT ug.NAME user_group,
       CASE
         WHEN r.permission = 1 THEN 'Deny'
         WHEN r.permission = 2 THEN 'Read'
         WHEN r.permissionis = 3 THEN 'Read-Write'
       END     AS permission
FROM   groups hg,
       rights r,
       usrgrp ug
WHERE  ug.usrgrpid = r.groupid
       AND r.id = hg.groupid
       AND hg.NAME = 'A Host group name one is interested in';

 





[ZBXNEXT-1694] Discovery tab missing/ uses wrong acess levels Created: 2013 Mar 29  Updated: 2019 Apr 03

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

Type: Change Request Priority: Minor
Reporter: Ebonweaver Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: discovery, permissions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The Discovery tab in the navigation bar does not show up because it appears to be functioning at the wrong access levels. For example:
Users can not see the Monitoring -> Discovery tab so they can not see the discovery results. You have to be an Admin to see it.
Admins can not see the Configuration -> Discover tab so they can not create discovery rules. You have to be a super admin to see that.

Both of these issues create severe and insurmountable security/ permission problems which make the feature unusable. We would love to see this fixed so the tabs operate at the proper permission levels, most especially so our Users (IT staff) can see the scan results to ensure system security is being followed. We would also like our network admin to be able to create scans, but we don't want to grant him super admin to do so.



 Comments   
Comment by Oleksii Zagorskyi [ 2013 Mar 30 ]

This is not a bug, decreasing priority.

Comment by Ebonweaver [ 2013 Apr 02 ]

I'm curious how this is an "improvement" and not a "bug". The tab does not work consistent with all other tabs on each of the sections of the interface, and that difference renders it unusable as it's inaccessible at the relevant user levels. Sure looks like a bug in the permission levels for that one item compared to all others.

Comment by Ebonweaver [ 2014 Feb 18 ]

Nearly a year later, now on 2.0.11, this is still an issue, still considered a bug as there is no justification how it is not a bug, no action on ticket. No way found to date to give users access to see the Monitoring -> Discovery tab so they can view the discovery results as expected. Further showing this is a bug is the fact that user permissions list "Discovered hosts" and yet they can't see it. Please provide information on making this work or elevate back to bug status as seems appropriate.

Comment by richlv [ 2014 Feb 18 ]

permissions refer to host group "discovered hosts", not to the discovery results

Comment by Ebonweaver [ 2016 Feb 19 ]

This is still an issue. While I understand you consider this a feature request, from what I see until a change is made the Discovery tab on the Monitoring tab is useless (to us) because no one can see it other than the super admins. This means it's NOT a monitoring tool, it is an admin tool, but in reality it's not. While the current functionality is useful in a shop of one admin, in a shop of delegated technicians it's useless.

Comment by Ebonweaver [ 2017 Mar 10 ]

STILL an issue 4 years later in 3.2. Further aggravating is that view access now allows maps and screen creation and it absolutely should not. Point is, the permissions structure of only allowing access of view/edit by host group has been deficient for a long time. There needs to be another set of permissions that works in conjunction with that which allows access to tabs/functions. Previously this would have been as simple as a list of the tabs on the Monitoring section to allow access to. Now it's further aggravated by having moved configuration of some items into monitoring instead of keeping them under configuration where they belong. This means if that's not fixed (reverted to proper layout) you need to also have options for allowing or disabling create on the tabs that you would allow view.
Honestly the product does so many great things, but have long suffered some very basic UI function problems, and this new issue is rather crippling...(separate issue opened)

Comment by Marc [ 2017 Mar 10 ]

ebonweaver, possibly consider to (co-)sponsor development of this feature, since this feature request seems not to attract other users yet (no votes).

Comment by Leigh Bennett [ 2019 Apr 03 ]

as Marc says, vote for the issue.





[ZBXNEXT-5154] The zabbix API for authentication should return an HTTP error code when the authentication fail Created: 2019 Mar 30  Updated: 2019 Apr 01

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.26
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Andre Rodier Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Steps to reproduce:

  1. Call the API 'user.login' and a wrong password with curl or any other tool
  2. The API returns 200, and a field "error" in JSON

Expected:

  • The API should returns 403 when the authentication fails.


 Comments   
Comment by Andre Rodier [ 2019 Mar 30 ]

Here a test using Ansible URI module

ok: [homebox] => changed=false 
  access_control_allow_headers: Content-Type
  access_control_allow_methods: POST
  access_control_allow_origin: '*'
  access_control_max_age: '1000'
  cache_control: no-cache
  connection: close
  content_type: application/json
  cookies: {}
  cookies_string: ''
  date: Sat, 30 Mar 2019 06:14:10 GMT
  expires: Thu, 01 Jan 1970 00:00:01 GMT
  json:
    error:
      code: -32602
      data: Login name or password is incorrect.
      message: Invalid params.
    id: '1'
    jsonrpc: '2.0'
  msg: OK (unknown bytes)
  redirected: false
  server: nginx
  status: 200
  strict_transport_security: max-age=31536000;
  transfer_encoding: chunked
  url: https://zabbix.rodier.me/api_jsonrpc.php

The status should be 403, not 200.

Comment by Arturs Lontons [ 2019 Apr 01 ]

Hi,
For now this is by design, so it's not necessarily a bug.
But using proper response status codes could be considered a feature request, so I'll change the ticket type and pass it onto the development team.

Comment by Andre Rodier [ 2019 Apr 01 ]

Thank you, I understand this is by design.

I am sure you'll find a way to make this compliant with REST API standards.





[ZBXNEXT-1805] Get rid of "Incorrect trigger expression. Trigger expression elements should not belong to a template and a host simultaneously." Created: 2013 Jun 28  Updated: 2019 Mar 18

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

Type: Change Request Priority: Minor
Reporter: Ilya I. Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: expressions, templatelinking
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I want to use both templated and host items in a trigger. The WebUI lets me to build the expression, but won't save it: "Incorrect trigger expression. Trigger expression elements should not belong to a template and a host simultaneously.". This is exactly what I want. Why is it not allowed?



 Comments   
Comment by Oleksii Zagorskyi [ 2013 Jul 01 ]

I think it's limited by design.
It would be illogical.
How such trigger could be evaluated if one item (from template) does not get incoming data ?

https://www.zabbix.org/wiki/Docs/specs/ZBX-4333 could help to understand some possible limitation.

Comment by Ilya I. [ 2013 Jul 02 ]

Why does it matter? How any other trigger can be evaluated if one of the items in that trigger does not get incoming data?

The specification speaks of trigger dependencies, I'm talking about one single trigger.

Comment by richlv [ 2014 Feb 05 ]

related to ZBX-4575

Comment by balder [ 2014 Mar 19 ]

I am also running into this problem. I im trying to compare the DNS serial number of a master with all of its slaves.

I have an item on the template for the slave servers which returns the serial of the slave. I then created a host to represent the master which has an equivilant item. i then try to create a trigger with an expression simlar to the following

{Template DNS slave:slave_serial.sh["zone."]}={master.example.com.net:master_serial.sh["zone."].last()}

We have one master and ~350 slave servers so this feature would be very usefull

Comment by balder [ 2014 Mar 19 ]

I also tried to add master.example.com to a template and create a trigger using items from the two templates (which seems much more error prone to me) and this also fail with a different error

"$name_of_trigger_trying_to_create" belongs to templates with different linkages.

Comment by Ari Maniatis [ 2015 Aug 03 ]

This ticket has been open for a while now, but it is really important. There is no workaround that I can see and the feature is very important to be able to check DNS slaves, Solr slaves and any other master-slave arrangement.

Comment by Alexandre Zia [ 2017 Mar 24 ]

Also trying to check Ldap Master <-> Slave replication, same problem.

Comment by Scott McGillivray [ 2019 Mar 18 ]

this is a horrible limitation of zabbix 





[ZBXNEXT-5087] Tag based permissions: Show all triggers but only give Read-Write permissions to some of them Created: 2019 Mar 04  Updated: 2019 Mar 17

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

Type: New Feature Request Priority: Minor
Reporter: Felix Meier Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 4
Labels: permissions, tags
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In our case, all our administrators must respond to all triggers. However, not all people are allowed to edit all hosts in all hostgroups. So in the actual configuration, we have some hosts where the users are not allowed to use "severity change" or "close problem". But there are some triggers where this is necessary or desired.

With tag-based permissions, only the triggers that correspond to the filter are displayed when the tag filter is activated, even if in another assigned group for the corresponding host group has complete read permissions without tag filter are assigned.

Current behavior:
Group 1: Read permissions on Hostgroup "Servers"
Group 2: Read-Write permissions on hostgroup "Servers", tag filter on "tag1".
User is member of both groups.
Result: Users only see the triggers with tag "tag1" and have all rights on them.

Desired behavior:
Group 1: Read permissions on Hostgroup "Servers".
Group 2: Read-Write permissions on hostgroup "Servers", tag filter on "tag1".
User is member of both groups.
Result: Users see all triggers of the host and can ack them and have Close/Severity-Change rights on the triggers with tag "tag1".

 

 






[ZBXNEXT-5074] allow time periods to cross midnight Created: 2019 Feb 27  Updated: 2019 Mar 15

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

Type: Change Request Priority: Trivial
Reporter: richlv Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently time periods cannot cross midnight (or cannot traverse the border between two days) in, for example, action conditions. While 08:00-20:00 works, 20:00-08:00 is not accepted.



 Comments   
Comment by Aleksejs Petrovs [ 2019 Feb 27 ]

Hello Rich,

Do you mean Media settings for the User or Custom Intervals?

Regards,
Aleksejs!

Comment by richlv [ 2019 Feb 27 ]

One example is the mentioned action conditions, but other places - like user media, working time, custom intervals etc - might be affected as well.

Comment by Glebs Ivanovskis [ 2019 Feb 27 ]

Here is relevant documentation piece, for the reference.

richlv, what would "1-5,20:00-08:00" mean? Will it include 20:00-24:00 on Sunday or 00:00-08:00 on Saturday? Or both? Or none of it?

I think there are multiple equally logical interpretations and choosing one to implement will be completely arbitrary. Hence it will be very tricky to tell for sure what such midnight-crossing-interval means without consulting with documentation. Which ultimately makes Zabbix configuration less intuitive.

Comment by richlv [ 2019 Feb 27 ]

While it would be somewhat arbitrary, it would be a very useful feature. Other products implement such a feature, and it seems to be well received.

In our specific usecase, it's more obvious - 1-7,20:00-08:00. Not much ambiguity there. In case of the 1-5 example, a simple rule might be the best - for example, saying that day range is matched against the starting edge of the time period. Thus this example would have the first time period start on Monday, 20:00, and the last one on Friday, 20:00.

As for the need to consult documentation, that could be improved by adding the "helper icons" with useful tooltips (mentioned in ZBXNEXT-130). Those tooltips could even have formatting with links to the full manual, as mentioned in ZBXNEXT-2668... But that is a completely separate improvement

Comment by Glebs Ivanovskis [ 2019 Feb 27 ]

Other products implement such a feature, and it seems to be well received.

Would be interesting to see syntax examples. It seems that even almighty ISO 8601 does not cover this case. There is a short notation like "2007-12-14T13:30/15:30" which does not need to specify full date for interval end, but as soon it is another day, you will need to specify day too: "2007-11-13T09:00/15T17:00".

I would be fine if we could specify somehow that end time is the next day, e.g. "1-5,20:00-(+1)08:00". This is explicit (hence allows validation that end > start) and more or less intuitive. But looks ugly.

Comment by richlv [ 2019 Feb 27 ]

Would be interesting to see syntax examples.

Once case I can check now does not use a single field (at least not in the UI), it just has input fields for from/to, and there is no indication or requirement to specify that it is on the next day.

Comment by Glebs Ivanovskis [ 2019 Feb 27 ]

By the way, ZBXNEXT-3636 is somewhat related.





[ZBXNEXT-5048] Export/Import Services Created: 2019 Feb 15  Updated: 2019 Mar 10

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

Type: New Feature Request Priority: Major
Reporter: Cesar Murilo da Silva Junior Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: export, import, services, sla
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I have more than 800 SLA's registered, and I worry if someone will delete accidentally or not one of them. It would be better to import / export an SLA instead of restoring a backup and losing a history, even for a short period of time.



 Comments   
Comment by richlv [ 2019 Mar 10 ]

IT service import/export also requested in ZBXNEXT-3281.





[ZBXNEXT-656] New parameter for granularity in history.get Created: 2011 Feb 10  Updated: 2019 Feb 25

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 1.8.4
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Jacobo Aragunde Pérez Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: graphs, history, patch, trends
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File 0001-Added-a-new-parameter-samples_number-in-the-API-op.patch    

 Description   

When retrieving history data through the JSON-RPC API, dealing with data from a wide lapse of time is painful because all the samples are returned, but it's very likely that I don't need such degree of detail.

Take, for example, a use case where I want to draw a chart for one year history. I will need, at most, one sample for each pixel of the chart's width, and not all history.

I propose creating an additional parameter to express the number of samples you want to get. It would divide the history in N groups of the same time length and return an average value for each group. It's different from the limit parameter, which only returns the first N rows of the history.

Since it's an important feature for me, I've started working on a patch that I'll upload here soon. I'm taking inspiration from frontend/php/include/classes/class.cchart.php, function selectData(), which is used to gather history data to build charts in the web frontend.



 Comments   
Comment by richlv [ 2011 Feb 10 ]

first, ability to get trend data might be useful in some cases as well.
second, this vibes well with "data reduction" part in the utopian api wishlist - https://zabbix.org/wiki/Docs/specs/api

Comment by Jacobo Aragunde Pérez [ 2011 Feb 10 ]

Patch. Apply with -p1.

Comment by Jacobo Aragunde Pérez [ 2011 Feb 10 ]

I've just added a patch. I've followed the coding conventions but I'm not sure about the naming of the file and the format of the patch, so please correctly if I'm wrong. I used 1.8.4 version code as base.

What this patch does:

  • Add a new parameter called 'samples_number'. If this parameter is sent and time_from and time_till are sent too, the query will do samples_number groups with equal size and return the average value in each group.
  • I use the table history or trends depending on the degree of detail required and the availability of data. I've taken those conditions from class.cchart.php->selectData(). Not very sure about the second one: ($p / $i) > (ZBX_MAX_TREND_DIFF / ZBX_GRAPH_MAX_SKIP_CELL). Should I remove the division by ZBX_GRAPH_MAX_SKIP_CELL?
Comment by richlv [ 2011 Feb 11 ]

as far as i recall (as a noncoder), ZBX_GRAPH_MAX_SKIP_CELL was used to figure out how many values we may miss before having a gap in the graph, thus i suspect it would not be useful in this case

Comment by richlv [ 2011 Sep 12 ]

maybe this could at least somewhat help with ZBX-3851

Comment by richlv [ 2012 Apr 20 ]

ZBXNEXT-1192 seems to be very similar

Comment by Oleksii Zagorskyi [ 2015 Apr 30 ]

I recall long time ago I was surprised to see ZBX_GRAPH_MAX_SKIP_CELL in the function where we decide where get data from - history or trends.
I could not get why do we use ZBX_GRAPH_MAX_SKIP_CELL here.
This definition being used in another place too, where, IMO, it was implemented for - draw lines or gaps on graphs.

When commenting other issues (ZBXNEXT-2128, ZBX-7821) I again remembered about the unanswered question.
And it may become more important to be checked by devs, because of the issues I mentioned.

My feeling was and still is that we need to split ZBX_GRAPH_MAX_SKIP_CELL to two definitions and use new definition in the function where we select source of data - history or trends.

Comment by Andre Guilhon [ 2015 Jul 07 ]

I would appreciate this feature very much! I'm on 2.4 now, and I still miss this feature!





[ZBXNEXT-4104] Create API method for retrieving template XML (e.g. template.export) Created: 2017 Sep 14  Updated: 2019 Feb 21

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.2.6, 3.2.7, 3.2.8
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Charles Inglese Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The user-facing front-end employs a templates.php page to support exporting a Zabbix template in XML format, however, the JSON RPC API does not offer the equivalent functionality. It would be tremendously helpful if a template.export in JSON RPC API (api_jsonrpc.php) method were added which performed the same logic and returned a deserialized object.

When using configuration management frameworks such as Puppet or Chef, it is important to be aware of state, and currently, there is no good way of returning the source XML object that was ingested into Zabbix (e.g. via configuration.import or WebUI), as configuration.export does not return the same XML representation as what was ingested.



 Comments   
Comment by Charles Inglese [ 2017 Sep 14 ]

Reference: https://www.zabbix.com/documentation/3.2/manual/xml_export_import

Comment by richlv [ 2019 Feb 21 ]

The configuration.export method supports a format parameter at least since Zabbix 2.0, and this parameter allows to choose between XML and JSON (this is also the easiest way to obtain templates in JSON format that Ansible needs).

Could you please clarify what is the concern here?





[ZBXNEXT-1031] Get server status thru API Created: 2011 Nov 15  Updated: 2018 Nov 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 1.8.8, 1.8.9
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Jordi Clariana Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 10
Labels: check, patch, server
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

All enviroments, all OSs, all hardware.


Attachments: File APIServer.patch     File ServerStatus_3_0_1.patch    
Issue Links:
Duplicate
duplicates ZBXNEXT-1079 API call to get system status missing Closed

 Description   

Hi,

It will be nice to have some function in the API to get Zabbix Server status, the same way it is checked in the dashboard (I mean, the fsockopen method).

Thanks.



 Comments   
Comment by Jordi Clariana [ 2012 Oct 14 ]

This patch creates new API call: Server, with 3 methods: version, status and performance.

Feel free to modify and/or include it in the next Zabbix release.

I'll made it based on Zabbix version 2, I have it for version 1.8 too if anyone interested.

Regards.

Comment by Jordi Clariana [ 2013 Apr 19 ]

Hi,

I wonder if there's any plan to implement this patch on the main branch. Can you tell me?

Thanks.

Comment by richlv [ 2013 Apr 19 ]

it's not on the roadmap currently (but i like it & voted on it )

Comment by sxc7541 [ 2016 Feb 25 ]

I've written a Python script to monitor the Zabbix server externally (make sure it's running) - details here: http://serverfault.com/questions/741064/monitoring-zabbix-server-itself-externally/760343#760343

Alas, I've noticed that the Zabbix server somehow continues to respond to API requests even if it's stopped... I suppose this feature would help in this scenario.

Thanks to @Jordiclariana for providing a full fledged patch. Now if only this could make it into an official release...

Comment by sxc7541 [ 2016 Mar 25 ]

For others like me still waiting for this functionality to be incorporated in an official release, here's Jordi's patch adapted to run on Zabbix 3.0(.1): ServerStatus_3_0_1.patch

Comment by yuanpeng [ 2017 May 17 ]

I think you can do some improvement for 'server.status' function, when zabbix_server becomes zombie, connection to 'ZBX_SERVER_PORT' may still be successful. So maybe you can send some request to the opened stream, and set stream timeout, if fwrite request time out, then return status failed

Comment by Adrian Kirchner [ 2018 Nov 08 ]

This would be very helpful. Sometimes (a few times per year) we have situations where most of the zabbix server processes are killed (eg. by OOM through neighbor processes) and doesn't collect values but it still responds on port 10051. This situation is very hard to monitor with tools like Pingdom.

Please provide an API endpoint which utilizes the same fsockopen method as the dashbord widget is using.





[ZBXNEXT-4852] api trigger.get expand macro URL Created: 2018 Nov 08  Updated: 2018 Nov 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.1
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Jorge Fernando Matsudo Iwano Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 4
Labels: api, expand, macro, tigger.get
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 7, zabbix repo install.


Attachments: JPEG File 68fce506-a010-4d36-ab12-f5082840b79a.jpg     PNG File JSONLint - The JSON Validator - Google Chrome.png    

 Description   

Using API, method trigger.get do not expand native macros used in URL field. Only works in frontend but not using API.

Curiosly i find a partitial solution, changing the file "/usr/share/zabbix/include/classes/api/services/CTrigger.php" at line 465, adding follow lines.

------------------------------
if (!is_null($options['expandComment']) && $result && array_key_exists('url', reset($result))) {
$result = CMacrosResolverHelper::resolveTriggerUrls($result);
}
------------------------------

I used the existent option of "expandComment" to call "resolveTriggerUrls" to resolve my problem partialy.

I request in next release add this fix.

Thanks






[ZBXNEXT-4798] Separate media types into different tables Created: 2018 Oct 08  Updated: 2018 Oct 09

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

Type: Change Request Priority: Trivial
Reporter: Valdis Murzins Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: mediatypes
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Different media types have different configuration fields that they use. Each such field uses one column in media types table. And already now we have columns that are used exclusively for one of media types, while is left empty for other. The number of unused fields will increase even more, when new media types will be added.

As a solution would be to have separate tables for different media types.



 Comments   
Comment by richlv [ 2018 Oct 08 ]

What would be the gain there?
If there is a notable gain, wouldn't items need it more, given how many fields are specific only for some item types?

Comment by Valdis Murzins [ 2018 Oct 09 ]

Thank you, richlv, you made the correct point.
I will leave this task to investigate the best solution and to prepare media types table for new media types with different configuration fields.





[ZBXNEXT-4764] Zabbix host create / update allows duplicate interface definitions Created: 2017 Aug 16  Updated: 2018 Oct 09

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Frontend (F)
Affects Version/s: 3.4.14, 4.0.0rc1
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: James Cook Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Microsoft Word Example Duplicate interface.docx     PNG File pic.png    

 Description   

When creating or updating a host you can specify multiple interfaces with the same details and can cause confusion as to which interface is actually being used. This should be restricted through the api and database constraints to prevent this from occurring.

I have attached a screen shot for your viewing.



 Comments   
Comment by Rostislav Palivoda [ 2017 Aug 16 ]

Screen shot missed.

Comment by James Cook [ 2017 Aug 21 ]

I have attached the screen shot of the example

Comment by Valdis Murzins [ 2018 Oct 09 ]

With ability to save 2 identical interfaces we are covering following use case:
Host have one agent, that can be accessed by internal IP and by external IP. Normally you are collecting data from both interfaces. But at some moments, you may want to switch all host items to same interface (for example for the time of maintenance). In this case you can make interfaces same for this time, and then change them back without much work.

But you are right, that it may be hard to distinguish identical interfaces in item configuration. So I would suggest to keep this task, but with purpose to make even identical interfaces distinguishable.





[ZBXNEXT-1949] Give an indication/allow to browse through dependent triggers Created: 2013 Oct 04  Updated: 2018 Aug 06

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

Type: New Feature Request Priority: Minor
Reporter: Volker Fröhlich Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: consistency, dependency, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

In various cases it's beneficial to know if triggers depend on a particular trigger and what they are. While you can see what a trigger depends on, you can't get that opposite view. This need first came to my mind when writing http://blog.zabbix.com/a-workaround-for-trigger-based-maintenance/1527/.

Not only that you could explore the chains of dependencies, the implementation should also give you an idea about the consequences of deleting a trigger that others depend on. The behaviour is also slightly inconsistent, if you compare with what I reported on ZBXNEXT-1948:

Action conditions: When you delete an entity referenced in a condition, the reference is removed and the action is silently disabled
Trigger dependency: When you delete a trigger that other triggers depend on, the reference is removed, but the trigger remains enabled



 Comments   
Comment by Volker Fröhlich [ 2013 Oct 04 ]

If all that sounds confusing, you get an idea of how confusing "depending" and "dependent" are to me, when it comes to triggers.

Comment by richlv [ 2013 Oct 04 ]

maybe even a tree-like representation of dependencies





[ZBXNEXT-4666] Referencing Zabbix map as image Created: 2018 Aug 01  Updated: 2018 Aug 01

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.4.11, 4.0.0alpha9
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Katarzyna Piórkowska Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: map
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File referencing_map_result_3.2.JPG     JPEG File referencing_map_result_4.0.JPG    

 Description   

When using URL
http://IPaddress/zabbix/maps.php?sysmapid=1
in a browser we could get the image of map in Zabbix 3.2 - see screenshot referencing_map_result_3.2.

 

Since Zabbix 3.4 it is not possible anymore (screenshot referencing_map_result_4.0), there is only JSON format of a map.

 

Wolud it be possible to make such referencing work again?






[ZBXNEXT-1641] rename "macro" to "variable" Created: 2013 Mar 01  Updated: 2018 Jul 23

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 11
Labels: consistency, macros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

zabbix has "macros", which actually are "variables".

http://en.wikipedia.org/wiki/Macro_(computer_science) :
"Macros are used to make a sequence of computing instructions available to the programmer as a single program statement"

in zabbix, these are essentially variables (either system variables, or user definable - "user macros" currently), they do not contain code, instructions etc



 Comments   
Comment by dimir [ 2014 Nov 06 ]

Calling these "variables" might work in the scope of documentation, database, front-end. But I can't imagine how this can be integrated into the source code. Imagine a function names or, even worse, a variables that deal with these "variables". Having different terms in, say, docs and the code sounds bad also. So I'd love to see the third choice here, but I can't really think of anything:

  • definition?
  • setting?
  • metadata?
  • metavariable?
  • template?
  • configurable?

It's all bad. From that list I'd go for metavariable though.

Comment by dimir [ 2014 Nov 07 ]

After discussing it bit more with richlv, perhaps it's no that bad to use the term "variable" in the code also. I considered an example:

/* this variable holds the name of the variable */
char *variable = strdup("{HOST.NAME}");
// this variable holds the name of the variable
$variable = '{HOSTGROUP.ID}'                              

At the beginning I thought that is too confusing but now looking at it again I don't see it's that bad. Coders don't name (well, at least they shouldn't) the variables "variable" so I now think this could actually work. What's just a bit sad is actually this:

$ sgrep '\<variable\>' src | grep str
src/libs/zbxconf/cfg.c:                                                         zbx_strdup(*((char **)cfg[i].variable), value);
src/libs/zbxconf/cfg.c:                                         zbx_strarr_add(cfg[i].variable, value);
src/zabbix_server/httppoller/httpmacro.c:                               *err_str = zbx_dsprintf(*err_str, "missing variable name (only value provided):"
src/zabbix_server/httppoller/httpmacro.c:                               *err_str = zbx_dsprintf(*err_str, "missing variable value (only name provided):"
$
$ grep -r 'variable =' frontends/php
frontends/php/include/views/js/configuration.triggers.expression.js.php:                new_variable = window.opener.document.createElement('input');
frontends/php/include/views/js/configuration.httpconf.popup.js.php:             var new_variable = window.opener.document.createElement('input');
frontends/php/include/classes/api/services/CImage.php:                                  $variable = $image['image'];
frontends/php/include/classes/api/services/CImage.php:                                          $variable = $image['image'];
frontends/php/include/classes/html/CFormTable.php:      public function __construct($title = null, $action = null, $method = null, $enctype = null, $form_variable = null) {
frontends/php/include/classes/html/CFormTable.php:              $form_variable = is_null($form_variable) ? 'form' : $form_variable;
frontends/php/popup_usrgrp.php:        new_variable = window.opener.document.createElement('input');
frontends/php/js/common.js:     var o_variable = o_document.createElement('input');
$

And yes, we use the term "variable" in web monitoring. Wouldn't it be confusing there?

Comment by richlv [ 2014 Nov 07 ]

web monitoring is a good point - but we use term "usermacros" currently, so they could easily be "user variables" in cases that could be confusing

Comment by dimir [ 2014 Nov 07 ]

So, we could have something like:

  • variables, {HOST.HOST}
  • user variables, {$MY.TITLE} (host and global)
  • lld variables, {#FSNAME}
  • and, perhaps, web variables, {macro}

?

<richlv> that would be reasonable, although there are also template level user variables

Comment by Glebs Ivanovskis (Inactive) [ 2016 Feb 25 ]

Quote from Wikipedia says what macros are used for. Wikipedia usually defines a term at the very top of the page. Actual definition for macro from the same page:

A macro (short for "macroinstruction", from Greek μακρο- 'long') in computer science is a rule or pattern that specifies how a certain input sequence (often a sequence of characters) should be mapped to a replacement output sequence (also often a sequence of characters) according to a defined procedure.

This is exactly what macros are in Zabbix. See the definition of variable for comparison:

In computer programming, a variable or scalar is a storage location paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.

I suppose what richlv and zalex_ua mean is that in Zabbix macros are actually used as environment variables in shell. But the difference is that environment variables can be assigned a new value (varied as name suggests). You cannot change the value (misuse of the variable term) of the macro in Zabbix, all you can is define replacement output sequence for user defined macros.





[ZBXNEXT-4646] allow filtering in user.get api method based on user access Created: 2018 Jul 19  Updated: 2018 Jul 20

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.0alpha8
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The user.get method has a parameter getAccess to return user frontend access information, but there does not seem to be a way to filter by this information in the request.

Use case - returning all user accounts that either have or do not have the privilege to log into the Zabbix UI.






[ZBXNEXT-3268] Visible name in frontend for Zabbix proxy Created: 2016 May 03  Updated: 2018 Jun 26

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

Type: New Feature Request Priority: Minor
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

How about introducing an optional "Visible name" for Zabbix proxies?
This may allow much nicer names in Zabbix frontend to reference a proxy without having to align it with the technical hostname of a proxy - apart from the fact of not being limited in terms of supported characters.



 Comments   
Comment by Evgeny Kravchenko [ 2016 Jul 26 ]

I have too much proxies in my configuration, and frontend field "Visible name" for proxy will very useful for me, because i can have some description in proxy names.





[ZBXNEXT-4551] Improve API of Zabbix with Node.JS Created: 2018 May 14  Updated: 2018 May 14

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.4.9
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: RENAN DA ROSA BASTOS Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: api, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

API



 Description   

Helo guys,

 

I want propose we development a new API with nodejs separated from zabbix server. For we granted more perfomance.

I am willing to the help this development.

 

see ya






[ZBXNEXT-4533] API Call for retrieving map image Created: 2018 May 02  Updated: 2018 May 02

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.16
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Jacob Mansfield Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 1
Labels: api
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

There is currently no API endpoint that allows retrieving a map image, similar to the /map.php URL on the frontend.






[ZBXNEXT-1198] per-proxy refresh for passive proxies Created: 2012 Apr 25  Updated: 2018 Mar 23

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

Type: New Feature Request Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: flexibility, passiveproxy
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

for active proxies, we can set config & data refresh per proxy in the proxy config file.

for passive proxies, we can only set this in the server config file for all proxies at once. this does not scale well for multiple passive proxies that should have different parameters.

there should be a way to configure both config & data sending/polling frequencies per passive proxy.

this will require extending db schema and frontend so that these parameters can be configured in administration -> dm



 Comments   
Comment by richlv [ 2018 Mar 23 ]

additional keywords : update





[ZBXNEXT-1273] new API Event acknowledge method - user account parameter Created: 2012 Jun 15  Updated: 2018 Mar 07

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

Type: New Feature Request Priority: Trivial
Reporter: Kodai Terashima Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 2
Labels: api, permissions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be nice to allow a super-admin account using the API to assign a particular user account as the person who acknowledged the event.

We use a separate web interface for managing alarms. This interface displays who acknowledged the event and gives users the ability to acknowledge new events. We currently make this work with Zabbix using a custom script that updates the events table directly.

New Parameter:
name: userid
type: int
Optional: yes
Description: assign userid as acknowledger
Detail: Only available for super-admin accounts



 Comments   
Comment by richlv [ 2018 Mar 07 ]

we're inserting user in the comment in a special format. this makes parsing/reporting on it a bit more complicated, though.





[ZBXNEXT-4409] Allow setting case-sensitivity of "search" in API get method Created: 2018 Mar 06  Updated: 2018 Mar 06

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 4.0.0alpha4
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: dimir Assignee: Alexander Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Zabbix API get methods support "search" parameter. After noticing that it's case-insensitive (even on the database with correct collation) I went to see the documentation and could not find anything about case-sensitivity of search parameter.

It would be great to be able to set case-sensitivity in request.

Currently the search is case-insensitive:

Request:

{
	"auth": "bcf8d7b269174169777db7647c9e3e1c",
	"id": 2,
	"jsonrpc": "2.0",
	"method": "hostgroup.get",
	"params": {
		"search": {
			"name": "dev"
		},
		"selectHosts": ["host"]
	}
}

Response:

{
	"jsonrpc": "2.0",
	"result": [{
		"groupid": "9",
		"name": "Templates/Network Devices",
		"internal": "0",
		"flags": "0",
		"hosts": []
	}],
	"id": 2
}

SQL generated from request:

SELECT g.* FROM groups g WHERE ( (  UPPER(g.name)  LIKE '%DEV%' ESCAPE '!' ) )


 Comments   
Comment by dimir [ 2018 Mar 06 ]

Derived from ZBX-13577, case-sensitivity not documented.

Comment by dimir [ 2018 Mar 06 ]

Workaround if case-sensitive search is required: run through returned results and filter out non-matching entries.





[ZBXNEXT-4402] TLS support for zabbix_sender_send_values() function Created: 2018 Feb 26  Updated: 2018 Feb 27

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), API (A)
Affects Version/s: 4.0.0alpha4
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Vladimir Ostrovsky Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently the zabbix_sender_send_values() in zabbix_sender.dll allows to specify destination address & port to connect to, but not TLS properties (certificates, Issuer, Subject, etc.).

So it cannot be used for TLS-encrypted communication.

Can TLS support be added to it?

Thanks,
Vladimir.






[ZBXNEXT-3665] Return parent triggerid for discovered triggers Created: 2017 Jan 24  Updated: 2017 Nov 28

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

Type: Change Request Priority: Minor
Reporter: Kevin Daudt Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: lld, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently the trigger.get API call returns '0' for the templateid of discovered triggers. This makes it hard to get all discovered triggers for a specific trigger prototype.

Can the API be improved to return the actual parent trigger prototype id?



 Comments   
Comment by richlv [ 2017 Jan 24 ]

the docs are a bit light on this, but that's what is stored in the db - well, to be more specific, NULL is stored for non-templated entities, and lld-created entities cannot be templated.
given that, i think it is unlikely that this field will return a different value in the api.
what would be more likely/useful (see the existing params, the suggested should work in a similar way) :

  • a "triggerprototypeids" (wah) param - if specified, only lld-created triggers that come from that prototype are returned
  • selectPrototypes - return prototype id for lld-created entities.

note that it would make sense to implement at the same time for triggers, items and probably applications, hosts...

Comment by Marc Schoechlin [ 2017 Nov 28 ]

It seems that the following relation exists in the database.

I am searching for the triggerprototype of the following trigger:

MariaDB [zabbix]> select * from triggers where triggerid = 95266 \G
*************************** 1. row ***************************
  triggerid: 95266
 expression: {189073}>{$SERVERINST_CLIENT_ABORT_LIMIT}
description: {HOST.NAME}: haproxy Server rgws-rgw0 client aborts
        url:
     status: 0
      value: 0
   priority: 1
 lastchange: 1509037508
   comments:
      error:
 templateid: NULL
       type: 0
      state: 0
      flags: 4
1 row in set (0.00 sec)

It seems that the table trigger_discovery contains the desired information:

MariaDB [zabbix]> select * from trigger_discovery where triggerid = 95266;
+-----------+------------------+
| triggerid | parent_triggerid |
+-----------+------------------+
|     95266 |            95184 |
+-----------+------------------+

MariaDB [zabbix]> select * from triggers where triggerid = 95184 \G
*************************** 1. row ***************************
  triggerid: 95184
 expression: {237132}>{$SERVERINST_CLIENT_ABORT_LIMIT}
description: {HOST.NAME}: {#INSTANCE} Server {#PXNAME}-{#SVNAME} client aborts
        url:
     status: 0
      value: 0
   priority: 1
 lastchange: 0
   comments:
      error:
 templateid: 89134
       type: 0
      state: 0
      flags: 2
1 row in set (0.00 sec)

From my point of understanding it is not possible to gather the parent_triggerid from a trigger
api result.

https://www.zabbix.com/documentation/3.0/manual/api/reference/trigger/get
https://www.zabbix.com/documentation/3.0/manual/api/reference/triggerprototype/get

Is that right?





[ZBXNEXT-3275] Solar JSON must be removed from Zabbix source code Created: 2016 May 10  Updated: 2017 Aug 22

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

Type: Change Request Priority: Minor
Reporter: Alexander Vladishev Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: codequality
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: DEV-591
Story Points: 1

 Description   

From version 5.2.0 PHP supports functions json_encode() and json_decode(). Solar JSON can be removed from Zabbix 3.0 source code.



 Comments   
Comment by richlv [ 2017 Aug 22 ]

please note that it might require additional documentation and dependency check changes as per ZBX-12546





[ZBXNEXT-4018] support "is online"/last login/session info for user.get Created: 2017 Aug 03  Updated: 2017 Aug 03

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.4.0beta1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: user.get
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

user.get api does not seem to support all the capabilities frontend has - specifically, "is online?" column is populated from the session data and in trunk r70896, there's a direct sql query in users.php:437 :

$dbSessions = DBselect(
                'SELECT s.userid,MAX(s.lastaccess) AS lastaccess,s.status'.
                ' FROM sessions s'.
                ' WHERE '.dbConditionInt('s.userid', zbx_objectValues($data['users'], 'userid')).
                ' GROUP BY s.userid,s.status'
        );

it would be useful to expose this in the api






[ZBXNEXT-2468] Global definition of time ranges Created: 2014 Sep 19  Updated: 2017 Jul 31

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

Type: New Feature Request Priority: Minor
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: period, time, timeperiod
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

For the ease of use of recurring regex' we have the possibility to define these in the global administration as a named entity that can be reused in the various places regex' can be used by using the name prepended with a @.

As we also (re-)use a set of time periods in various places (media, maintenance, actions, dynamic item intervals, etc.) it would be nice be able to globally define time periods as well so that we can reuse them in various places. This makes it a lot easier to update a time range in one go. Also it will prevent a lot of user errors.

Of course, it would be nice to create, edit, and use these via the API as well.



 Comments   
Comment by Raymond Kuiper [ 2014 Sep 19 ]

Please see ZBXNEXT-2469 for the possible use of these time periods in trigger expressions.

Comment by richlv [ 2014 Sep 19 ]

ZBXNEXT-334 asks to unify it service & maintenance periods

Comment by Glebs Ivanovskis (Inactive) [ 2017 Jul 31 ]

Should be partially solved by ZBXNEXT-1675.





[ZBXNEXT-3974] API "trend.get" call doesn't support sorting Created: 2017 Jul 03  Updated: 2017 Jul 13

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

Type: Change Request Priority: Major
Reporter: Anton Alekseev Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Documentation says

The following parameters are supported by all get methods:

  • ...
  • sortfield
  • sortorder
  • ...

But using "sortfield" and/or "sortorder" in "trend.get" call has no effect:

Example 1. Sorting by clock doesn't work
Request:
{
  "auth": "...",
  "id": 1,
  "params": {
    "time_till": 1498710000,
    "time_from": 1498700000,
    "sortorder": "ASC",
    "sortfield": "clock",
    "itemids": [
      "26031",
      "26032"
    ],
    "trend": "0",
    "output": [
      "itemid",
      "clock"
    ]
  },
  "method": "trend.get",
  "jsonrpc": "2.0"
}

Response:
{
  "id": 1,
  "result": [
    {
      "clock": "1498701600",
      "itemid": "26031"
    },
    {
      "clock": "1498705200",
      "itemid": "26031"
    },
    {
      "clock": "1498708800",
      "itemid": "26031"
    },
    {
      "clock": "1498701600",
      "itemid": "26032"
    },
    {
      "clock": "1498705200",
      "itemid": "26032"
    },
    {
      "clock": "1498708800",
      "itemid": "26032"
    }
  ],
  "jsonrpc": "2.0"
}
Example 2. Descending sorting by itemid doesnt' work
Request:
{
  "auth": "...",
  "id": 1,
  "params": {
    "time_till": 1498710000,
    "time_from": 1498700000,
    "sortorder": "DESC",
    "sortfield": "itemid",
    "itemids": [
      "26031",
      "26032"
    ],
    "trend": "0",
    "output": [
      "itemid",
      "clock"
    ]
  },
  "method": "trend.get",
  "jsonrpc": "2.0"
}

Response:
{
  "id": 1,
  "result": [
    {
      "clock": "1498701600",
      "itemid": "26031"
    },
    {
      "clock": "1498705200",
      "itemid": "26031"
    },
    {
      "clock": "1498708800",
      "itemid": "26031"
    },
    {
      "clock": "1498701600",
      "itemid": "26032"
    },
    {
      "clock": "1498705200",
      "itemid": "26032"
    },
    {
      "clock": "1498708800",
      "itemid": "26032"
    }
  ],
  "jsonrpc": "2.0"
}

applyQuerySortOptions isn't used in include/classes/api/services/CTrend.php. Neither does ORDER BY SQL clause.






[ZBXNEXT-3127] 'nextcheck' field for web scenarios is not updated after delay changes Created: 2016 Feb 02  Updated: 2017 Jun 13

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

Type: Change Request Priority: Trivial
Reporter: Ivan Good Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Dear all,

httptest table contains a field nextcheck, which controls the next time of execution. If the delay of a check gets modified (API or WebUI), the nextcheck remains the same. Only after the next scheduled run the new value is calculated according to the recently adjusted interval.

Normally it is just fine and does not bother anyone. But troubles appear when the delay gets decreased significantly, e.g. from 3600 to 30 seconds. The new frequency starts working only after the whole hour of waiting.

I propose to change this behavior and set nextcheck to NOW()+delay on delay configuration changes

Kind regards,
Ivan



 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Feb 02 ]

It may also be a good idea to add Web scenarios to Zabbix server's configuration cache and remove nextcheck field from the database.

Comment by richlv [ 2016 Feb 02 ]

ignoring interval reduction seems like a bug to me - if i set interval to the max value, will it take ages before scenario works again ?

adding scenarios to the config cache has been considered for a very long time. the bug part could be fixed more easily - should this issue be moved to zbx project instead ?

Comment by Aleksandrs Saveljevs [ 2016 Feb 03 ]

We discussed this and decided that the issue is not urgent - it existed forever and was only reported in 2016. Also, the same problem seems to apply to network discovery and escalations.

Comment by richlv [ 2016 Jun 17 ]

ZBX-10906 is related

Comment by Glebs Ivanovskis (Inactive) [ 2016 Dec 27 ]

Seems like this problem does not affect network discovery because of a more sophisticated SQL in process_discovery():

(r.nextcheck<=now or r.nextcheck>now+r.delay)

Looks trivial. My suggestion is to downgrade this issue to ZBX and apply a similar fix in process_httptests().

Comment by Glebs Ivanovskis (Inactive) [ 2017 Jun 13 ]

After ZBXNEXT-1675 any change in web scenario or network discovery results in resetting nextcheck to 0 by frontend/API, meaning that server/proxy will pick it up for processing ASAP. But if a macro is used in these fields and it changes value, unfortunately, this can't be tracked down.





[ZBXNEXT-2261] excessive queries when clearing web scenario history Created: 2014 Apr 15  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.4
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

when history is cleared for web scenario items, we delete data from all history tables, even though we know type for each of these items (they are created by frontend/server automatically).
we should only clear the needed tables instead.

frontend definitely does the excessive queries, server should be checked






[ZBXNEXT-2768] Parameter to expand {ITEM.VALUE} macro for event.get API Created: 2015 Apr 08  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.9, 2.4.4
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: api, event, macro, trigger
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

event.get API method cannot get its expanded name directly, need to get objectid and get expanded name using trigger.get.

However, trigger.get with expandDescription expands {ITEM.VALUE} same as {ITEM.LASTVALUE}. There is no way to get correct event info from API like frontend events screen.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Apr 08 ]

See also ZBX-6491

Comment by Oleksii Zagorskyi [ 2016 Apr 05 ]

I've tested, and looks like even after the ZBX-6491 fix, the {ITEM.VALUE} is expanded same as {ITEM.LASTVALUE} using the trigger.get API method.

So current request is still actual.

I feel that the trigger.get method needs an additional parameter which will define how to expand the {ITEM.VALUE} macro.
Because API can be used for both tasks:

  • managing configuration using own frontend - should be expanded as {ITEM.LASTVALUE}
  • displaying current problems - should be expanded as {ITEM.VALUE}

But currently there no way control the macro substitution.

Comment by richlv [ 2017 Apr 22 ]

note that there are two things desired - trigger name expansion for event.get and ITEM.VALUE expansion support. this might have to be split in two feature requests, if not implemented in one go.





[ZBXNEXT-1718] CountOutput ignores permissions in several APIs Created: 2013 Apr 22  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.0.6, 2.2.0
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: actions, api, maps, permissions, screens
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In several APIs permissions can only be checked by retrieving the object and then filtering them on the PHP side. Since countOutput returns the data right after it is retrieved from the DB, permissions for such requests are not checked.

The following APIs are affected by this problem:

  • action
  • map
  • screen

This should be fixed using the code added in ZBX-6407.






[ZBXNEXT-1758] Wrong error message when creating duplicate discovery rule. Created: 2013 May 24  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.1.0
Fix Version/s: 2.2.0

Type: Change Request Priority: Minor
Reporter: Toms (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: discoveryrule
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

When creating duplicate discovery rule for host we get following error message:
'Item with key "dr" already exists on "0".'

We should get following message:
'Discovery rule "%1$s" already exists on "%2$s"'

or

'Discovery rule "%1$s" already exists on "%2$s", inherited from another template.'

accordingly

should be fixed after ZBXNEXT-1633



 Comments   
Comment by Oleksii Zagorskyi [ 2013 May 25 ]

Seems I recall we fixed in the past similar messages for deletion item/graph prototypes.





[ZBXNEXT-3427] API wrong message on create user groups Created: 2016 Sep 08  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.3
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Daniel Linnartz Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

json request

'{"params": {"gui_access": "0", "users_status": "0", "debug_mode": 0, "name": "omnitracker_managed_users"}, "jsonrpc": "2.0", "method": "Usergroup.create", "auth": "485e3f76ebab4682d7bb31d24bac6e27", "id": 2}'
Answer:
{u'error': {u'code': -32500,
            u'data': u'Only Super Admins can delete user groups.',
            u'message': u'Application error.'}

The message should be: Only Super Admins can create user groups.'



 Comments   
Comment by Ingus Vilnis [ 2016 Sep 08 ]

Hi Daniel,

Thank you for reporting this. Do you want this to be moved to your project or let it be here as a feature request?

Comment by Daniel Linnartz [ 2016 Sep 08 ]

Hi Ingus,

i really don't care. It was just a hint for your development team.

Best Daniel





[ZBXNEXT-3622] user.get and usergroup.get don't return LDAP users/groups Created: 2016 Dec 20  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.2.2
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: David Angelovich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL 7



 Description   

user.get won't return users that use the "System Default" authentication when its set to use LDAP. Its returning only the internal users.
Specifying a known LDAP userid returns an empty result.

usergroup.get won't return groups Frontend access is System default when its set to use LDAP.

Documentation isn't clear whether there's a flag to work around this or if its intentional.



 Comments   
Comment by richlv [ 2016 Dec 20 ]

could you please clarify what exactly is "known LDAP userid" ?
please note that zabbix only validates the password against ldap, users must exist in zabbix for any purpose (logging in, getting their names over the api etc)

Comment by David Angelovich [ 2016 Dec 20 ]

I mean a user that has been already configured as a zabbix user, whose auth is against LDAP.





[ZBXNEXT-3754] Convert old trigger hysteresis and drop {TRIGGER.VALUE} support in trigger expressions Created: 2017 Mar 22  Updated: 2017 May 31

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

Type: Change Request Priority: Major
Reporter: Glebs Ivanovskis (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: hysteresis, recoveryexpression, upgrade
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

{TRIGGER.VALUE} is still being used for trigger hysteresis while there is a new and supposedly better way to achieve the same result, namely Recovery expression. As a result we need to support two ways of doing the same thing.

Conversion algorithm should be derived and implemented in DB upgrade and XML import.



 Comments   
Comment by Andrey Melnikov [ 2017 Mar 22 ]

Better create function between($a,$b) to avoid write multiple expressions for each trigger.





[ZBXNEXT-3707] Api event.get() expand description of trigger Created: 2017 Feb 16  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.2.1, 3.2.2, 3.2.3
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Nuno Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 7 running zabbix web (api) and zabbix server.


Attachments: File CEvent.php.patch    

 Description   

When the event.get() method is called in the API the trigger description is not expanded so the host variables are not replaced.

This issue is affecting the integration with other systems.

I made a small change in the file CEvent.php to fix this the patch is in attach.



 Comments   
Comment by richlv [ 2017 Feb 16 ]

looks very desirable, but a more uniform approach would be to support expand* in selectRelatedObject





[ZBXNEXT-3716] Empty response received from Zabbix server "localhost" when execute the default of ZBX scripts Created: 2017 Feb 23  Updated: 2017 May 31

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.2.2
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: carlgan Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, macros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

ZXB 3.2.2 +Centos 7.1


Attachments: Text File debug info for ping cmd.txt    

 Description   

Empty response received from Zabbix server "localhost" when execute the default of ZBX scripts(e.g. ping, detect operating system, traceroure) from dashboard.
Details info:
Empty response received from Zabbix server "localhost". [scripts_exec.php:71 ? CFrontendApiWrapper->execute() ? CApiWrapper->__call() ? CFrontendApiWrapper->callMethod() ? CApiWrapper->callMethod() ? CFrontendApiWrapper->callClientMethod() ? CLocalApiClient->callMethod() ? call_user_func_array() ? CScript->execute() ? CApiService::exception() in include/classes/api/services/CScript.php:311]



 Comments   
Comment by richlv [ 2017 Feb 23 ]

could a misconfiguration of the server ip/port in the frontend.
worth discussing first in channels, listed at http://zabbix.org/wiki/Getting_help





[ZBXNEXT-2389] Support for grouping of icons Created: 2014 Jul 21  Updated: 2017 Apr 25

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

Type: New Feature Request Priority: Minor
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: icons, maps, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-2984 Icon classifications Closed
is duplicated by ZBXNEXT-3790 Categorize Icons Closed

 Description   

Adding large sets of icons to the Zabbix Frontend for building maps makes it hard to keep an overview of the usable icons.
It would help if icons could be grouped into iconsets. Preferably, an icon could be part of a set.

This would allow for grouping icons by type (server, network, appliances, logos, etc.) and for example sizes (24px, 48px, 96px, etc.)



 Comments   
Comment by Raymond Kuiper [ 2014 Jul 21 ]

Of course, it would need to be possible to select an icon from a set in the maps designer as well.
Dropdown menu would work, but it might be nice to drag/drop them from a pallete like interface. (like Visio, Dia, etc.)





[ZBXNEXT-3704] New operation types: add/delete macro, set macro value Created: 2017 Feb 16  Updated: 2017 Apr 16

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

Type: New Feature Request Priority: Major
Reporter: Glebs Ivanovskis (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 8
Labels: macros, operations
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

There could be many uses for this, one of them is dynamic adjustment of update intervals depending on trigger states. (Macro support in intervals is coming with ZBXNEXT-1675.)



 Comments   
Comment by Semiadmin [ 2017 Apr 15 ]

May be, add also the operation type like this one:
"Change update interval of item {ITEM.ID1} to 30"
or "...to {$FAST}"
This option'll allow to monitor anomalies more carefully.
Recovery operation'll return an old value.





[ZBXNEXT-3242] simplify escalation configuration Created: 2016 Apr 15  Updated: 2016 Dec 08

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

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


 Description   

i thought i had this reported already, but can't find anything. hopefully i'm not creating a duplicate here

the current escalation configuration is... complicated. one has to match step duration with step numbers, take into account operation overrides. it is quite error prone. changing the default escalation interval messes everything up.

it is proposed to hide all the low-level detail from the users, instead exposing to them simple controls that would still offer the same level of flexibility.

the escalation interval would be changed to 60. this would be the lowest granularity of escalation steps - going lower is possible, but then alerter frequency should be taken into account (30 seconds by default).
users would get options to specify the time when an operation should happen. for each operation, they would be able to also set recurrence/repeating, setting interval and either the amount of messages, or the length of time, for how long such repeated messages should be sent. zabbix would calculate how the time and recurrence matches to the internal steps - user would not have to do that themselves.
this would probably allow to get rid of the ability to override interval on the operation level, it would serve no purpose anymore.

extra things to take into account :
a) migrating existing actions, especially the ones that use per-operation overriding;
b) with the interval of 60 seconds, check for how long an escalation could run (step value overflow) on all supported databases. or maybe get rid of steps/their ids, just check escalations and see what and when should be performed ?

there are likely other potential problems. it is suggested to take great care not to have functional regressions.



 Comments   
Comment by richlv [ 2016 Apr 15 ]

this would likely solve ZBXNEXT-156

Comment by richlv [ 2016 Apr 15 ]

this would also take care of the challenge for new users to understand that "step 1 happens at 0 minutes and step 2 happens after the interval time"

Comment by richlv [ 2016 May 05 ]

...and if somebody could fix "confirguration", that would be appreciated

Comment by Aleksandrs Saveljevs [ 2016 May 09 ]

"confirguration" fixed.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Dec 06 ]

Concept of "steps" in the context of escalations is a bit odd, in my opinion. Mostly because these steps are not uniform in duration. But if we declare step to be of fixed duration, then we can go further and declare step duration to be equal to 1 second, and then "step" makes no sense at all.

To put it simply, each operation should have Start time, Interval of execution, End time/Number of executions and all operations must be independent. There will be no upgrade patch that would make 1 to 1 conversion in general case, because currently operation interval can be variable, but I think it makes sense to simply choose the minimal interval in such case.

Comment by richlv [ 2016 Dec 08 ]

glebs.ivanovskis, indeed - making the "step" last 1 second internally would allow to build all kind of abstractions on top of the escalation model (i started on something using the api, and there seems to be a possibility to make all this user friendly).

but i didn't really get what did you mean by "There will be no upgrade patch that would make 1 to 1 conversion in general case, because currently operation interval can be variable" - what makes upgrade/conversion impossible ?

Comment by Glebs Ivanovskis (Inactive) [ 2016 Dec 08 ]

In my suggested method every operation in action will be executed with a constant interval. Currently intervals between operation execution may differ because of operation interference even though there is just a single Duration setting per operation.

Example:

  • Operation A is assigned to Steps 1-0 with custom Duration of 120 seconds
  • Operation B is assigned to Steps 5-10 with custom Duration of 60 seconds

When escalation starts operation A will be executed first with 2 minute intervals, then with 1 minute interval, then again with 2 minute interval.

Comment by richlv [ 2016 Dec 08 ]

glebs.ivanovskis - ah yeah, that seems to match.

as for converting the old operations, that is probably doable... but it would result in operations multiplying in some cases. a but tricky decision indeed.





[ZBXNEXT-2554] Provide an API option to obtain dependent triggers for trigger.get() Created: 2014 Oct 31  Updated: 2016 Nov 25

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.5.0
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Volker Fröhlich Assignee: Unassigned
Resolution: Unresolved Votes: 9
Labels: patch, triggers
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File zabbix-2.2.5-trigger-get-selectdependent.patch     File zabbix-3.0.4-trigger-get-selectdependent.patch    

 Description   

While selectDependencies allows to obtain triggers the given trigger depends on, the reverse operation is not supported by the API.

Application:

I'm using a couple of purely time-dependent triggers to mask particular backup windows, following the approach I described in http://blog.zabbix.com/a-workaround-for-trigger-based-maintenance/1527/. It's difficult to find all triggers that depend on it.

I wrote a quick implementation, that should be fairly efficient. It introduces a new option called selectDependent, which behaves analogue to selectDependencies. It is capable of returning triggers that directly depend on the given trigger.

My actual goal is to create ad-hoc dependency graphs. Creating greater trees requires as many API invocations as there are tiers of dependency.






[ZBXNEXT-3515] Add embedded script support to Web scenario steps Created: 2016 Oct 28  Updated: 2016 Oct 28

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

Type: New Feature Request Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: JavaScript
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Web scenarios do not provide Real User Monitoring (RUM), where a scenario runs in a fully-blown Internet browser engine.
Any code supposed to be interpreted or executed in the browser on client side, as it is the case with JavaScript, will have no effect.

A web application with an authentication procedure that requires to get a salted hash POSTed connot be monitored by Zabbix.

E.g.:

var response = challenge + "-" + password;
jxl.setValue("uiResponse", challenge + "-" + hex_md5(response));

In the past I've seen things like these only now and then. Meanwhile, I'm encountering more and more web services that cannot be monitored with Zabbix.

So, how about adding embedded script support on step level?

PS: It seems reasonable to use JavaScript but I think other interpreters like for instance LUA could help here too






[ZBXNEXT-3471] querying trend API for aggregate information Created: 2016 Oct 03  Updated: 2016 Oct 03

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.5
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Martin Møller Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, items, trends
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 6.8 Server with MySQL, running af a VMware VM.
8 GB RAM, approximate database size: 160 GB.



 Description   

I have tried to integrate trends into my PDF report, and I believe I am querying the way I should, but it looks like trend.get ignores the time_from and time_till values and just return the value from one record instead.

For example, I have some hosts/gateways that have had some unscheduled downtime. Some of them a few days ago, but it I ask for trend data for say a week, it just says that no pings were ever lost.

If I have a host that is still down, I at least get a value that is not zero, but typically much higher than what the period it covers would lead to.

Example:Report from 2016.09.25 22:33 until 2016.10.02 22:33.

Ping loss is shown as 0%?!
Looking at the graph, it is clear that the actual ping loss in that period is 37.12%

If I manually query the trend database the way I would expect the API to, I get a value matches this pretty well:

mysql> select AVG(value_avg) AS trend_avg from trends WHERE itemid=52391 and clock BETWEEN 1474835627 and 1475440427;
+-------------+
| trend_avg   |
+-------------+
| 37.11576826 |
+-------------+
1 row in set (0.00 sec)

Datapoints:

mysql> select clock,value_avg AS trend_avg from trends WHERE itemid=52391 and clock BETWEEN 1474835627 and 1475440427;
+------------+-----------+
| clock      | trend_avg |
+------------+-----------+
| 1474837200 |    0.0000 |
| 1474840800 |    0.0000 |
| 1474844400 |    0.0000 |
| 1474848000 |    0.0000 |
| 1474851600 |    0.0000 |
| 1474855200 |    0.0000 |
| 1474858800 |    0.0000 |
| 1474862400 |    0.0000 |
| 1474866000 |    0.0000 |
| 1474869600 |    0.0000 |
| 1474873200 |    0.0000 |
| 1474876800 |    0.0000 |
| 1474880400 |    0.0000 |
| 1474884000 |    0.0000 |
| 1474887600 |    0.0000 |
| 1474891200 |    0.0000 |
| 1474894800 |    0.0000 |
| 1474898400 |    0.0000 |
| 1474902000 |    0.0000 |
| 1474905600 |    0.0000 |
| 1474909200 |    0.0000 |
| 1474912800 |    0.0000 |
| 1474916400 |    0.0000 |
| 1474920000 |    0.0000 |
| 1474923600 |    0.0000 |
| 1474927200 |    0.0000 |
| 1474930800 |    0.0000 |
| 1474934400 |    0.0000 |
| 1474938000 |    0.0000 |
| 1474941600 |    0.0000 |
| 1474945200 |    0.0000 |
| 1474948800 |    0.0000 |
| 1474952400 |    0.0000 |
| 1474956000 |    0.0000 |
| 1474959600 |    0.0000 |
| 1474963200 |    0.0000 |
| 1474966800 |    0.0000 |
| 1474970400 |    0.0000 |
| 1474974000 |    0.0000 |
| 1474977600 |    0.0000 |
| 1474981200 |    0.0000 |
| 1474984800 |    0.0000 |
| 1474988400 |    0.0000 |
| 1474992000 |    0.0000 |
| 1474995600 |    0.0000 |
| 1474999200 |    0.0000 |
| 1475002800 |    0.0000 |
| 1475006400 |    0.0000 |
| 1475010000 |    0.0000 |
| 1475013600 |    0.0000 |
| 1475017200 |    0.0000 |
| 1475020800 |    0.0000 |
| 1475024400 |    0.0000 |
| 1475028000 |    0.0000 |
| 1475031600 |    0.0000 |
| 1475035200 |    0.0000 |
| 1475038800 |    0.0000 |
| 1475042400 |    0.0000 |
| 1475046000 |    0.0000 |
| 1475049600 |    0.0000 |
| 1475053200 |    0.0000 |
| 1475056800 |    0.0000 |
| 1475060400 |    0.0000 |
| 1475064000 |    0.0000 |
| 1475067600 |    0.0000 |
| 1475071200 |    0.0000 |
| 1475074800 |    0.0000 |
| 1475078400 |    0.0000 |
| 1475082000 |    0.0000 |
| 1475085600 |    0.0000 |
| 1475089200 |    0.0000 |
| 1475092800 |    0.0000 |
| 1475096400 |    0.0000 |
| 1475100000 |    0.0000 |
| 1475103600 |    0.0000 |
| 1475107200 |    0.0000 |
| 1475110800 |    0.0000 |
| 1475114400 |    0.0000 |
| 1475118000 |    0.0000 |
| 1475121600 |    0.0000 |
| 1475125200 |    0.0000 |
| 1475128800 |    0.0000 |
| 1475132400 |    0.0000 |
| 1475136000 |    0.0000 |
| 1475139600 |    0.0000 |
| 1475143200 |    0.0000 |
| 1475146800 |    0.0000 |
| 1475150400 |    0.0000 |
| 1475154000 |    0.0000 |
| 1475157600 |    0.0000 |
| 1475161200 |    0.0000 |
| 1475164800 |    0.0000 |
| 1475168400 |    0.0000 |
| 1475172000 |    0.0000 |
| 1475175600 |    0.0000 |
| 1475179200 |    0.0000 |
| 1475182800 |    0.0000 |
| 1475186400 |    0.0000 |
| 1475190000 |    0.0000 |
| 1475193600 |    0.0000 |
| 1475197200 |    0.0000 |
| 1475200800 |    0.0000 |
| 1475204400 |    0.0000 |
| 1475208000 |    0.0000 |
| 1475211600 |    0.0000 |
| 1475215200 |   98.3333 |
| 1475218800 |  100.0000 |
| 1475222400 |  100.0000 |
| 1475226000 |  100.0000 |
| 1475229600 |  100.0000 |
| 1475233200 |  100.0000 |
| 1475236800 |  100.0000 |
| 1475240400 |  100.0000 |
| 1475244000 |  100.0000 |
| 1475247600 |  100.0000 |
| 1475251200 |  100.0000 |
| 1475254800 |  100.0000 |
| 1475258400 |  100.0000 |
| 1475262000 |  100.0000 |
| 1475265600 |  100.0000 |
| 1475269200 |  100.0000 |
| 1475272800 |  100.0000 |
| 1475276400 |  100.0000 |
| 1475280000 |  100.0000 |
| 1475283600 |  100.0000 |
| 1475287200 |  100.0000 |
| 1475290800 |  100.0000 |
| 1475294400 |  100.0000 |
| 1475298000 |  100.0000 |
| 1475301600 |  100.0000 |
| 1475305200 |  100.0000 |
| 1475308800 |  100.0000 |
| 1475312400 |  100.0000 |
| 1475316000 |  100.0000 |
| 1475319600 |  100.0000 |
| 1475323200 |  100.0000 |
| 1475326800 |  100.0000 |
| 1475330400 |  100.0000 |
| 1475334000 |  100.0000 |
| 1475337600 |  100.0000 |
| 1475341200 |  100.0000 |
| 1475344800 |  100.0000 |
| 1475348400 |  100.0000 |
| 1475352000 |  100.0000 |
| 1475355600 |  100.0000 |
| 1475359200 |  100.0000 |
| 1475362800 |  100.0000 |
| 1475366400 |  100.0000 |
| 1475370000 |  100.0000 |
| 1475373600 |  100.0000 |
| 1475377200 |  100.0000 |
| 1475380800 |  100.0000 |
| 1475384400 |  100.0000 |
| 1475388000 |  100.0000 |
| 1475391600 |  100.0000 |
| 1475395200 |  100.0000 |
| 1475398800 |  100.0000 |
| 1475402400 |  100.0000 |
| 1475406000 |  100.0000 |
| 1475409600 |  100.0000 |
| 1475413200 |  100.0000 |
| 1475416800 |  100.0000 |
| 1475420400 |  100.0000 |
| 1475424000 |  100.0000 |
| 1475427600 |  100.0000 |
| 1475431200 |  100.0000 |
| 1475434800 |  100.0000 |
+------------+-----------+
167 rows in set (0.00 sec)

What I see in my report (DEBUG stage):
Trend item search for: ICMP loss of type number

Array
(
    [0] => Array
        (
            [itemid] => 52391
            [name] => ICMP loss
            [key_] => icmppingloss
            [description] => 
            [units] => %
            [lastclock] => 1475439806
            [lastvalue] => 100.0000
        )

)

Trend data for ICMP loss:

Array
(
    [0] => Array
        (
            [itemid] => 52391
            [num] => 60
            [value_min] => 0.0000
            [value_avg] => 0.0000
            [value_max] => 0.0000
        )

)

In this case, it looks like only the first value in the set is used.
I would expect that num would be SUM()'ed, value_min, MIN()'ed, value_avg AVG()'ed, and value_max MAX()'ed over the entire period and then returned.

This is tested on Zabbix 3.0.4. I expect it is also an issue in 3.2, but I have not had time to test it.

It does not look like 3.0.5 is available as a package for my CentOS base yet, but I doubt the issue is fixed, since the release notes make no mention of it.



 Comments   
Comment by richlv [ 2016 Oct 03 ]

first, zabbix api never performs any operations on the database values (there is a separate feature request for that), thus your check with the db level avg() wouldn't be reproducible with the current zabbix api.

as for only one value being returned, please show the raw json sent to the zabbix api (not an interpretation for some library or language, pure json)

Comment by Martin Møller [ 2016 Oct 03 ]

Alright. That would be this part:

{"auth":"<removed>","method":"trend.get","id":1,"params":{"output":["itemid","num","value_min","value_avg","value_max"],"itemids":"52391","time_from":1474851603,"time_till":1475456403,"limit":1},"jsonrpc":"2.0"}

From your description, I think I can gather that limit:1 is my issue and that I will get all rows returned, not the added values. Might there be a call for that some day?
I guess I'll have to see about averaging them in PHP after I receive them, them.

Context:
CURL Options:

Array
(
    [19913] => 1
    [13] => 30
    [78] => 5
    [81] => 
    [64] => 
    [52] => 1
    [74] => 1
    [10023] => Array
        (
            [0] => Content-Type: application/json-rpc
            [1] => User-Agent: ZabbixAPI v1.0 - http://andrewfarley.com/zabbix_php_api
        )

    [10036] => POST
    [10015] => {"auth":"64e85a215abf7e23d57f57fcd246a0f7","method":"trend.get","id":1,"params":{"output":["itemid","num","value_min","value_avg","value_max"],"itemids":"52391","time_from":1474851603,"time_till":1475456403,"limit":1},"jsonrpc":"2.0"}
    [10102] => gzip
)

Got response from API:

({"jsonrpc":"2.0","result":[{"itemid":"52391","num":"60","value_min":"0.0000","value_avg":"0.0000","value_max":"0.0000"}],"id":1})

Response decoded:

(Array
(
    [jsonrpc] => 2.0
    [result] => Array
        (
            [0] => Array
                (
                    [itemid] => 52391
                    [num] => 60
                    [value_min] => 0.0000
                    [value_avg] => 0.0000
                    [value_max] => 0.0000
                )

        )

    [id] => 1
)

PS: Tried removing 'limit:1' and then I get all the rows, so now that part is solved. I didn't get a good grasp on the trend.get call from the one example shown, I'm afraid.

Comment by richlv [ 2016 Oct 03 ]

ZBXNEXT-656 asks for something similar - only for history.get, but that's normal as trend.get didn't exist back then.
other similar feature requests are ZBXNEXT-1192 and ZBXNEXT-3034





[ZBXNEXT-3437] allow filtering triggers for "have fired until..." Created: 2016 Sep 14  Updated: 2016 Sep 14

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.2.0
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: trigger.get
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

the desire is to obtain IDs of triggers that have fired in a given timeframe.

trigger.get method has two parameters to limit by the time when triggers have fired :

  • lastChangeSince
  • lastChangeTill

unfortunately, the lastChangeTill does exactly what the name implies - limits triggers to ones that had their last change until the specified time.

let's say it's 2016-09-14 now, and we would like to get all triggers that fired in february this year.
we can set lastChangeSince to 00:00:00 feb 1st.
unfortunately, setting lastChangeTill to 00:00:00 mar 1st will exclude all triggers that fired in march and later.

it might be useful to have a parameter like hasChangeTill, that would return "anything that fired until that time, no matter whether it fired afterwards or not".

if there is a way to get such data, sorry for missing that in the manual and i'd appreciate any pointers






[ZBXNEXT-1515] Item object should have discovery_status property Created: 2012 Nov 14  Updated: 2016 Aug 29

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.0.3
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: ojab Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, lld
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File discovery.png    

 Description   

I have LLD rule, which creates ifAlias item for each ifDescr with filter on {#SNMPVALUE} macro, items ifAlias.["7"] and ifAlias.["8"] was created this way (see the attached screenshot).
Corresponding card on equipment was removed, this items is no longer discovered and I can happily filter out ifAlias.["7"] by {'filter': {'status': '0'}}.

Unfortunately ifAlias.["8"] OID become used by other interface, so it's item has {'status': '0'}, nevertheless no longer discovered.
It should be item object should has property for discovery status in order to resolve such cases.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Nov 15 ]

As I get it in short: we need a new ability - to get "lost status" in method item.get.

Probably we could get it from item_discovery.ts_delete column (timestamp when the lost resource will be deleted).
If it's NOT 0 - then item has to be deleted.

Just in case see ZBX-4475





[ZBXNEXT-2593] Allow to create host inventory in Zabbix API Created: 2014 Nov 14  Updated: 2016 Aug 03

Status: Need info
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.6
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Sergei Prutskikh Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: api, database, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In Zabbix API it is possible to create host with inventory, but if host is already created and inventory this host is disabled, it is not possible to update this host to create inventory.

in your API class CHost.php there is some additional code that restrict to create inventory while Host Update function.

Host update function actially call massUpdate function and here we see this code:

if (!isset($existingInventoriesDb[$hostId])) {
							$host = get_host_by_hostid($hostId);
							self::exception(ZBX_API_ERROR_PARAMETERS, _s(
								'Inventory disabled for host "%1$s".', $host['host']
							));
						}

Why you cant create new inventory for host if there is no inventory for host exists yet?



 Comments   
Comment by richlv [ 2014 Nov 14 ]

have you set "inventory_mode" to 0 or 1 as per https://www.zabbix.com/documentation/2.2/manual/api/reference/host/object ?

Comment by Aleksandrs Saveljevs [ 2016 Aug 03 ]

Is the problem still relevant for you?





[ZBXNEXT-3346] JSON adding new item to map without deleting existing items Created: 2016 Jul 25  Updated: 2016 Jul 25

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.3
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Vekli Sergey Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Vekli Sergey [ 2016 Jul 25 ]

I mean in the theme "adding new item".

asaveljevs Fixed.





[ZBXNEXT-1602] support HOST.CONN, IP, DNS in allowed hosts for zabbix trapper items Created: 2013 Feb 01  Updated: 2016 Jun 30

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

Type: New Feature Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: interfaces, macros, zabbixtrapper
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

continuing of (1) from ZBXNEXT-354 - would be great to include support in "allowed hosts" for zabbix trapper items of :

{HOST.CONN}

,

{HOST.IP}

and

{HOST.DNS}

as per comment there, this will require adding interface support for trapper items



 Comments   
Comment by Constantin Oshmyan [ 2016 Jun 30 ]

I'd like to show my interest also: is there some progress with this issue?
mwyraz wrote in ZBXNEXT-354 more than 3 years ago:

Without this feature, trapper templates are either a security issue (if no allowed hosts are given) or quite impractical (if many hosts have to be configured manually).

I'm agree completely with Michael.

Comment by Alexander [ 2016 Jun 30 ]

Recently, it became necessary to use this option in the template. Interested in its implementation.





[ZBXNEXT-3315] can't get all template properties in one call Created: 2016 Jun 20  Updated: 2016 Jun 20

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.3
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: template.get
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

when requesting template.get, we may ask for all the properties like applications, macros, items, triggers, graphs... unfortunately, nested properties are not returned :

  • steps for web scenarios
  • items for graphs
  • prototypes for lld rules
  • templated screen items/elements
  • something else ?

if one would like to get all the information about a template, that makes the 'extend' call to these entities useless - it is still required to make another call for all the web scenarios, graphs, lld rules, templated screens...

the host.get method is likely the same.



 Comments   
Comment by richlv [ 2016 Jun 20 ]

also applications for items, and probably many more properties or other entities.

looks like these parameters haven't been thought out that well - the frontend doesn't use them anyway and resorts to the individual .get methods.





[ZBXNEXT-1139] Popup graphs in maps Created: 2012 Mar 02  Updated: 2016 Jun 09

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 1.8.9, 1.8.10, 1.9.9 (beta)
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Charles Cooke Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 7
Labels: graphs, maps, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File map_popup_host_graph.patch    
Issue Links:
Duplicate

 Description   

One of the tools we're looking to use Zabbix to replace is Weathermap, which produces some nice pop-up graphs on its map-equivalents. In order to keep that functionality, I implemented a quick and dirty method of linking graphs to nodes in a map (Currently only works for host nodes). All it does is parse URL fields looking like "GRAPH: something" and display the first graph matching "something" on the relevant host.

This is good enough for our use, but I expect you'd want to think about the 'right' way to implement this functionality if you included it in a subsequent release.

Screenshot (with obligatory typo, damnit) at http://granite.earth.gkhs.net/~ccooke/zabbix-popup-graph-1.png



 Comments   
Comment by richlv [ 2012 May 09 ]

quite similar to ZBXNEXT-150

Comment by Micha Slezak [ 2016 Jun 09 ]

Here is nice page http://www.zabbix.com/development_services.php where on the bottom of this page is possibility to Contribute on specific feature. I think that it can be way how to promote some feature requests and to do something like crowdfunding on specific feature. Zabbix dev setup price and we can contribute on this feature I think it can be good way how to pay for each feature and to to pay whole development by one customer.





[ZBXNEXT-3288] Add view on escalation progress. Created: 2016 May 26  Updated: 2016 May 26

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

Type: New Feature Request Priority: Minor
Reporter: Sandis Neilands (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Monitoring->Triggers and Monitoring->Events provides very low level view of the network. This view is useful for ad-hoc investigation of problems.

However business rules and workflows are encoded in Actions. There is no high-level view of progress of escalations.

The purpose of this ZBXNEXT is to study feasibility of adding such view in UI and API.






[ZBXNEXT-3264] templates_unlink for host.update Created: 2016 May 02  Updated: 2016 May 02

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.2
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: host.update
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

according to https://www.zabbix.com/documentation/3.0/manual/api/reference/host/update , the "templates" parameter replaces all the host templates with the specified templates, "templates_clear" parameter unlinks and clears the specified templates.

it seems strangely inconsistent that there's no templates_unlink that would be the companion for the _clear parameter - that is, it would unlink without clearing the specified templates






[ZBXNEXT-3258] allow filtering media by mediatype in user.get Created: 2016 Apr 27  Updated: 2016 Apr 27

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.2
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: user.get
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

according to the manual, user.get method allows to :

  • filter returned users by a specific media with mediaids
  • filter returned users by used mediatype with mediatypeids
  • return all user media with selectMedias
  • return mediatypes used in user media with selectMediatypes

there does not seem to be a way to return only media entries that are assigned to a specific mediatypeid - for example, returning email addresses of all users, while ignoring scripts and all other types.






[ZBXNEXT-3245] allow leaving "Send to" empty for script media types Created: 2016 Apr 15  Updated: 2016 Apr 15

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

Type: Change Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: alertscripts, mediatypes
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

currently "Send to" is always required. in the case of alertscripts, it is often unused. it is suggested to allow leaving this field empty for the 'script' media types






[ZBXNEXT-3161] new network discovery condition - target identifier Created: 2016 Feb 22  Updated: 2016 Feb 22

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: networkdiscovery
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

when creating conditions for network discovery, we can limit by type (like zabbix agent or snmp) and by individual checks (like "that check in that discovery rule).
it would be great to also be able to limit by an identifier across all discovery rules - like "all checks that use agent key system.uname" or "all snmp checks that use oid sysDescr"






[ZBXNEXT-3104] Add support for host status changes to internal events Created: 2016 Jan 20  Updated: 2016 Feb 19

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

Type: New Feature Request Priority: Trivial
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: hoststatus, internalevents, maintenance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-3151 add internal events when maintenance ... Closed

 Description   

Inclusion of host based internal events like the following:

  • Host added
  • Host enabled
  • Host disabled
  • Host deleted
  • Host in maintenance
  • Host out of maintenance

Would be useful for us to notify Zabbix admins on.



 Comments   
Comment by richlv [ 2016 Jan 20 ]

maintenance part seems to be a duplicate of ZBXNEXT-2141





[ZBXNEXT-3141] unify actions Created: 2016 Feb 12  Updated: 2016 Feb 12

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: actions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

zabbix currently has four separate action types :

  • trigger
  • network discovery
  • active agent auto-registration
  • internal

this sort of makes sense from the technical point of view, but makes it harder for users (they have to switch between the types), and limits the functionality per the implemented type (for example, internal actions didn't get the maintenance status support - ZBXNEXT-2141).

additionally, auto-registered hosts can not be removed - host removal operation is only available for network discovery actions.

from the configuration maintenance point of view, it is very cumbersome, too. if zabbix instance has a couple of actions, it's relatively easy to recreate them for the internal events. if there are dozens... no. users resort to custom scripts to go to the database and just completely skip the internal events/actions.

the suggestion is to merge all actions, allowing all conditions and operations. there would have to be some sanity checks/decisions - what if somebody sets only auto-reg condition and then only adds "delete host" operation ?

nevertheless, that should significantly simplify some configuration tasks (like reacting to internal events in installations, having more than a few actions) and resolve several feature requests (including deletion of auto-registered hosts).






[ZBXNEXT-3059] specify "old key" in the xml file Created: 2015 Nov 30  Updated: 2016 Jan 22

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: import, xml
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

there is a way to delete entities that do not exist in the xml file upon import. unfortunately, if item key is changed, all history is lost. similarly, if trigger name or expression is changed, events for that trigger are lost.

it might be useful to allow specifying one or more "old keys", "old names" and "old expressions". that way users could keep on importing templates that change these entities, and keep all the history. especially nice with the default zabbix templates, like the internal monitoring one.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Dec 01 ]

A bit not related but one of real case - upgrade 2.0 installation to 2.4.
Import new 2.4 "zabbix server app" template to update existing one.
Existing items had quotes for key parameters, items in template are without quotes.

To resolve that I had to manually remove quotes in keys (~10 items) in existing template, only then import.
That's annoying as I had to do that already several times

Comment by richlv [ 2016 Jan 22 ]

ZBXNEXT-3111 is somewhat similar - asks for specifying "old" value for lld





[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-3061] Using Oracle bind variables in the queries generated by Frontend. Created: 2015 Dec 03  Updated: 2015 Dec 17

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

Type: Change Request Priority: Major
Reporter: Oleg Ivanivskyi Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: bind, oracle, performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 2.2 and 2.4


Issue Links:
Duplicate
is duplicated by ZBX-9635 Availability report does not use Orac... Closed

 Description   

ZBXNEXT-166 introduced Oracle bind variables support for server/proxy and only for inserts.
Many ZABBIX Frontend/API queries are causing hard parse (it makes query performance poor) as they are not using bind variables at all. They are using directly value in query. Example:

SELECT f.triggerid,f.functionid,h.host,h.name FROM functions f JOIN items i ON f.itemid=i.itemid JOIN hosts h ON i.hostid=h.hostid WHERE (f.functionid BETWEEN '4937' AND '4941' OR f.functionid BETWEEN '4959' AND '4963' OR f.functionid BETWEEN '4981' AND '4985' OR f.functionid BETWEEN '5003' AND '5007' OR f.functionid BETWEEN '5025' AND '5029' OR f.functionid BETWEEN '5050' AND '5054' OR f.functionid BETWEEN '5072' AND '5076' OR f.functionid BETWEEN '6760' AND '6764' OR f.functionid BETWEEN '6786' AND '6790' OR f.functionid BETWEEN '6820' AND '6824' OR f.functionid BETWEEN '6842' AND '6846' OR f.functionid BETWEEN '6864' AND '6868' OR f.functionid BETWEEN '6886' AND '6890' OR f.functionid BETWEEN '6908' AND '6912' OR f.functionid BETWEEN '6930' AND '6934' OR f.functionid BETWEEN '6952' AND '6956' OR f.functionid BETWEEN '6974' AND '6978' OR f.functionid BETWEEN '6996' AND '7000' OR f.functionid BETWEEN '7018' AND '7022' OR f.functionid BETWEEN '7040' AND '7044' OR f.functionid BETWEEN '7062' AND '7066' OR f.functionid BETWEEN '7084' AND '7088' OR f.functionid BETWEEN '7106' AND '7110' OR f.functionid BETWEEN '7128' AND '7132' OR f.functionid BETWEEN '7150' AND '7154' OR f.functionid BETWEEN '7172' AND '7176' OR f.functionid BETWEEN '7194' AND '7198' OR f.functionid BETWEEN '7216' AND '7220' OR f.functionid BETWEEN '7238' AND '7242' OR f.functionid BETWEEN '7260' AND '7264' OR f.functionid BETWEEN '7282' AND '7286' OR f.functionid BETWEEN '7304' AND '7308' OR f.functionid BETWEEN '7326' AND '7330' OR f.functionid BETWEEN '7348' AND '7352' OR f.functionid BETWEEN '7370' AND '7374' OR f.functionid BETWEEN '7392' AND '7396' OR f.functionid BETWEEN '7414' AND '7418' OR f.functionid BETWEEN '7436' AND '7440' OR f.functionid BETWEEN '7458' AND '7462' OR f.functionid BETWEEN '7480' AND '7484' OR f.functionid BETWEEN '7502' AND '7506' OR f.functionid BETWEEN '7524' AND '7528' OR f.functionid BETWEEN '7546' AND '7550' OR f.functionid BETWEEN '7568' AND '7572' OR f.functionid B... 

It would be great, if Zabbix API will use bind variables in queries also.






[ZBXNEXT-3074] support filtering expanded trigger expression in API Created: 2015 Dec 15  Updated: 2015 Dec 15

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.11, 2.4.7
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, expressions, trigger
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

"filter" and "search" parameter doesn't work with expandExpression. these filtering parameters affect only not-expanded expression.






[ZBXNEXT-2381] too frequent updates of sessions table Created: 2014 Jul 11  Updated: 2015 Dec 10

Status: Confirmed
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.4
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Alberto Díaz Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: database, performance, sessions, update
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

LAMP



 Description   

From my db log:
UPDATE sessions SET lastaccess=1405069441 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069446 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069451 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069461 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069471 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069481 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069491 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'
UPDATE sessions SET lastaccess=1405069501 WHERE userid=4 AND sessionid='eee0e08926a92d31c0b4b5a7ee4dc948'

I think that updating sessions may be done only if the last update was XXX seconds ago. This should lower the DB usage. XXX could be configurable.



 Comments   
Comment by Aleksandrs Saveljevs [ 2014 Jul 30 ]

Related issue: ZBX-8462.

zalex_ua I'd not agree

Comment by Oleksii Zagorskyi [ 2015 Dec 10 ]

That 10 seconds interval is hardcoded interval of global zabbix server status checks.
My detailed comment https://support.zabbix.com/browse/ZBX-8051#comment-139807 talks almost about the same.

Comment by Oleksii Zagorskyi [ 2015 Dec 10 ]

Confirmed.





[ZBXNEXT-3034] Support groupfunc (grpavg, grpmax, grpmin, grpsum) via the API Created: 2015 Nov 02  Updated: 2015 Dec 02

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

Type: New Feature Request Priority: Major
Reporter: Chris Christensen Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: aggregate
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The API should support the ability to query grouping functions: groupfunc (grpavg, grpmax, grpmin, grpsum). This would allow better understanding of item values from a grouping perspective for validation before implementing the grp* item key and the ability to look at grouped data values where a grp* item key was not previously set.


There is precedent for the use of group aggregates with the existing API methods, but the implementation is akward and could benefit from optimization(s) rather than multiple queries. For example:



 Comments   
Comment by Chris Christensen [ 2015 Nov 02 ]

Just to note, ZBXNEXT-1192 looks similiar, but I believe they are different in that the aggregates do not include hostgroup item selection.

Comment by Chris Christensen [ 2015 Nov 02 ]

Here's an example with the trends table using MySQL:

Variables: i.key_, g.name, clock (and grouping)

SELECT clock, AVG(value_avg) FROM trends
WHERE itemid IN (
  SELECT DISTINCT i.itemid
  FROM items i, hosts h, hosts_groups hg, groups g
  WHERE i.hostid=h.hostid
   AND h.hostid=hg.hostid
   AND i.key_='system.cpu.load[,avg5]'
   AND i.status=0
   AND i.state=0
   AND h.status=0
   AND g.name IN ('hostgroup-name-1', 'hostgroup-name-2'))
AND (clock BETWEEN 1422496800 AND 1422536400)
GROUP BY clock DIV 300;




[ZBXNEXT-2860] Improve housekeeper algorithm Created: 2015 Jun 29  Updated: 2015 Nov 05

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

Type: Change Request Priority: Major
Reporter: Alexey Pustovalov Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: housekeeper
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Currently Zabbix server retrieves all itemid's min clock from history* and trends* table. Also it uses housekeeper table to remove non-existing items. We need to optimize the process and drop housekeeper table at all and use only history and trends tables data.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Jun 30 ]

In ZBX-9278 (which I posted earlier ) I suggested some exact solutions for almost the same aspects as Alexey mentioned here.

I cannot imagine how we could drop the housekeeper table at all.

I'd suggest to close current report as duplicate and move unique details to the ZBX-9278

Comment by Oleksii Zagorskyi [ 2015 Nov 03 ]

Now I understand how Alexey's scenario would work and I agree that it would be nice a for following scenario:
Existing zabbix installation, where long time ago type of information has been changed for many items (itemIDs), and these itemIDs are still in zabbix configuration.

How to "clean" currently existing installations? - yes, remove values for every history/trends table for items which do not exist already for this table type.
My suggestion in ZBX-9278 would not help for this scenario.

Comment by Oleksii Zagorskyi [ 2015 Nov 05 ]

Before working on this issue, take a look please to ZBX-10012 discussion.





[ZBXNEXT-1192] Support of trigger functions for history and trends API methods Created: 2012 Apr 20  Updated: 2015 Nov 02

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

Type: Change Request Priority: Minor
Reporter: Alexey Pustovalov Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Zabbix API should provide support of aggregate functions for history.get and trends.get (in future) API methods.
List of aggregate functions:
AVG()
COUNT()
SUM()
MIN()
MAX()

Zabbix API should return only one value when API query contains one of these functions. For example, "count of hosts" for host.get method.



 Comments   
Comment by richlv [ 2012 Apr 20 ]

seems to be very similar to ZBXNEXT-656

Comment by richlv [ 2015 Nov 02 ]

ZBXNEXT-3034 asks for groupfunc support





[ZBXNEXT-3000] Expand Value Maps in history.get Created: 2015 Oct 07  Updated: 2015 Oct 08

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 3.0.0alpha2
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: valuemapping
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

ZBXNEXT-1424 implements the possibility to read, create and adjust valuemaps via the API.

It would be logical to now have history.get output value mapped information as well.

My suggestion is the following solution:

We should be able to set a flag on the history.get call, expandValueMap feels logical to me.

{
    "jsonrpc": "2.0",
    "method": "history.get",
    "params": {
        "output": "extend",
        "history": 3,
        "itemids": "23296",
        "sortfield": "clock",
        "sortorder": "DESC",
        "limit": 1,
        "expandValueMap": 1
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}

The output would look something like this then:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "23296",
            "clock": "1351090456",
            "value": "5",
            "mappedvalue": "Some string representing this value",
            "ns": "435307141"
        }
    ],
    "id": 1
}


 Comments   
Comment by Oleksii Zagorskyi [ 2015 Oct 08 ]

3000 - nice catch





[ZBXNEXT-2897] Show triggers dependent of active trigger in message Created: 2015 Aug 02  Updated: 2015 Sep 14

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

Type: New Feature Request Priority: Minor
Reporter: Vitaly Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: newmacro, triggerdependencies, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

So if we created depends on trigger and this trigger is active in message we cant see all other messages, just from active.
Is will be very helpful on big networks where many hosts is depended of each other.
If we disable depends we just getting mess of message that come in. Is very very awful.
Thanks.

SFMBA.

To Russian developers:
????? ?? ???????? ?? ??????? ??????????? ?? ?????? ? ???? ???????????, ?? ?? ????? ?????? ????????? ?? ???? ???????? ? ?????????, ? ?????? ?? ????, ??? ????????.
??? ?? ????? ??????, ???? ?? ?????? ??????????? ??? ?? ???? ???????.
? ???? ?? ???????? ??????????? ???????? ???????? ? ?????????? ? ????? ??????????? ? ???? ???? ?????????? ?????? ??????????.
???? ?? ?????? ???? ? ????????? ?????? ?????????? ?????? ????????? ??????? ??????? ?? ?????????, ???????? ? ??????? ?????.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Sep 14 ]

It could be implemented by introducing new macro which could be used in actions.





[ZBXNEXT-2868] API method service.getsla does not retrieves retrieve for sub-services Created: 2015 Jun 28  Updated: 2015 Jul 02

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

Type: Change Request Priority: Minor
Reporter: viktorkho Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, services, sla
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File itservices.png    

 Description   

Test services presented in attached file. Their ids: Test - serviceid=1, Test2 - serviceid=2

Parameters, used in API request:

{
  'serviceids': serviceid,
  'intervals':[{'from':tPrev.strftime('%s'),'to':tNow.strftime('%s')}]
}

Result with serviceid=1:

{u'status': u'4', u'problems': [], u'sla': [{u'from': u'1435487809', u'problemTime': 30, u'to': u'1435487839', u'okTime': 0, u'downtimeTime': 0, u'sla': 0}]}

Result with serviceid=1:

{u'status': u'4', u'problems': {u'3038': {u'triggerid': u'3038'}}, u'sla': [{u'from': u'1435487898', u'problemTime': 30, u'to': u'1435487928', u'okTime': 0, u'downtimeTime': 0, u'sla': 0}]}

At first, documentation does not specify, that array 'problems' is only for services, linked to triggers directly.
Then, WUI shows triggers, caused problems via services tree.

So, current ticket (case) is marked as 'Bug related to API(A).
And I'm not sure about Priority.

Used doc: https://www.zabbix.com/documentation/2.2/manual/api/reference/service/getsla



 Comments   
Comment by viktorkho [ 2015 Jun 28 ]

If this is not a bug, but feature, please, move it to ZBXNEXT.





[ZBXNEXT-1798] adding more trigger severities Created: 2013 Jun 19  Updated: 2015 Jun 30

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

Type: New Feature Request Priority: Critical
Reporter: Tad rimk Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: triggerseverities
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Hello
I need big help.
I'm using zabbix 1.8.13 ver. And when confronted with a problem. I need more severity than those that have zabbix (not classified, Information, Warning, Average, High Disaster), perhaps there is a way to have or make another saverity?
Edit/Delete Message



 Comments   
Comment by Tad rimk [ 2013 Jun 19 ]

How this to do?----> adding more trigger severities triggerseverities

Comment by Oleksii Zagorskyi [ 2013 Jun 23 ]

ZBXNEXT-470 is related





[ZBXNEXT-1850] resolve trigger dependencies on hosts only Created: 2013 Jul 22  Updated: 2015 Jun 30

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

Type: Change Request Priority: Trivial
Reporter: Dmitry Samsonov Assignee: Unassigned
Resolution: Unresolved Votes: 7
Labels: nested, templatelinking, triggerdependencies
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File zabbix_dependencies_problem.jpg    

 Description   

Hello!
We have few levels of templates and some problems adding trigger dependencies between them:
template hostsA linked to template "pci slots" linked to template "ethernet controllers"
template hostsA linked to template "server alive"
template hostsB linked to template "server alive"
template "ethernet controllers" has trigger that should be dependent to trigger in template "server alive"

When I add such dependency I get error: Not all templates are linked to "pci slots".

Is it a bug or am I doing something wrong?



 Comments   
Comment by Oleksii Zagorskyi [ 2013 Jul 23 ]

See:
https://www.zabbix.org/wiki/Docs/specs/ZBX-4333
ZBX-4333
and try to estimate your attempt again.

After reading issue description I'm not sure I can understand correctly template linkage

Comment by Dmitry Samsonov [ 2013 Jul 23 ]

I can't see any inconsistency with documentation and specification you have provoded, but it still fails.
I will try to add image like in zabbix specs.

Comment by Dmitry Samsonov [ 2013 Jul 23 ]

Red arrow on the image is the trigger I am trying to add:

Comment by richlv [ 2013 Jul 24 ]

this is not possible as "template pci slots" would have trigger t2 that would depend on trigger t1 from "template server alive", but "template pci slots" is not linked to "template server alive", thus you would get a dependency on a non-existent trigger.

seems to work as expected

Comment by Dmitry Samsonov [ 2013 Jul 24 ]

If we remove template "pci slots" (and link "ethernet controllers" directly to "HostsA"), then I can create dependency from template "ethernet controllers" to template "server alive", but they also are not linked.
It is possible just because thay are templates and if we will try to link template "ethernet controllers" (in simplified scheme without template "pci slots") to host, then we would get error "Trigger in template ethernet controllers has dependency with trigger in template server alive".

To conclude: 1-level templates may have trigger with dependency to any other not linked template, but 2 level templates may not.

Seems to be wrong, isn't it?

Comment by richlv [ 2013 Jul 24 ]

no, that seems to be correct. in that case both "template ethernet controllers" and "template server alive" are linked to "template HostsA", and trigger dependency has the trigger to rely on.

think about it this way - if t2 on "template pci slots" ends up depending on t1... there is no t1 on "template pci slots"

Comment by Dmitry Samsonov [ 2013 Jul 24 ]

think about it this way - if t2 on "template pci slots" ends up depending on t1... there is no t1 on "template pci slots"

Why is it a problem? It's just a template, just as "ethernet controllers".
Template "ethernet controllers" also has trigger t2 depending on t1 and there is no t1 on that template.

It is normal to deny to add hosts to just one template if there are triggers with dependencies to another templates. But templates do not count triggers, so why it should be a problem to have templates with just a half of dependency?

Comment by richlv [ 2013 Jul 24 ]

"template ethernet controllers" is the originating template for t1. anything linked to it must have all dependencies, too - that would be t1 in this case.

it does not matter whether it is template or host, it's a configuration data consistency question, nothing to do with trigger evaluation etc

when we link something to a template which has a dep to another template, we resolve that dependency locally, which is not possible in this case

Comment by Dmitry Samsonov [ 2013 Jul 25 ]

I don's see any reasons to resolve that dependency locally for templates, because we already has inconsistent dependency in template "ethernet controllers" for example.
Don't you think so?

Comment by Dmitry Samsonov [ 2013 Aug 05 ]

Will this report be considered as problem?

Comment by richlv [ 2013 Aug 05 ]

theoretically, we could consider trigger dependencies only when resolving them on hosts and ignore while we are still in templates.
there might be unintended consequences, though - this should be carefully evaluated and tested (both frontend and server changes will be required).
for now it works as designed -> moving this to feature requests

Comment by Dmitry Samsonov [ 2013 Aug 05 ]

Thank you.

Comment by George Machitidze [ 2014 Mar 22 ]

This is REALLY annoying and VERY useful thing - there are many services that depend on each-other and we don't want to create separate templates for all hosts and copy everything we need just to make triggers work.

Possible solution is to:
1. allow creation of triggers, warn if linked element/target doesn't exist
2. disable trigger if linked element doesn't exist
3. warn user upon deletion of linked element and disable trigger
4. warn user upon creation of linked element which will be used by trigger
5. renaming template must not break links - i.e. use template IDs instead of names (back)

Comment by Janne Korkkula [ 2014 Nov 14 ]

I agree. The simplest case: almost all of our hosts have a basic template linked which includes the icmppingsec simple check and an appropriate trigger. We'd like to depend on that trigger for other checks. This cannot be done, neither is there any useable workaround, because:
Item "icmppingsec" already exists on "host", inherited from another template. There are many other cases, this is just a simple example.





[ZBXNEXT-2330] Support of templates and macro expander - to create external reports Created: 2014 Jun 04  Updated: 2015 Jun 25

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

Type: New Feature Request Priority: Major
Reporter: Lukas Macura Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: cli, latestdata, reports
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-247 Built in feature to export reports an... Open

 Description   

It would be great to create some macro expander functionality with support of templates.
After it, it is relatively easy to create templates to output almost any content (svg, html, txt, tex, ...)
And it is possible to rewrite "latest data" page by embeding such results.

With this functionality, any user can make its own report and templates can be shared on zabbix wiki page.
Even more, anybody can write simple script which can create any output (pdf, png, ...)
There are many templating systems for PHP, like smarty or latte. Parameter of expansion would be hostgroup, host or item to expand hosts, items or latest data in loop.
Smarty example:

<table border="0" width="300">
  <tr>
    <th colspan="2" bgcolor="#d1d1d1">
      Host group {$hostgroupname}"</th>
  </tr>
  {foreach from=$hosts item="entry"}
    <tr bgcolor="{cycle values="#dedede,#eeeeee" advance=false}">
      <td>{$entry.description}</td>        
     </tr>
  {/foreach}
</table>

For start, it is enaugh to have zabbix_expand cli. Templating can be done later.



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Jun 05 ]

Maybe suggested solution is fresh, but in general this is duplicate of ZBXNEXT-247, linked just in case.





[ZBXNEXT-2848] Add the application parameter to the itemprototype get method Created: 2015 Jun 11  Updated: 2015 Jun 12

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.5.0
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Volker Fröhlich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, applications, itemprototype
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

itemprototype.get does not offer the application parameter that you can find in item.get. I think this is technically possible and would be useful for ZBXNEXT-2845.






[ZBXNEXT-2839] Retrieve list of available inventory fields from the API Created: 2015 Jun 04  Updated: 2015 Jun 04

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.9, 2.4.5
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: inventory
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I'd like to be able to retrieve a list of supported inventory fields from the API, I have been unable to find a method or object for this. They are in the docs but I would like to query them at run time as I would like to avoid the need for hardcoding them as they might change in later versions of Zabbix.

Perhaps this can be part of the API info class?



 Comments   
Comment by Marc [ 2015 Jun 04 ]

ZBXNEXT-336 should probably be implemented first

Comment by Raymond Kuiper [ 2015 Jun 04 ]

Not necessarily, although I see the relation. I'd say it's nice to have now and mandatory if ZBXNEXT-336 will be implemented.





[ZBXNEXT-2770] Add name/description field for maintenance period individual periods Created: 2015 Apr 10  Updated: 2015 May 22

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

Type: Change Request Priority: Minor
Reporter: James Cook Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: maintenance, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File Maintenance Period Individual Periods.bmp     File Maintenance Period.bmp    

 Description   

There is a name/description field currently to describe the whole maintenance period. However it would be useful to have a name/description field available for each individual period within it.

I have included an picture example of our holiday maintenance period and the individual periods with in it. In this case it would be useful to see a description for the public holidays and which term it is for example:

26th Jan 2015 - Australia Day
2nd March 2015 - Labour Day
3rd April 2015 (17d) - Term 1 Break
4th July 2015 (16d) - Term 2 Break

So maybe a field can be introduced before the "Period type" called "Period Name".

It will make it easier to manage maintenance periods with lots of individual periods within it.



 Comments   
Comment by Mārcis Lielturks [ 2015 May 12 ]

This would also make sense for managed service environments. I have pre-defined maintenance periods for each customer/project just to have an convenient way of putting all related hosts in maintenance. However it doesn't make sense to create description "<customer> updates" because sometimes I use the same period for doing other maintenance on customer environment.

Comment by richlv [ 2015 May 22 ]

description for :





[ZBXNEXT-2781] support for network discovery using ntp Created: 2015 Apr 15  Updated: 2015 Apr 16

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

Type: Change Request Priority: Minor
Reporter: Aleksandrs Saveljevs Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: networkdiscovery, ntp, udp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

After ZBXNEXT-786 is implemented, everything will be ready to use NTP protocol for network discovery.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Apr 16 ]

Interesting, trying to google "NTP network discovery" I found
http://en.wikipedia.org/wiki/Automatic_server_discovery
https://www.eecis.udel.edu/~mills/ntp/html/manyopt.html

Are they related to network discovery as for zabbix ?

Comment by Aleksandrs Saveljevs [ 2015 Apr 16 ]

This looks interesting, but the approach I had in mind is the usual one for Zabbix: pick an IP, run net.udp.service[ntp] on it, pick another IP, run net.udp.service[ntp] on that, etc.





[ZBXNEXT-1705] Possibility to define networks and automated mapping to hosts Created: 2013 Apr 11  Updated: 2015 Jan 28

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

Type: New Feature Request Priority: Minor
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: management, network
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I wonder if it would suit into Zabbix to have the option for defining networks.
These networks could maybe defined by IP address + Netmask (optionally + Tag + Site) and may provide further fields whose values are all available via macros.
Every host interface could be automatically mapped against a network if it exists.

Beside messages, commands, etc. the networks could then be used for selection similar to host groups or wherever else useful (e.g. for network discovery).
Having the option to add them automatically via auto-registration could be interesting too.

The idea for this issue is driven by http://www.gestioip.net/
I don't want Zabbix to become a network management solution like GestióIP but I imagine that it would be beneficial to be able to define networks with some information and put them into relation to hosts.



 Comments   
Comment by Marc [ 2015 Jan 28 ]

ZBXNEXT-66 might be related.





[ZBXNEXT-1097] API doesn't support nested operations Created: 2012 Jan 30  Updated: 2014 Dec 17

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 1.9.8 (beta)
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Timo A. Hummel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: API
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

When using the API, it is not possible to do nested operations.

For example, when creating a template, it is not possible to pass a list of items to directly create with the template. Such an operation currently always requires two (or more) separate API calls.

This is a low-priority suggestion and can probably only solved as soon as an entity model exists.



 Comments   
Comment by Timo A. Hummel [ 2012 Jan 30 ]

It might be worth to note that I am using a serialize/deserialize approach on PartKeepr, which supports any level of inheritance for passed data. If interested, I can give out a few implementation details and philosophies.





[ZBXNEXT-2555] New trigger function to determine number of value in history, matching a regexp Created: 2014 Oct 31  Updated: 2014 Nov 03

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

Type: Change Request Priority: Trivial
Reporter: Filipp Sudanov (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: triggerfunctions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate

 Description   

Paricular user's case:

We have a program, that produces a log file. When this program starts, it writes START into that log, when it finishes - FINISH. We need a trigger, that would trigger, if withing 5 minutes after START there is no FINISH.
Currently we do not have any trigger function, that would help us to determine, which text is the last in the log - START or FINISH.

A new proposed function could be simular to already existing "count" function. It should return how many values ago was the last value that matches a given regex. It returns sequence number from history's end - it will be different on each trigger calculation.
This way we can compare two such functions in a trigger expression and find out, which was the last - START of FINISH.



 Comments   
Comment by richlv [ 2014 Oct 31 ]

this might be solved by ZBXNEXT-2045 - you would get unix timestamps for start & finish, and compare them in the trigger expression.
would that solve this usecase ?

Comment by Filipp Sudanov (Inactive) [ 2014 Nov 03 ]

I think ZBXNEXT-2045 won't solve this usecase reliably. The task is to determine the sequence of item values. If two values would arrive at the same second, this won't help to determine their sequence.

Comment by richlv [ 2014 Nov 03 ]

good point - maybe we should include nanoseconds somehow there





[ZBXNEXT-2549] more info about SQL statement fails Created: 2014 Oct 28  Updated: 2014 Oct 28

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.7, 2.4.1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: gescheit Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In case of problem with sql query, DBexecute() returns error message from SQL-server only in web-interface. In API can be seen only "SQL statement execution has failed" message. I think that need show sql-errors in API also.






[ZBXNEXT-2516] Provide withScreens option on template.get() and host.get() Created: 2014 Oct 15  Updated: 2014 Oct 15

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.2.6, 2.4.1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Volker Fröhlich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: consistency, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Please provide an option withScreens for consistency with withGraphs/selectGraphs and other options.



 Comments   
Comment by Volker Fröhlich [ 2014 Oct 15 ]

"with_screens" even

... and in hostgroup.get()





[ZBXNEXT-2494] Support 255 characters in hostnames Created: 2014 Oct 06  Updated: 2014 Oct 06

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

Type: Change Request Priority: Minor
Reporter: Łukasz Jernaś Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Zabbix frontend should support FQDNs with up to 255 characters as per RFC 1123.

These are needed as hostnames in cloud environments can be quite long and while a single part of the FQDN shouldn't exceed 63 8 bit octects, the total lenght of the FQDN can be longer






[ZBXNEXT-2469] Allow the use of global time periods in trigger expressions Created: 2014 Sep 19  Updated: 2014 Sep 19

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

Type: New Feature Request Priority: Minor
Reporter: Raymond Kuiper Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

As soon as global time periods are implemented (ZBXNEXT-2468) it would be logical to be able to use these in triggers as well.

This way we can take the predefined time periods into account for the triggering of problems. Adjusting the global time period will update all the related triggers easily.






[ZBXNEXT-2457] Interfaceid shouldn't be mandatory for item.create Created: 2014 Sep 11  Updated: 2014 Sep 11

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.4.0
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, interfaces, item
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently to create an item, we always need to do a host.get request first to retrieve the ID of an interface first. In some cases it would be much more convenient if the "interfaceid" parameter for item.create was optional and would just take the main interface of the correct type.






[ZBXNEXT-2165] History API compress output sequence Created: 2014 Feb 19  Updated: 2014 Sep 04

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

Type: Change Request Priority: Trivial
Reporter: Mathew Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, history, patch
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

PHP


Attachments: Text File zabbix-compress-history-patch.txt    

 Description   

The amount of data transferred by the history.get call can be quite overwhelming on network resources when transiting between remote locations and a central interface.

This patch adds the ability to get the output compressed where values are the same, e.g

itemid:1 clock:1000000: value:1
itemid:1 clock:1000001: value:1
itemid:1 clock:1000002: value:1

becomes
itemid:1 clock:1000000: value:1
itemid:1 clock:1000002: value:1

when compressValues is supplied to the history.get call.

This has drastically reduced out output sizes (from 100,000+ items per day in request) to 10-20 with the same or better resulting graphing quality.

This patch does not impact any other features if this option is not provided.

Could this be included?



 Comments   
Comment by richlv [ 2014 May 07 ]

potential problems - what to do when values are missing ? what to do when values are slightly offset from the scheduled time (item scheduled every 30 seconds, values coming in at 14, 45, 13, 44 etc)





[ZBXNEXT-1451] mass update for low level discovery rules Created: 2012 Oct 04  Updated: 2014 Jul 01

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

Type: New Feature Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 22
Labels: lld, massupdate
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

would be nice to get mass update for lld rules themselves. it could include item type, update interval, retention period, snmp community/port



 Comments   
Comment by richlv [ 2014 Jul 01 ]

item prototype mass update is ZBXNEXT-1190





[ZBXNEXT-2342] Create a nextcheck for LLD items (api and frontend) Created: 2014 Jun 11  Updated: 2014 Jun 11

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

Type: New Feature Request Priority: Trivial
Reporter: Filipe Paternot Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: api, scheduling
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Like network discovery has an "nextcheck" option, it is interesting to have the same option for LLD checks.

It would be nice to expose it on the frontend. Show if its running/sleeping might be interesting too.



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Jun 11 ]

You created this issue similarly to ZBXNEXT-2341

But here is a difference:
I'd agree that show "nextcheck" value in frontend for LLD discovery rules could be useful.
But I don't see any sense to show its "running/sleeping" state because LLD discovery rules (comparing with network discovery) usually work enough fast.

Also, actually LLD discovery rules are items.
So what to do with regular items?
Show "nextcheck" value in frontend as well?

Comment by Filipe Paternot [ 2014 Jun 11 ]

Yes you got a point there about how fast the LLD usually runs so, showing if its running/sleeping is actually pointless, in most cases, at least. Even when some might have LLD rules that discover a couple thousand itens.

I was thinking about the lld rules itself, not the items prototypes nor regular items.

Now that you raised that question, perhaps we could use that field to display few things, depending on the item type:

  • When an unsupported item will be checked again
  • The next pooling time, for a supported item
  • The next time an lld rule will be executed

It would certainly be of great help to display that on the frontend.





[ZBXNEXT-2341] Show nextcheck and status from network discovery rules Created: 2014 Jun 11  Updated: 2014 Jun 11

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

Type: Change Request Priority: Trivial
Reporter: Filipe Paternot Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: networkdiscovery
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be nice to expose on the frontend the next run time (nextcheck) for the network discovery. Show an status if its running/sleeping is good too.

The nextcheck is already avaiable on the API. The current status value does not exist yet.

An idea for the frontend would be to show an icon pretty much the same way the status ok/error does, with an label with the next run. The icon would be green for running, blue for sleeping..



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Jun 11 ]

See also ZBXNEXT-2077 - it asks to show a time which discovery took.





[ZBXNEXT-1582] filter triggers by acknowledging user Created: 2013 Jan 18  Updated: 2014 Apr 11

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

Type: New Feature Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: acknowledges
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

in monitoring -> triggers we can filter by acknowledgement status.
in some environments it is useful to filter by user who acknowledged the problems - for example, to see what a specific user is supposed to be working on.

this should be a separate option from "Acknowledge status", as it is desired to see both unacknowledged triggers and triggers acknowledged by a specific user.

there should be a way to choose "current user" and also another user. choosing another user should be a search-as-you-type inputfield.

open questions :
should it be possible to choose multiple users, or user group ?
when current user is not a superadmin, which users should it be able to select ? note that all users can see all acknowledgements, so it would be weird if they would be unable to filter by those users






[ZBXNEXT-1226] Graph percentile from API Created: 2012 May 19  Updated: 2014 Mar 20

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

Type: Change Request Priority: Major
Reporter: Attilla de Groot Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 1
Labels: flexibility, percentile
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-756 Trigger function percentile Closed

 Description   

Hi,

Service providers often base their billing on the 95th percentile of bandwidth usage on a link. In a graph the percentile can be displayed easily, but I'd like to get this value over a given period from the API as well. This would allow me to base billing on these value, instead of getting the value from the mysql database directly.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 May 20 ]

See also ZBXNEXT-756.
Issues linked.





[ZBXNEXT-1485] Redesigning the get methods output parameter Created: 2012 Oct 25  Updated: 2014 Jan 21

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A), Documentation (D), Frontend (F)
Affects Version/s: 2.1.0
Fix Version/s: 2.2.0

Type: Change Request Priority: Major
Reporter: Pavels Jelisejevs (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: api, documentation, frontend
Σ 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
is duplicated by ZBX-7682 uselessness of countOutput Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-1491 Property array support for API get me... Change Request (Sub-task) Closed  
ZBXNEXT-1492 Drop support of output shorten for AP... Change Request (Sub-task) Closed  
ZBXNEXT-1505 Property array support for all API ge... Change Request (Sub-task) Closed  
ZBXNEXT-2017 Drop support of output refer for API ... Change Request (Sub-task) Closed  

 Description   

The output parameter for get methods should be redesigned to be simpler and more intuitive to use.

More details in the specification: http://zabbix.org/wiki/Docs/specs/ZBXNEXT-1485



 Comments   
Comment by Pavels Jelisejevs (Inactive) [ 2012 Oct 31 ]

To make the transition smoother and less painful, I've separated three subtasks that need to be done first: ZBXNEXT-1492, ZBXNEXT-1505 and ZBXNEXT-1491.

Comment by richlv [ 2013 Mar 14 ]

subtasks closed, this one can be closed, too

jelisejev Wait, there's still stuff to be done in this task too.





[ZBXNEXT-2084] Ability to lock configuration settings by Zabbix Super Admin Created: 2013 Dec 22  Updated: 2013 Dec 22

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

Type: New Feature Request Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: permissions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Sometimes it's desirable to disallow users of type 'Zabbix Admin' to change certain settings or objects even if they have write permissions via corresponding host group.

In my case some settings/assignments should be kept to assure integrity.

While ZBXNEXT-77 is about permission on user level what probably needs a complete re-design/-write of user management this issue is meant to revoke permission globally on object/element level.

E.g.:
Locking a group wouldn't allow a Zabbix Admin to add/remove hosts or to change the group name without affecting access right to hosts of group itself
Locking a template wouldn't allow to link/unlink a this particular template from a host with r/w permission

I could also think of locking settings on group level:
checking 'Lock status' won't allow enabling/disabling it for host members
checking 'Lock interfaces won't allow adding/removing/updating interfaces
same for templates, macros, proxy, ...






[ZBXNEXT-1984] Configurable limitation for 'value like' searches in history Created: 2013 Oct 25  Updated: 2013 Oct 26

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

Type: Change Request Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: reliability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Would be nice if a maximum period for selection in history can be configured.
This setting may either enforce a maximum period or disable and ignore 'value like' filter.

Without such limitation a (relational) database may be overloaded easily.



 Comments   
Comment by richlv [ 2013 Oct 26 ]

wondering whether max graph period setting affects this (in defines.inc.php) - although here we don't have the benefit of selecting from trends

Comment by Marc [ 2013 Oct 26 ]

ZBX_MAX_PERIOD takes effect but a reasonable value for text based items is not necessarily sufficient for number based items.

Anyhow, the main problem is not the period and thus amount of (text based) data in general.
It's about the fact that "LIKE '%foo%'" queries are considerably more expensive and should be able to be restricted separately in some way.





[ZBXNEXT-1881] Require to improve error displaying in API, because now all errors, undefined index's and others, is intercepted by zbx_err_handler() and don't shows without Frontend. Created: 2013 Aug 28  Updated: 2013 Sep 27

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

Type: New Feature Request Priority: Major
Reporter: Eduards Samersovs (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[ZBXNEXT-1901] Add "status" to sort_field for maintenance.get() Created: 2013 Sep 10  Updated: 2013 Sep 16

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

Type: Change Request Priority: Trivial
Reporter: Volker Fröhlich Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, maintenance, sorting
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Please move the generation of the maintenance status information from maintenance.php to api/classes/CMaintenance.php.

The result will be the same, but more of the business code is in the API class then, it adds a little value to the API results and make_sort_header() will work as well.



 Comments   
Comment by Volker Fröhlich [ 2013 Sep 16 ]

Loosely connected to ZBXNEXT-145





[ZBXNEXT-1865] show protocol requests in the debug Created: 2013 Aug 19  Updated: 2013 Aug 19

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: debugging
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

ZBXNEXT-1689 implemented new protocol for obtaining queue details from the server. unfortunately, this communication could not be seen in the frontend debug output.

it would be great to show all such communication when frontend debug is invoked - another case would be the global scripts






[ZBXNEXT-1685] Support of NuoDB as database backend Created: 2013 Mar 23  Updated: 2013 Mar 23

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

Type: New Feature Request Priority: Trivial
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: database, newtechnology, nuodb
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I've seen some presentations and case studies about respectively with NuoDB.
There seem to be a potential to raise to a de-facto standard for relational cloud databases.
I have seen nothing comparable to date.

This ticket is meant to attract attention that there might be another relational SQL based database out there that promises:

  • 100% SQL
  • 100% ACID
  • Elastic Scalability
  • Built-in Redundancy
  • Multi-Tenancy
  • Auto Replication
  • Easy Administration
  • Built-in Security
  • Heterogeneous Deployment

Find lots more information on the NuoDB website:
http://www.nuodb.com/

Feel free to close this ticket if that kind of technology is out of question in connection with Zabbix.



 Comments   
Comment by richlv [ 2013 Mar 23 ]

for the record, it's a proprietary solution





[ZBXNEXT-1525] separate Item and Discovery selection in the API. Created: 2012 Nov 22  Updated: 2013 Jan 29

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.1.0
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Eduards Samersovs (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

For example in CHostInterface->get() option "selectItems" return all types of items include discoveries. It must be another option "selectDiscovery" to get only discovery items.
Situation where called API::Item()->get() with option 'filter' => array('flags' => null) must be separated - Items get through API::Item(), discovery through API::DiscoveryRule()






[ZBXNEXT-1038] Version for API, API methods and API classes Created: 2011 Nov 22  Updated: 2013 Jan 14

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 1.9.7 (beta)
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Alexey Fukalov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-4906 API Version number Closed

 Description   

Specification: http://zabbix.org/wiki/Docs/specs/ZBXNEXT-1038



 Comments   
Comment by Fabrice Gabolde [ 2013 Jan 14 ]

I'd like to weigh in on this one. I'm commenting in the tracker rather than the wiki page because I'm trying to impart a sense of urgency rather than give my technical opinion.

I wrote a simple Perl module (for $work, but it got open-sourced/freed) to abstract away some details of the Zabbix API and, regarding the API version, two things came up most often:

  • Users would try to use the API (either through my module or with raw JSON queries) and would meet different errors (or no errors, or no errors but it wouldn't work) depending on their version of Zabbix. Having a different API version number would have accurately conveyed the information that "this bug exists in version $FOO and has been fixed in version $BAR, you can upgrade to any version of Zabbix $BAZ or more". As it is I usually answered "I really don't know, go ask on their IRC channel/forum".
  • As a developer: my module targets the 1.8.x series and I test against 1.8.5 and 1.8.11 (since that's what we use at $work). Both versions have different bugs (e.g. my module can create triggers in 1.8.11, it can't in 1.8.5). The unit tests need to know what tests can be run depending on the API version: creating triggers is not a feature of Zabbix 1.8.11, creating triggers via the API is. But both Zabbixen report their API version as 1.3.

My point is that this feature needs to be introduced as soon as possible, or it just increases the amount of similarly-numbered-yet-slightly-different API versions. Either a global x.y.z version or API class/method versions work for me, honestly.

The documentation for the 1.8.x series could use an update as well. Right now it's showing user.authenticate being introduced for "1.8", and deprecated. But user.login has also been introduced for "1.8"! I can't write a module that knows to call authenticate for such and such version and login for later versions because the information is not available. Alternatively, the Zabbix version could be made available through the API.

I realize you'd prefer to support only the most recent 2.x Zabbix (backporting fixes is a pain), but right now enterprise installations will be largely 1.8.x since that's what on Debian stable and testing, Ubuntu LTS and latest Fedora (so probably RHEL and CentOS too).





[ZBXNEXT-1531] Support "is_writable" API object attribute - calculates if row is accessible for write or not. Created: 2012 Nov 30  Updated: 2012 Dec 24

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.1.0
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Eduards Samersovs (Inactive) Assignee: Eduards Samersovs (Inactive)
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Implementation example:

CZBXAPI.php:


/**

  • Add writable status field to result.
    *
  • @param array $result
  • @param array $options
    */
    protected function addWritableInfo($result, $options) {
    if (empty($options['is_writable'])) { return $result; }

$pk = $this->pk($this->tableName);

$objs = $this->get(array(
$pk.'s' => zbx_objectValues($result, $pk),
'editable' => true
));
$objs = zbx_toHash($objs, $pk);

foreach ($result as $id => $value)

{ $result[$id]['is_writable'] = isset($objs[$id]); }

return $result;
}


Example usage:
CTrigger->get()


$result = $this->addWritableInfo($result, $options);







[ZBXNEXT-1508] It should be simple way to fill Screen with Screenitems without unnecessary parameters using JSON API Created: 2012 Nov 11  Updated: 2012 Dec 24

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: 2.0.3
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: ojab Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: api, screens
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Right now request like:

{
"jsonrpc": "2.0",
"params": {
"screenid": "1",
"screenitems": [

{ "resourceid": "6794" }

,

{ "resourceid": "6801" }

,
"name": "My screen"
},
"method": "screen.update",
"auth": "aa90f5246c6b47e43806ae698ddafa80",
"id": 7
}

will make a screen with only item "6794" on (0,0), but it should make screen with all mentioned resourceids in sequence.

In many cases all given items is needed on the screen, without any particular order/etc.



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Nov 12 ]

Partially related issue ZBX-5562.

But in the example above you should at least add REQUIRED fields like:
"resourcetype": "0",
"resourceid": "870",

What is the sense to create screenitems without specifying type&ID ?

I'd agree that it could be useful to have parameters:
"x": "0",
"y": "0",
as optional if creating new screenitems.
Then there should be simple logic to automatically calculate them.





[ZBXNEXT-111] mandatory parameters for api differ from gui Created: 2009 Oct 20  Updated: 2012 Oct 21

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: validation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

trunk rev 8107



 Description   

api mandatory values differ from gui - for example, gui does not allow creating user w/o surname and password, api does. supposedly these should match



 Comments   
Comment by Artem Suharev (Inactive) [ 2009 Oct 29 ]

This is a global problem of checking passed data, and is part of future API development what is not covered by a single issue... =) for now it's stays on clients side responsibility.

Comment by richlv [ 2009 Nov 02 ]

valid as a feature request (so that it doesn't get lost)





[ZBXNEXT-112] user.add should return better error messages Created: 2009 Oct 20  Updated: 2012 Oct 21

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: nelsonab Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: usability, validation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

From the CLI tool

add user passwd=bla
*Debug(7)* parse_input: add user passwd=bla
["passwd=bla"]
{:command=>:adduser, :parameters=>{"passwd"=>"bla"}}
*Debug(10)* json_obj: json_obj: authe29c821d61cc1fa597359c4df0df9ce3id2methoduser.addparamspasswdblajsonrpc2.0
*Debug(8)* do_request: Sending: {"auth":"e29c821d61cc1fa597359c4df0df9ce3","id":2,"method":"user.add","params":[

{"passwd":"bla"}

],"jsonrpc":"2.0"}
*Debug(8)* do_request: Response Code: 200
*Debug(8)* do_request: Response Body: {"jsonrpc":"2.0","error":

{"code":-32500,"message":"Application error.","data":"Incorrect parameters pasted to method [ user.add ]"}

,"id":2}
An error was received from the Zabbix server
Error code: -32500
Error message: Application error.
Error data: Incorrect parameters pasted to method [ user.add ]

The error message returned is overly simplistic. In this case something to the effect of what fields are required would be useful.

Also as an aside, pasted? Perhaps "Incorrect parameter for method [user.add", just a thought.



 Comments   
Comment by Artem Suharev (Inactive) [ 2009 Oct 29 ]

Error messages will be improved, no doubts, but in time. First things first. =) There is so much work to do!

Comment by Artem Suharev (Inactive) [ 2009 Oct 29 ]

This issue is part of future API development, so I close it.

Comment by richlv [ 2009 Nov 02 ]

valid as a feature request (so that it doesn't get lost)





[ZBXNEXT-1194] Enhanced meta info call Created: 2012 Apr 23  Updated: 2012 Oct 20

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

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


 Description   

Right now the apiinfo.version call returns the version level of the API, this is good. However it would be nice if there were another call which did a dump of more detailed information such as the frontend version number. I wouldn't expect this call to accept any options, and as the rev level (api version) of the call grows it just returns more info as deemed appropriate. For the initial version I would think returning the following would be useful: (* denotes, if available/trivial to retrieve)
Zabbix Frontend version
PHP Version
Apache Version*
Host OS Info* (linux, distro, distro version)

The main reason for this is to allow third party developers to more easily interface with Zabbix. There are times when something isn't available via the API and a call must be made directly to the web frontend, it would be nice to know what version of the frontend is in use, so as to not make an errant call.

A call might look like the following:

call:

{ "jsonrpc":"2.0", "method":"apiinfo.details", "params":[], "auth":AUTHHASH, "id":2 }

result:
{
"jsonrpc":"2.0",
"result":

{ "frontend":"2.0.0rc3", }

"id":2
}



 Comments   
Comment by richlv [ 2012 Apr 23 ]

ZBXNEXT-315 asks for similar functionality on the frontend level, these both should probably be resolved together





[ZBXNEXT-1214] "any snmp version" for discovery action condition Created: 2012 May 02  Updated: 2012 Oct 15

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

Type: New Feature Request Priority: Trivial
Reporter: richlv Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 0
Labels: actions, networkdiscovery
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

it might be useful to provide "any snmp version" discovery action condition






[ZBXNEXT-1252] Integration of Zabbix API - PHP Class into zabbix release Created: 2012 Jun 05  Updated: 2012 Oct 14

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

Type: New Feature Request Priority: Trivial
Reporter: rrr Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 1
Labels: api, class, php
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The development of the existing third party Zabbix 1.8 API PHP Class v1.0 (found at http://andrewfarley.com/php/zabbix-1-8-api-php-class-v1-0) doesn't seem to been continued. It would be great if a api php-class would be integrated into zabbix releases.



 Comments   
Comment by Domi Barton [ 2012 Aug 21 ]

I've digged into the source code of the Zabbix 2.0 PHP API sources / PHP classes this weekend and I might have some good news.

After hours of work I've built a new PHP library AND a builder for the library.
The builder is compiling the whole library directly from the Zabbix PHP API sources / classes, which means it should always match the standards of the "real API".

The builder is currently writing a PHP class, but in fact it could write a class for any kind of script / programming language.

Check it out yourself: http://zabbixapi.confirm.ch/

@official Zabbix guys: Is it possible to link to the API in the documentation / appendix?

Comment by richlv [ 2012 Aug 21 ]

hmm, would it be possible to document it in the wiki at zabbix.org ?





[ZBXNEXT-727] API method that returns available API methods Created: 2011 Apr 05  Updated: 2012 Oct 14

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

Type: New Feature Request Priority: Minor
Reporter: Alexey Fukalov Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Make API method that returns all available API methods, maybe with required parameters.
Can be used by external tools, for autocomplete etc.






[ZBXNEXT-1137] ability to see directly monitored statistics Created: 2012 Mar 01  Updated: 2012 Oct 13

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

Type: New Feature Request Priority: Major
Reporter: richlv Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

in "status of zabbix" report we can see the total amount of hosts, items and nvps.
in proxy details page we can see per proxy amount of hosts, items and nvps.

if there are proxies used, there is no way to see the amount of hosts, items & nvps, assigned directly to the master host.

preferably, there would be api calls for all of these statistics






[ZBXNEXT-1384] API: get hostsgroups that belongs to a usergroup Created: 2012 Aug 27  Updated: 2012 Oct 13

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

Type: New Feature Request Priority: Major
Reporter: Stanislav Kelberg Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 3
Labels: hostgroup, permissions, usergroups
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Need to have ability to retrieve the hostgroups that belong to a certain usergroup via API.

I couldn't find it in documentation. According to this thread http://www.zabbix.com/forum/showthread.php?t=21168, such functionality is not implemented yet. Since I haven't found a feature request raised for it, I've raised one on my own.



 Comments   
Comment by Fco. Javier Rial [ 2012 Aug 29 ]

Thanks for creating this feature request. I am the one who started the thread
http://www.zabbix.com/forum/showthread.php?t=21168

In the thread I implemented a patch to get this feature working.
Check the code in the thread.





[ZBXNEXT-1412] No way to find trigger by expression. Created: 2012 Mar 17  Updated: 2012 Sep 07

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: API (A)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: gescheit Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: search, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I found than search trigger by expression very difficult task. By trigger.get() i can search only by number presentation(

{10}

>10). trigger.exists can search by name(localhost:procload.last(0)>10), but cant get triggerid, only true/false. I found undocumented function trigger.getObjects() (legacy?) which use explode_exp() and can search by name.
Maybe add explode_exp() in trigger.get ?



 Comments   
Comment by Alexei Vladishev [ 2012 Sep 07 ]

I believe it should be in feature requests not here.

Comment by richlv [ 2012 Sep 07 ]

let's move it then





Generated at Thu Apr 25 19:11:54 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.