[ZBXNEXT-4293] Set trigger for the end date field of the HW warranty in the inventory Created: 2017 Dec 22  Updated: 2018 May 27

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

Type: Change Request Priority: Critical
Reporter: Carlos Eduardo do Nascimento Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: frontend, triggers, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Capturar.PNG     PNG File HW expiry item.PNG     PNG File HW expiry trigger.PNG    

 Description   

Set trigger for the end date field of the HW warranty in the inventory.
This will allow as the end of an equipment warranty is approached, an alert can be generated about the problem.



 Comments   
Comment by Ingus Vilnis [ 2018 Jan 02 ]

This can be done already with the existing functionality.
You need a trapper item and a trigger. No manual entries in the HW inventory field though.

  1. Create a trapper item.
  2. Make sure you send the item value as UNIX timestamp and display the unit as unixtime
  3. Create a trigger for this item which takes the unixtime value of the trapper item and compare it to the current time. Then alert if the change is less than your desired time period in seconds. As example 14 days.
    {Template ZBX Test:hw.warranty.last()} - {Template ZBX Test:hw.warranty.now()} < 1209600
    

Comment by Valdis Murzins [ 2018 Feb 19 ]

Closing, as solution to the problem is proposed.

If the problem is still present, please, reopen the issue.

Comment by Carlos Eduardo do Nascimento [ 2018 May 27 ]

Ok, porém de onde você está coletando o vencimento da garantia do Hardware?

Não seria mais fácil, coletar esta informação do inventário?

Em vez de popular o inventário automáticamente, esta informação é populada manualmente, e usa esta informação para gerar alertas no próprio zabbix.

 
Okay, but where are you collecting the warranty expiration from Hardware?

Is not it easier to collect this inventory information?

Instead of populating the inventory automatically, this information is populated manually, and uses this information to generate alerts in zabbix itself.





[ZBXNEXT-2008] Triggers with user macro not correctly transmitted to script Created: 2013 Apr 24  Updated: 2016 Mar 22

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

Type: Change Request Priority: Critical
Reporter: Andrei Gushchin (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: actions, trigger, usermacros
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 2.0.6, Mysql server


Issue Links:
Duplicate

 Description   

I have follow trigger with User Macro in name:

  • name {$TEST1}
  • User Macro equal {$TEST1} -> gantest
    It is action for this trigger in default message it has - Trigger name: {TRIGGER.NAME.ORIG}
    Action run custom script and as parameter send also macros - {TRIGGER.NAME.ORIG}

    Actually:
    UserParmeter should be transmitted how it is to the script, but it isn't.

All logs see in comments.



 Comments   
Comment by Andrei Gushchin (Inactive) [ 2013 Apr 24 ]

On Server log:

31628:20130424:181051.289 In substitute_simple_macros() data:'/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: {TRIGGER.NAME.ORIG}"'
 31628:20130424:181051.289 End substitute_simple_macros() data:'/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: name {$TEST1}"'
 31628:20130424:181051.289 In zbx_execute_script()
 31628:20130424:181051.289 In zbx_execute_script_on_agent()
 31628:20130424:181051.289 In substitute_simple_macros() data:'10050'
 31628:20130424:181051.289 In get_value_agent() host:'Zabbix server' addr:'127.0.0.1' key:'system.run["/usr/local/share/zabbix/externalscripts/test1.py \"Trigger name: name {$TEST1}\"","nowait"]'
 31628:20130424:181051.289 Sending [system.run["/usr/local/share/zabbix/externalscripts/test1.py \"Trigger name: name {$TEST1}\"","nowait"]
]
 31628:20130424:181051.291 get value from agent result: '1'
 31628:20130424:181051.291 End of zbx_execute_script_on_agent():SUCCEED
 31628:20130424:181051.291 End of zbx_execute_script():SUCCEED
 31628:20130424:181051.291 In add_command_alert()
 31628:20130424:181051.291 In DCget_nextid() table:'alerts' num:1
 31628:20130424:181051.291 End of DCget_nextid() table:'alerts' [29:29]
 31628:20130424:181051.291 query [txnlev:1] [insert into alerts (alertid,actionid,eventid,clock,message,status,error,alerttype,esc_step) values (29,5,14462,1366805451,'Zabbix server:/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: name {$TEST1}"',1,'',1,1)]

If i run script throw zabbix server

12631:20130424:221255.657 In substitute_simple_macros() data:'/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: {TRIGGER.NAME.ORIG}"'
 12631:20130424:221255.657 End substitute_simple_macros() data:'/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: name {$TEST1}"'
 12631:20130424:221255.657 In zbx_execute_script()
 12631:20130424:221255.657 In zbx_popen() command:'/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: name {$TEST1}"'
 12631:20130424:221255.658 End of zbx_popen():6
 12631:20130424:221255.658 In zbx_waitpid()
 13741:20130424:221255.658 zbx_popen(): executing script
 12631:20130424:221255.668 zbx_waitpid() exited, status:0

If I run script throw zabbix agent
Agent log:

 10379:20130424:181051.289 Processing request.
 10379:20130424:181051.289 Requested [system.run["/usr/local/share/zabbix/externalscripts/test1.py \"Trigger name: name {$TEST1}\"","nowait"]]
 10379:20130424:181051.289 Executing command '/usr/local/share/zabbix/externalscripts/test1.py "Trigger name: name {$TEST1}"'
 10379:20130424:181051.290 Sending back [1]

Actually args in script output(simple script write itself args to file):

['/usr/local/share/zabbix/externalscripts/test1.py', 'Trigger name: name {}'

As you can see macros was lost when zabbix server(agent) execute script.

Comment by Andrei Gushchin (Inactive) [ 2013 Apr 24 ]

This problem is related from ZBXNEXT-1643

Comment by richlv [ 2013 Apr 24 ]

what's the deal with usermacros {$TEST1} vs {$TEST} ?

Comment by Andrei Gushchin (Inactive) [ 2013 Apr 24 ]

Sorry it was typo. Actually {$TEST1}

Comment by Alexander Vladishev [ 2013 Apr 25 ]

Andrei,

User Macro equal {$TEST1} -> gantest

This information is related to this problem? I didn't understand it.

Comment by Andrei Gushchin (Inactive) [ 2013 Apr 25 ]

Alexander,

Yes it is value of Macros $TEST1.

Additional information

I change name in trigger to {$$TEST1}
and in script output show this

['/usr/local/share/zabbix/externalscripts/test1.py', 'Trigger name: name {26139TEST1}']
As I inderstand it is number of pid.
Comment by Alexander Vladishev [ 2013 Apr 25 ]

But, the user macro should remain as is here. I.e. all macros from trigger name should be sent to script without any changes.

Comment by Andrei Gushchin (Inactive) [ 2013 Apr 25 ]

I found where was problem.
It need escaping variables with single quote ('), it is not connecting to zabbix.
Finally I use for run script:

/usr/bin/python /usr/local/share/zabbix/externalscripts/test1.py 'Trigger name: {TRIGGER.NAME.ORIG}'

And it is work good

['/usr/local/share/zabbix/externalscripts/test1.py', 'Trigger name: name {$TEST1}']

I'll closing this issue, It isn't bug.

Thanks.

Comment by Andrei Gushchin (Inactive) [ 2013 Apr 25 ]

If expression uses in action throw the script, there is a some problem.

action message:
Trigger name: ''{TRIGGER.NAME.ORIG}''

in server log when send message:
9664:20130425:172034.832 In zbx_popen() command:'/usr/local/share/zabbix/alertscripts/test.sh "123" "PROBLEM: name gantest" "Trigger name: name {$TEST1}"'
shell get it how string with variables, {$TEST1} disappeared 

in output 
Trigger name: ''name {}''

I found it in code and do some changes, and It will work:

alerter.c: 103:
-- zbx_snprintf_alloc(&cmd, &cmd_alloc, &cmd_offset, " \"%s\" \"%s\" \"%s\"",
					send_to, subject, message);
++ zbx_snprintf_alloc(&cmd, &cmd_alloc, &cmd_offset, " \'%s\' \'%s\' \'%s\'",
					send_to, subject, message);

after in server log:
27816:20130425:183849.634 In zbx_popen() command:'/usr/local/share/zabbix/alertscripts/test.sh '123' 'PROBLEM: name gantest' 'Trigger name: ''name {$TEST1}''''

and output
Trigger name: name {$TEST1}

I think need more deep testing about this patch.

Comment by Andrei Gushchin (Inactive) [ 2013 Apr 26 ]

I have tested shells but it was without result. (zsh,tcsh,ksh)
All cases shell think it string with variables.

Comment by richlv [ 2016 Mar 22 ]

what's the current state, is there anything to fix or improve in zabbix ?





[ZBXNEXT-2573] Zabbix doesn't reset triggers if time was briefly in the future Created: 2013 Feb 22  Updated: 2016 Jun 29

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

Type: Change Request Priority: Critical
Reporter: Timo A. Hummel Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: time
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian Zabbix



 Description   

Our system was briefly in the future due to a clock problem. Now I see some triggers with "host unreachable" hanging, due in Aug 2013 and I can't remove them. I already did the following things:

update triggers set lastchange = unix_timestamp() where lastchange > unix_timestamp();
update items set lastclock = unix_timestamp() where lastclock > unix_timestamp();

I'm a bit lost because this currently renders zabbix unusable.



 Comments   
Comment by Timo A. Hummel [ 2013 Feb 22 ]

I have finally found the issue: It seems that they're disabled until that specific date in august and I cannot change that from the GUI - in fact, I don't even get any info until when the host is disabled! Please include that in the GUI somewhere. The disable_until value should at least be cleared when activating a host.

select host, from_unixtime(disable_until) from hosts;

+----------------------------------------+------------------------------+
| host                                   | from_unixtime(disable_until) |
+----------------------------------------+------------------------------+
| db.rzl                                 | 2013-08-04 07:11:28          |

Comment by Alexander Vladishev [ 2014 Feb 12 ]

Yes, should be cleared all hosts.disable_until*, drules.nextcheck, httptest.nextcheck fields in this case. Zabbix server should be restarted.

I'm closing the issue.

Comment by richlv [ 2014 Feb 12 ]

(1) i'd hate to lose this bit of info, so it's added at https://www.zabbix.com/documentation/2.2/manual/appendix/faq - please, review

sasha I added "proxy" into an answer.

<richlv> thanks, CLOSED

Comment by richlv [ 2016 Jun 29 ]

ZBX-10906 is very similar

Comment by richlv [ 2016 Jun 29 ]

while this issue could be closed, maybe it's worth adding some sanity checks ?
i agree that clock should be correct, but the problem is that having incorrect clock just once penalises the user heavily (and without any feedback on why shit doesn't work).

for example, maybe it's possible to reset "disables" is they are more than some time in the future ?

if not, feel free to close this issue





[ZBXNEXT-2726] error for snmp LLD rule: "Invalid SNMP OID: cannot parse expression." Created: 2015 Feb 24  Updated: 2017 May 31

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D), Frontend (F)
Affects Version/s: 2.5.0
Fix Version/s: None

Type: Change Request Priority: Critical
Reporter: Victor Bashkirov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: lld
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 6.5


Attachments: JPEG File Screen1.jpg     JPEG File Screen2.jpg     JPEG File Screen3.jpg    

 Description   

Problems with CONFIGURATION OF DISCOVERY RULES.Errors "Invalid SNMP OID: cannot parse expression." In version 2.4 all items normally detected.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Feb 25 ]

According to https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300#multiple_oid_support_in_snmp_discovery
there is new syntax for SNMP OID in discovery rule.

But I could not find in documentation (especially on upgrade 3.0 notes) any information that old syntax (just OID) is not supported.
It even "sounds" more like new syntax is supported additionally to existing one:

SNMP discovery item OID value now accepts a discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …] format (see low level discovery for details). The OID values of existing SNMP discovery rules will be converted to the new format (discovery[{#SNMPVALUE},<old oid value>]) during database upgrade.

https://www.zabbix.com/documentation/3.0/manual/installation/upgrade_notes_300

Spec says:

Existing SNMP discovery rules will be converted to take advantage of the new syntax, old syntax will no longer will be supported.

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

I believe we have to:

Comment by Oleksii Zagorskyi [ 2015 Feb 25 ]

(1) also, as we started to use special syntax for OID - why we didn't perform OID syntax check similarly to item key ?

Comment by Victor Bashkirov [ 2015 Feb 26 ]

Thank you Oleksiy. All made in the instructions. Began to work. Good modification. Previously, there was no access to the documentation 3.0.
Спасибо.

Comment by Victor Bashkirov [ 2015 Feb 27 ]

The OIDs to discover are defined in SNMP OID field in the following format: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,].

Comment by richlv [ 2015 Feb 27 ]

sure, but as zalex noted, there are some potential improvements in the documentation and the frontend





[ZBXNEXT-4545] Limit item processing errors in log Created: 2018 May 10  Updated: 2018 May 11

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

Type: New Feature Request Priority: Critical
Reporter: Duncan Mountford Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBXNEXT-1443 Ability to transform item values befo... Closed

 Description   

We have a case whereby a template used for SMART monitoring covers both HDD and SSD hosts. The items in the template are of type dependant. In some cases, there are items that can't be evaluated, as the value cannot be found (for example Percentage Lifetime Used is only available on SSD's not HDD's.

Each time the item is processed, an error is logged in the Zabbix Server log file, which dumps out the entire output, as follows:-

12689:20180510:114743.525 error reason for "host1-example:uHDD["/dev/bus/0 -d sat+megaraid,0",202]" changed: Item preprocessing step #1 failed: cannot perform regular expression match on value "smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.16.0-5-amd64] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 182 180 021 Pre-fail Always - 7875
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 15
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 055 055 000 Old_age Always - 33251
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 15
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 14
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 209
194 Temperature_Celsius 0x0022 115 108 000 Old_age Always - 37
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age Offline - 0" of type "string": pattern does not match

We are monitoring thousands of hosts with Zabbix, and are seeing the log files hit anything around 5G. Log rotate does take care of this eventually.

Ideas:-

 * Limit the output of a failed item preprocessing to X characters

 * Have the ability to "mute" item errors, either per item or a global option.

 

Thanks as always!

 



 Comments   
Comment by Glebs Ivanovskis (Inactive) [ 2018 May 10 ]

Another problem with such message is that value comes before the error and if the value is big enough error gets truncated in the DB and can't be seen in the frontend. Error is typically short and way more important for troubleshooting than the value.

Comment by Alexey Pustovalov [ 2018 May 10 ]

It is better to avoid such error messages from your scripts. Zabbix operates with raw values, you must care about script output.

Comment by Glebs Ivanovskis (Inactive) [ 2018 May 10 ]

Dear dotneft, you didn't get the point. Message is:

Item preprocessing step #1 failed: cannot perform regular expression match on value "X" of type "string": pattern does not match

and is produced by Zabbix server. Reporter suggests to limit the printed length of X (which is a raw value before preprocessing).

Comment by Alexey Pustovalov [ 2018 May 10 ]

Sorry, I see, in this case I suppose it is good idea to remove such messages at all. It is really not warning message

Comment by Glebs Ivanovskis (Inactive) [ 2018 May 10 ]

Good idea from dotneft: don't include the raw value in the message at all because it can change quite frequently and will cause lots of unnecessary

error reason for "host:item" changed: ...

in the log file and lots of unnecessary updates of items.error in the database.

Comment by Duncan Mountford [ 2018 May 11 ]

Limiting the value of X would be brilliant, but as Alexey says I think the error is somewhat irrelevant. The error is saying that the regular expression didn't match anything in the string, which....is fine!





[ZBXNEXT-1386] Required form fields pre validation using html5 Created: 2010 Jul 14  Updated: 2012 Oct 13

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

Type: Change Request Priority: Critical
Reporter: Alexey Fukalov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: usability, validation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

doesn't seem to be safe enough for 1.8.3 as well, moving to 1.8.4



 Comments   
Comment by Alexey Fukalov [ 2010 Jul 19 ]

ZBX-2692

Comment by richlv [ 2010 Aug 10 ]

this issue would benefit from a change description

Comment by richlv [ 2010 Aug 26 ]

ping ? what actually was changed, how could it impact user experience, what possible problems could this introduce ?

Comment by richlv [ 2010 Aug 30 ]

dev branch rev 14145.

validation missing for :

items;
triggers;
graphs;
applications;
regular expressions (both name & test string);
maybe possible for hostgroup selector in host/template properties ? (would have to take into account 'new group';
all import pages - file field (including image uploads);
maintenance - maybe host/group maintenance ?
it services;
images;
ldap auth;
installation wizard

what about fields where something has to be selected (hostgroup, user etc) ?





[ZBXNEXT-1928] Add database consistency script or zabbix distribution Created: 2013 Sep 23  Updated: 2020 Jun 01

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Installation (I)
Affects Version/s: 1.8.17
Fix Version/s: None

Type: New Feature Request Priority: Critical
Reporter: Marc Schoechlin Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 2
Labels: dbintegrity, installation
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
duplicates ZBXNEXT-2539 DB structure should be checked on ser... Open

 Description   

Before migration to 2.0.8 i discovered that there were a number of broken triggger expressions.

I used the script from https://www.zabbix.com/wiki/scripts/db_consistency.sh.

Probably it would be a good idea to add this script to the zabbix distribution and to maintain it with the releases.



 Comments   
Comment by richlv [ 2013 Sep 23 ]

database inconsistencies should be much more rare with 2.0 - it introduced foreign keys and other checks. some are still possible, though (like application-item linkage in nested configuration etc)

Comment by Marc Schoechlin [ 2013 Sep 24 ]

Maybe the referenced script might be a reference for checks.

I fully agree, preventing problems is better than discovering problems





[ZBXNEXT-9004] Calculating the trigger value when throttling Created: 2024 Feb 09  Updated: 2024 Feb 21

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Server (S)
Affects Version/s: 6.4.10
Fix Version/s: 7.0 (plan)

Type: New Feature Request Priority: Major
Reporter: Roman Assignee: Andris Zeila
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-16162 Draw Graph line complete when Discard... READY TO DEVELOP

 Description   

Zabbix can calculate any values based on the values that it has also on the polling frequency, it is clear that the value did not change or when it changed.



 Comments   
Comment by Roman [ 2024 Feb 09 ]

dublicated by ZBX-24034

Comment by dimir [ 2024 Feb 15 ]

It cannot. There is no way to distinguish between "never received" and "throttled" value.

Comment by dimir [ 2024 Feb 15 ]

Looks like duplicate of ZBX-16162. Feel free to re-open if you disagree.

Comment by Roman [ 2024 Feb 16 ]

I am interested in calculating the values for triggers.





[ZBXNEXT-6845] Long running queries from frontend on history tables + High CPU usage on DB host same time Created: 2021 Aug 20  Updated: 2022 Sep 15

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D), Frontend (F)
Affects Version/s: 5.0.14, 6.2.0
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Elina Kuzyutkina (Inactive) Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 9
Labels: frontend
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS: v7.9
Zabbix: v5.0.14
DB: PGSQL (postgresql12-server-12.7-1PGDG.rhel7.x86_64) + TSDB (timescaledb-2-postgresql-12-2.3.1-0.el7.x86_64)


Attachments: Zip Archive 05.zip    
Issue Links:
Duplicate
Sub-task
Sprint: Sprint 80 (Sep 2021), Sprint 81 (Oct 2021), Sprint 82 (Nov 2021), Sprint 83 (Dec 2021), Sprint 84 (Jan 2022), Sprint 85 (Feb 2022), Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022), Sprint 89 (Jun 2022), Sprint 90 (Jul 2022), Sprint 91 (Aug 2022)

 Description   

Frontend can generate queries like
SELECT itemid FROM history* WHERE (itemid IN (........)) AND clock>unixtime GROUP BY itemid;
We have index for historical tables on (itemid,clock). So normally we have:

Bitmap Index Scan on _hyper_*_chunk_history_str_1  (cost=0.00..2307.05 rows=95986 width=0) (actual time=14.939..14.940 rows=92213 loops=1)
Index Cond: ((itemid = ANY ('{....,...,....}'::bigint[])) AND (clock > XXXX))

i.e. postgres splits a set of itemids and performs parallel scanning by index (itemid,clock)

Starting from a certain amount of itemid in condition postgres stops using this index and uses Index Cond: (clock > XXXXX) and [already in parallel] Filter: ((itemid = ANY (....)

It works much longer. ~2sec with index (itemid,clock) against ~170sec with index (clock)

As solution options:
1.tuning postgres for forced use of the index (SET enable_seqscan = OFF)
2. to split requests into several



 Comments   
Comment by Edgar Akhmetshin [ 2022 Jun 20 ]
As solution options:
1.tuning postgres for forced use of the index (SET enable_seqscan = OFF)

SET example is a session only and will not help for a running daemon.
https://www.postgresql.org/docs/current/sql-altersystem.html

If your table is big and data distribution is irregular, raising the default_statistics_target may help.

ALTER TABLE ... ALTER COLUMN ... SET STATISTICS X;

https://www.postgresql.org/docs/current/runtime-config-query.html#RUNTIME-CONFIG-QUERY-CONSTANTS

Comment by Alexander Vladishev [ 2022 Sep 15 ]

Partially fixed in ZBX-20644.





[ZBXNEXT-6492] Possibility for usage jdbc connection string for PostgreSQL Patroni cluster Created: 2021 Feb 05  Updated: 2024 Feb 20

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

Type: Change Request Priority: Major
Reporter: Igor Gorbach Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 11
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File zabbix6_4_pg_connstring.patch     Text File zabbix6_pg_connstring.patch    
Issue Links:
Sub-task

 Description   

We're able to define the only one hostname/ip-adress into configuration:
DBHost - into Zabbix Server configuration
$DB['SERVER'] - into Frontend configuration

We want to have a posibility for defining multiple hostnames/ip-adresses to Zabbix everytime will connnecting to alive database in cases of failover and switchover

For example use full jdbc string for connection to PostgreSQL Patroni cluster

 jdbc:postgresql://127.0.0.1:1544,127.0.0.2:1544/dbname?targetServerType=master


 Comments   
Comment by Rostislav Palivoda [ 2021 Feb 15 ]

Why not to use https://www.pgbouncer.org/ ?

Comment by Kris Avi [ 2022 May 11 ]

pgbouncer being another component that could fail and might be too much of overhead to add extra machines for pgbouncers, setting up VIP between them to direct traffic towards correct pgbouncer, while in that case you already would direct traffic against vip that is assigned to readwrite node. 

 

The whole point of supporting connectionstring would be to avoid adding extra components in the chain for HA solution.

I would not even go for JDBC connectionstring, as it is coming from Java  side, but since zabbix is made in PHP, then the https://www.php.net/manual/en/function.pg-connect.php function seems to support libpq and it's format https://www.postgresql.org/docs/current/libpq-connect.html

In that case the connectionstring could contain all the hosts in cluster and choose the one cluster that is read-write 
postgresql://host1:5432,host2:5432,host3:5432/zabbix?target_session_attrs=read-write
Unfortunately currently zabbix server puts together connection data from multiple variables and does not support putting multiple DB hosts

https://www.alibabacloud.com/blog/597797 Seems to be example of how it is configured in here.

Since the connection creation towards correct node is done still by the same library, then no extra components will be used and no extra links in the chain will be introduced with that change.

 

In current setup we have set up vip in front of PG servers and in the servers there is also HAProxy installed just to direct traffic to read-write node. It is ugly and has extra parts that could fail, but it gives the chance that DB has done failover to another node, but for some reason VIP did not follow, then the DB connections still end up at RW node.

 

With the connectionstring potential usecase for performance optimization could be to direct write requests towards rw node and read requests to any of the node in the whole cluster, could allow scalability on read requests, which zabbix will get more to load the values for graphs. That would probably mean that in config there could be RW connectionstring and RO connectsionstring. If RO one is not filled, RW will be used.
Directing RO requests to RO node has potential flaw of replication lagging, that could hide latest written values in some cases, but lowering lag and sync process will be duties of Postgres DBA setting up the cluster.

Comment by Dimitri Bellini [ 2022 May 17 ]

I would like add my vote for this request!
Thanks so much

Comment by Kris Avi [ 2023 Jan 24 ]

pgBouncer is not solution in here at all. pgPool-II could be possibly used in place, but it is hassle to set up pgPool-II for this purpose and another alternative is to set up HAProxy on zabbix server hosts, that forward traffic to read-write postgres node. The HAProxy solution is currently used for me, but in there the best would be to have Layer 4 proxy mode and do health checks and RW node checks in Layer 4 as well and it is annoying if you happen to have password on the role checking for RW node.

 

So I took half a day and generated patch for this feature zabbix6_pg_connstring.patch

 

I tested PHP side and seemed to work fine, even when switchover from one node to another. Was not able to build C++ Server application to test it, since working on Windows mainly and setting up build environment currently would take longer than needed.

 

This patch seemed to be good for tag '6.0.0' and checked out commit was 5203d2ea7d901cd33d148f20586e2155901a7faa.
PHP side seemed to work fine even for origin/master as well

 

Patch implements Postgres connectionstring support and support to add target_session_attr on Postgres connections when using old parameters. In the old code it is possible to add multiple hosts on DBHost field, making it work quite similar to what connstring is implementing. But for automatic failover the target_session_attr is required.

Comment by Kris Avi [ 2023 Mar 09 ]

Updated patch to current master (6cfe791429d7cccda0205335868976cac6c51039) zabbix6_4_pg_connstring.patch

Patch still has both changes, one to add target_session_attr config option (with default value of "read-write") and other one to use connectionstring instead of all the connection parameters. 

Even the target_session_attr change would give possibility to write multiple hosts on DBHost field and get correct HA capabilities. If you would like to keep old behavior, then target_session_attr could have the default value of "any", but would be good to have possibility to configure it.

This change is vital for Zabbix HA capabilities, without database zabbix is nothing. It is not normal situation to change Zabbix config if for some reason DB should have to do failover to replica node. 

If you still suggest using something like pg_bouncer to do that failover, could you please provide sample configuration for it, cause so far I have not seen pg_bouncer having such possibility to proxy connections to R/W node. 

Since there has been bigger changes, then I am not so sure if new patch contains all the required changes as I still do not have build environment set up to compile zabbix_server and zabbix_proxy.

If more load-balancing from DB is wanted, then going further it would be nice to configure read-only db config (by default being same as rw config) and having queries tagged as read-only or queries that modify data and then directing read-only queries towards config for read only and queries that modify data only towards RW config. That way it would be possible to spread the queries across DB cluster. At least talking from Postgres point of view when hot_standby is used, but I am sure similar setup is possible with MariaDB and Oracle.

Comment by Piotr Paweł Stefaniak [ 2023 Mar 28 ]

I'd very much like to see this feature in.

I haven't tested the patches, but it seems to me that stripping one of the if statements of parentheses would make the translation unit incorrect.

Comment by Antti Hurme [ 2023 Jul 21 ]

This could also be a good addition if you use pg_auto_failover. Would like to see this as an way to make Zabbix truly HA with the great inbuild server HA + PostgreSQL HA with something modern.

"Implementing client-side High Availability is included in PostgreSQL’s driver libpq from version 10 onward. Using this driver, it is possible to specify multiple host names or IP addresses in the same connection string."

Comment by Piotr Paweł Stefaniak [ 2023 Sep 05 ]

I was in the process of writing a patch to implement this for 7.x, but it appears that there's a work-around good enough for me and perhaps others that doesn't involve patching the sources.

What I needed from my WIP patch was a couple of things:

  1. the ability to set multiple hosts and their ports
  2. the ability to set target_session_attrs
  3. ideally no regression for other DB servers so that the patch could be pushed upstream.

It had already been possible to set multiple hosts in the DBHost field and it worked with Postgres as intended, but not multiple ports which I needed. The problem was that DBPort is converted to an integer and stored in a variable common to all database connection code, so I had a dilemma how to implement what I wanted but at the same time keep everybody else happy.

Someone over in the IRC channel asked whether pgservices could work and I thought that it's a nice idea, but there's a similar one, but simpler: environment variables PGPORT and PGTARGETSESSIONATTRS. This may be surprising, but it appears to work, zabbix-server doesn't do anything about it and libpq handles them as designed. You'd think for consistency I should also set PGHOST or PGHOSTADDR, but if you don't set it in the zabbix-server config, it's going to default to localhost, which in my case beats the purpose of everything else mentioned here.

I think ideally zabbix-server should cease trying to parse and handle all possible connection parameters for all database engines that it supports and instead expose a single configuration setting for the user to provide the connection URI.

Comment by vl1987 [ 2023 Sep 21 ]

In fact, it is strange that there is still no such possibility. It would be great if such an option appears

Comment by Kris Avi [ 2024 Feb 20 ]

Thanks @pstef

I opted to use environment variable PGTARGETSESSIONATTRS to solve my problem. In configuration added multiple DB hosts. My setup was easier since used default port, but different hosts. Made similar change in PHP FPM config to pass same environment variable to web interface as well. Been using that method for couple of months in production, so far on switchover, there is minor hiccup as zabbix detects that connections should be recreated on DB switchover, but so far system has been able to behave normally. This method works only because they are not setting it to some value. My patch itself would set some default value, but at the same time give you option to set it in config. Potentially could have added multiple ports option in ports field too, but it was more complicated than to add connectionstring field.

I don't bother updating my patches for it any more, big portion of work is already done in there and it is up to Zabbix guys to either use it and merge it to upstream or not. 

I agree with you, they should just give the option to enter one connection string field and not bother with parsing and handling them all. But for sake of backwards compatibility probably those fields should stay. However still could add connection string field and if it is entered, then not try to parse rest of DB config parameters and trust that user configuring already knows what they are doing. Not all of the users will need such option, but some might. When writing my patch I kept in mind that old way should still work, it should include config file descriptions to my best knowledge and should not break something on other DB engines, but in the end it is zabbix dev team choice to use that patch or not. So far it seems this ticket has not gotten any of their attention and will be among other unsolved bug reports. Yes there are more parameters you could set and parsing them all could be too much, but most commonly used ones are sslmode and target_session_attrs, that is why potentially those should be in config while rest could come from environment variables.

 

 

Still there could be improvements made in backend and to make zabbix server and web aware of query types and if they are read-only queries or need to modify data. If it is read-only query, then it could be loadbalanced using prefer-standby for those queries and direct write queries to read-write node. It of course brings danger of reading stale data, but that is more on DBA to handle on cluster side.





[ZBXNEXT-5024] Allow "Manual close" option is greyed out if triggers are creating automatically from trigger prototype and from default template Created: 2019 Feb 09  Updated: 2019 Feb 11

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

Type: New Feature Request Priority: Major
Reporter: Abhilash Chittahukatil Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: trigger
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Production


Attachments: PNG File triggerautoclose.PNG    

 Description   

Allow "Manual close" option is greyed out if triggers are creating automatically from trigger prototype  and from default template. Tested with windows default OS template. the services are discovered automatically by the default template and trigger prototypes are created automatically. But unable to check the option "manual close the trigger" in such cases.

 

if we manually create a new tigger prototype or new trigger, there is no such problem and able to check "allow manual close"

 

seems like its a bug. Please check.



 Comments   
Comment by Alexander Vladishev [ 2019 Feb 11 ]

Hi,

All trigger fields, except "Enabled", based on trigger prototypes cannot be changed. It can be changed on trigger prototype level. After next discovery iteration all changes from trigger prototype will be transferred to the trigger level.

Same situation with triggers, based on templates.

Comment by Abhilash Chittahukatil [ 2019 Feb 11 ]

But I am not able to change that even in trigger prototype level. There are also it is grayed out. Is this the problem because I am using the default trigger prototype from the default windows server service discovery rule ?

When I take a clone of that trigger prototype, The Manual close option I am able to check.

Comment by Abhilash Chittahukatil [ 2019 Feb 11 ]

But I am not able to change that even in trigger prototype level. There are also it is grayed out. Is this the problem because I am using the default trigger prototype from the default windows server service discovery rule ?

When I take a clone of that trigger prototype, The Manual close option I am able to check.





[ZBXNEXT-5056] Allow regex/wildcards for vfs.files.exists Created: 2019 Feb 19  Updated: 2023 May 11

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), Server (S), Templates (T)
Affects Version/s: 4.0.4
Fix Version/s: None

Type: New Feature Request Priority: Major
Reporter: Hector Lopez Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 4
Labels: items, triggers
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RHEL 6/7 64bit


Issue Links:
Duplicate
duplicates ZBXNEXT-1699 support log.discovery Open

 Description   

We are planning to migrate our current monitoring tool to zabbix but one major blocker is that Zabbix does not play well with wildcards using vfs.files.exists. A large number of our systems generate application logs where our current tool would monitor and report if found. It is actually a simple "search for anything .log or error-.log in path /this/path/to/logfile", which does not appear to work with Zabbix vfs.files.exists item.



 Comments   
Comment by Edgar Akhmetshin [ 2019 Feb 19 ]

Hello Hector,

Thank you for reporting the issue. You can use custom LLD rules to discover all files and add them to the monitoring. I found a similar case registered under ZBXNEXT-1699, so we will close this ticket and continue the discussion there. Feel free to follow the original case and vote for it.

Regards,
Edgar

Comment by Glebs Ivanovskis [ 2019 Feb 19 ]

If you don't need to dive into contents of these files, you can use vfs.dir.count[]. I think it should be sufficient for this use case.

Comment by Hector Lopez [ 2019 Feb 25 ]

Thank you everyone for your inputs! Will do more testing noting these inputs.

 

Comment by James Howe [ 2019 May 15 ]

@edgar.akhmetshin
Just because the example use case is about log files, doesn't make it a duplicate of a discovery feature request. Nothing discussed on that ticket will help when I want to know if there exists a file with a particular name, but don't care what the extension is.

Comment by Aleksandrs Petrovs-Gavrilovs [ 2022 May 10 ]

Instead of having a vfs.file.exists for each one, perhaps an item like vfs.files.exists to combine this into one item check such as:

vfs.files.exists[/path1/to/some.log, /path1/to/another.log, /path2/to/more.log, /path3/to/another2.log]

Regardless of whether the list of filenames is a single string parameter (“name1,name2”) or the item just accepts multiple parameters with each as a separate file, it would help reduce the chances of an external script timing out.





[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-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-3234] PGRES_FATAL_ERROR in zabbix log after restarting Postgresql service Created: 2016 Mar 01  Updated: 2017 May 31

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

Type: Change Request Priority: Major
Reporter: Sergey Lisikh Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: database, postgresql
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Centos 6.5/7.1 x64, PostgreSQL 9.5, Zabbix 2.4.7


Attachments: File zabbix_server_with_localhost_PSQL_DB.log     File zabbix_server_with_remote_PSQL_DB.log    

 Description   

After restarting postgresql I get "[Z3005] query failed: [0] PGRES_FATAL_ERROR:FATAL:" errors in zabbix log. They stabely appear from time to time, until I restart zabbix-server.
Errors differ slightly on the basis of "DBHost" configuration (remote or localhost). See logs for details.
Don't know, is this critical or not?

To reproduce:
1) set DEBUG to 3 in zabbix_server.conf
2) run DB service, run zabbix server, check that they work
3) stop DB service, wait 10-20 sec, start it again
4) see zabbix logs, PGRES_FATAL_ERROR will appear periodically (think, it depends on the count of hosts and items)



 Comments   
Comment by Sergey Lisikh [ 2016 Mar 02 ]

This error also appear on debug level=2 with interval from 1 to 10-15 minutes.

Comment by Aleksandrs Saveljevs [ 2016 Mar 02 ]

Here is a longer part of the log on my system:

 14399:20160302:111456.497 Starting Zabbix Server. Zabbix 2.4.8rc1 (revision {ZABBIX_REVISION}).
 14399:20160302:111456.497 ****** Enabled features ******
 14399:20160302:111456.497 SNMP monitoring:           YES
 14399:20160302:111456.497 IPMI monitoring:           YES
 14399:20160302:111456.497 WEB monitoring:            YES
 14399:20160302:111456.497 VMware monitoring:         YES
 14399:20160302:111456.497 Jabber notifications:      YES
 14399:20160302:111456.497 Ez Texting notifications:  YES
 14399:20160302:111456.497 ODBC:                      YES
 14399:20160302:111456.497 SSH2 support:              YES
 14399:20160302:111456.497 IPv6 support:              YES
 14399:20160302:111456.497 ******************************
 14399:20160302:111456.497 using configuration file: /home/zabbix/zabbix-bin/etc/zabbix_server.conf
 14399:20160302:111456.508 current database version (mandatory/optional): 02040000/02040000
 14399:20160302:111456.508 required mandatory version: 02040000
 14399:20160302:111456.517 server #0 started [main process]
 14403:20160302:111456.517 server #1 started [configuration syncer #1]
 14404:20160302:111456.517 server #2 started [db watchdog #1]
 14405:20160302:111456.517 server #3 started [poller #1]
 14406:20160302:111456.517 server #4 started [unreachable poller #1]
 14408:20160302:111456.518 server #5 started [trapper #1]
 14409:20160302:111456.518 server #6 started [trapper #2]
 14411:20160302:111456.518 server #7 started [trapper #3]
 14413:20160302:111456.518 server #8 started [trapper #4]
 14415:20160302:111456.519 server #9 started [trapper #5]
 14421:20160302:111456.520 server #13 started [timer #1]
 14422:20160302:111456.520 server #14 started [http poller #1]
 14420:20160302:111456.520 server #12 started [housekeeper #1]
 14418:20160302:111456.520 server #11 started [alerter #1]
 14426:20160302:111456.521 server #16 started [history syncer #1]
 14430:20160302:111456.522 server #18 started [ipmi poller #1]
 14433:20160302:111456.522 server #19 started [java poller #1]
 14417:20160302:111456.522 server #10 started [icmp pinger #1]
 14434:20160302:111456.522 server #20 started [proxy poller #1]
 14429:20160302:111456.523 server #17 started [escalator #1]
 14435:20160302:111456.524 server #21 started [self-monitoring #1]
 14423:20160302:111456.539 server #15 started [discoverer #1]
 14429:20160302:111520.531 [Z3005] query failed: [0] result is NULL [select escalationid,actionid,triggerid,eventid,r_eventid,nextcheck,esc_step,status,itemid from escalations order by actionid,triggerid,itemid,escalationid]
 14429:20160302:111520.531 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select escalationid,actionid,triggerid,eventid,r_eventid,nextcheck,esc_step,status,itemid from escalations order by actionid,triggerid,itemid,escalationid]
 14429:20160302:111520.531 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14429:20160302:111520.531 database is down: reconnecting in 10 seconds
 14422:20160302:111521.533 [Z3005] query failed: [0] result is NULL [select h.hostid,h.host,h.name,t.httptestid,t.name,t.variables,t.headers,t.agent,t.authentication,t.http_user,t.http_password,t.http_proxy,t.retries,t.ssl_cert_file,t.ssl_key_file,t.ssl_key_password,t.verify_peer,t.verify_host from httptest t,hosts h where t.hostid=h.hostid and t.nextcheck<=1456910121 and mod(t.httptestid,1)=0 and t.status=0 and h.proxy_hostid is null and h.status=0 and (h.maintenance_status=0 or h.maintenance_type=0)]
 14422:20160302:111521.533 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select h.hostid,h.host,h.name,t.httptestid,t.name,t.variables,t.headers,t.agent,t.authentication,t.http_user,t.http_password,t.http_proxy,t.retries,t.ssl_cert_file,t.ssl_key_file,t.ssl_key_password,t.verify_peer,t.verify_host from httptest t,hosts h where t.hostid=h.hostid and t.nextcheck<=1456910121 and mod(t.httptestid,1)=0 and t.status=0 and h.proxy_hostid is null and h.status=0 and (h.maintenance_status=0 or h.maintenance_type=0)]
 14422:20160302:111521.533 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14422:20160302:111521.533 database is down: reconnecting in 10 seconds
 14426:20160302:111521.556 [Z3005] query failed: [0] result is NULL [begin;]
 14426:20160302:111521.556 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14426:20160302:111521.556 database is down: reconnecting in 10 seconds
 14403:20160302:111526.520 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14403:20160302:111526.520 database is down: reconnecting in 10 seconds
 14418:20160302:111526.528 [Z3005] query failed: [0] result is NULL [select a.alertid,a.mediatypeid,a.sendto,a.subject,a.message,a.status,mt.mediatypeid,mt.type,mt.description,mt.smtp_server,mt.smtp_helo,mt.smtp_email,mt.exec_path,mt.gsm_modem,mt.username,mt.passwd,a.retries from alerts a,media_type mt where a.mediatypeid=mt.mediatypeid and a.status=0 and a.alerttype=0 order by a.alertid]
 14418:20160302:111526.528 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select a.alertid,a.mediatypeid,a.sendto,a.subject,a.message,a.status,mt.mediatypeid,mt.type,mt.description,mt.smtp_server,mt.smtp_helo,mt.smtp_email,mt.exec_path,mt.gsm_modem,mt.username,mt.passwd,a.retries from alerts a,media_type mt where a.mediatypeid=mt.mediatypeid and a.status=0 and a.alerttype=0 order by a.alertid]
 14418:20160302:111526.528 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14418:20160302:111526.528 database is down: reconnecting in 10 seconds
 14429:20160302:111530.531 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14429:20160302:111530.531 database is down: reconnecting in 10 seconds
 14422:20160302:111531.533 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14422:20160302:111531.534 database is down: reconnecting in 10 seconds
 14426:20160302:111531.556 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14426:20160302:111531.556 database is down: reconnecting in 10 seconds
 14403:20160302:111536.520 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14403:20160302:111536.520 database is down: reconnecting in 10 seconds
 14418:20160302:111536.528 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14418:20160302:111536.529 database is down: reconnecting in 10 seconds
 14429:20160302:111540.532 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14429:20160302:111540.532 database is down: reconnecting in 10 seconds
 14422:20160302:111541.534 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14422:20160302:111541.534 database is down: reconnecting in 10 seconds
 14426:20160302:111541.556 [Z3001] connection to database 'zabbix_2_4' failed: [0] could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

 14426:20160302:111541.556 database is down: reconnecting in 10 seconds
 14403:20160302:111546.527 database connection re-established
 14418:20160302:111546.532 database connection re-established
 14429:20160302:111550.535 database connection re-established
 14422:20160302:111551.538 database connection re-established
 14426:20160302:111551.560 database connection re-established
 14423:20160302:111556.546 [Z3005] query failed: [0] result is NULL [select distinct r.druleid,r.iprange,r.name,c.dcheckid,r.proxy_hostid from drules r left join dchecks c on c.druleid=r.druleid and c.uniq=1 where r.status=0 and (r.nextcheck<=1456910156 or r.nextcheck>1456910156+r.delay) and mod(r.druleid,1)=0]
 14423:20160302:111556.546 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select distinct r.druleid,r.iprange,r.name,c.dcheckid,r.proxy_hostid from drules r left join dchecks c on c.druleid=r.druleid and c.uniq=1 where r.status=0 and (r.nextcheck<=1456910156 or r.nextcheck>1456910156+r.delay) and mod(r.druleid,1)=0]
 14411:20160302:111558.141 [Z3005] query failed: [0] result is NULL [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14411:20160302:111558.141 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14405:20160302:111558.780 [Z3005] query failed: [0] result is NULL [select hostid,key_,state,evaltype,formula,error,lifetime from items where itemid=23278]
 14405:20160302:111558.780 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select hostid,key_,state,evaltype,formula,error,lifetime from items where itemid=23278]
 14421:20160302:111600.534 [Z3005] query failed: [0] result is NULL [begin;]
 14413:20160302:111658.151 [Z3005] query failed: [0] result is NULL [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14413:20160302:111658.151 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14415:20160302:111758.162 [Z3005] query failed: [0] result is NULL [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14415:20160302:111758.162 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14408:20160302:111858.174 [Z3005] query failed: [0] result is NULL [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14408:20160302:111858.174 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14409:20160302:112358.213 [Z3005] query failed: [0] result is NULL [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14409:20160302:112358.213 [Z3005] query failed: [0] PGRES_FATAL_ERROR: [select hostid,status from hosts where host='Zabbix server' and status in (0,1) and flags<>2 and proxy_hostid is null]
 14399:20160302:114444.374 Got signal [signal:15(SIGTERM),sender_pid:15844,sender_uid:1000,reason:0]. Exiting ...
 14399:20160302:114446.378 syncing history data...
 14399:20160302:114446.380 syncing history data done
 14399:20160302:114446.380 syncing trends data...
 14399:20160302:114446.392 syncing trends data done
 14399:20160302:114446.392 Zabbix Server stopped. Zabbix 2.4.8rc1 (revision {ZABBIX_REVISION}).

It can be seen that there are failed queries after database connection was re-established. However, these failed queries probably come from processes which did not notice that the database was down before and were using the old connection descriptor for their query. This looks scary, but does not seem to cause a problem: these failed queries will be repeated immediately after reconnection.

Comment by Sergey Lisikh [ 2016 Mar 02 ]

Thanks for reply, Aleksandrs!
I've calmed down

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

From the log attached by asaveljevs we can see that the fact that database was down and came back was noticed by alerter, escalator, http poller (these are processes which use direct queries instead of caches), configuration syncer and history syncer processes (which communicate with database a lot by design). Processes that do not notice such short database downtime are trappers, pollers, discoverer, timer, ... (which use mostly caches or spend a lot of time simply sleeping) Since Zabbix processes do not share information about database status this situation is more or less expected.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Apr 07 ]

After some discussion we decided to leave things as they are. Some of Zabbix processes communicate to database not very frequently. Between rare queries connection handle may become invalid. Query then fails and Zabbix process tries to reconnect immediately. If the reconnection is successful on the first attempt, no messages about database down/up are logged, just the message about a failed query. Rationale:

  • We don't want to add "database is down", "database is up" messages on every reconnect, because this would litter logs and frighten users.
  • We don't want to add "successfully reconnected" message only, because it would be like ")" without "(".
  • We don't want to get rid of failed query messages, because we believe it's not good to hide such things.

As suggested by richlv moved to feature requests to track user interest in this issue.





[ZBXNEXT-1416] Allow granting permission to configure Maintenance Periods without granting full configuration access to host group Created: 2012 Sep 10  Updated: 2022 Oct 04

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

Type: New Feature Request Priority: Major
Reporter: Robert Parker Assignee: Unassigned
Resolution: Unresolved Votes: 53
Labels: maintenance, permissions
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 2.0.2 running on Debian from unstable repository packages.


Issue Links:
Duplicate
duplicates ZBXNEXT-77 Better permission granularity Closed
is duplicated by ZBXNEXT-4245 Request for new feature that supports... Closed
is duplicated by ZBXNEXT-7051 Allow maintenance to be created by Za... Closed
is duplicated by ZBXNEXT-4970 Allow to register the maintenance of... Closed

 Description   

We would like to be able to grant some users the permission to create and modify Maintance Periods for certain host groups, without granting them full configuration access to all aspects of the hosts in those groups.

Perhaps this could be implemented as new User Type such as 'Operator', or a new column (between Read-write and Read-only) in the User Group Permissions screen.

Of course I suspect this might not be simple to implement, and may fall within the scope of the work required for something like ZBXNEXT-77 although that other feature request appears more focused on host-based granularity, whereas this is more about making granular an aspect of configuraiton.



 Comments   
Comment by Robert Cooper [ 2012 Oct 24 ]

This might be easily related to ZBXNEXT-310.

Comment by Sebastiaan Woudenberg [ 2014 May 14 ]

We also would like this additional security level.
We've sysadmins that do maintenance work and need to create maintenance windows in zabbix. These sysadmins don't have enough knowledge of zabbix so it would be best to limit there access. Currently they require read-write access to create maintenance windows in zabbix.

ZBXNEXT-310 is an older request but discribes it even better.

Comment by richlv [ 2014 Jun 19 ]

this should be handled in the context of overall permission granularity, closing in favour of ZBXNEXT-77

Comment by richlv [ 2015 Jan 27 ]

this might be considered w/o full permission redesign, reopening

Comment by Volker Fröhlich [ 2015 Apr 22 ]

This little hack gives an actual meaning to "Read/Write" in the context of a regular user. This might be a good idea, because it allows the implementation without massive changes and may reduce the confusion as of what the heck the "Read/Write" column is for.

http://zabbix.org/wiki/Docs/simplify_ad_hoc_maintenance#POC_implementation

Comment by Elvar [ 2017 Mar 14 ]

I think it's very important for users to be able to set maintenance periods for various hosts and groups without having to be in the Zabbix Administrators group. In fact, the majority of users I have accessing Zabbix I would prefer not be Zabbix Administrators but have the ability to create maintenance schedules.

Comment by Marlon Willrich [ 2017 Apr 27 ]

I would also like this function, very important for larger installations

Comment by Brad Turnbough [ 2017 Apr 28 ]

Add my vote to the list of 'why doesn't this exist yet?' 5 years and counting....

Comment by Jos Hoekstra [ 2017 May 31 ]

We're assigning dev-teams their own credentials for notifications etc, but allow them to set their own maintenance without needing us to set it for them would save us a lot of time.
Please allow for a role of 'maintenance-user' which can set maintenance for hosts assigned to his/her group.
This makes for a better to maintain rights management while still allowing users to manage their own hosts.

Comment by Cesar Murilo da Silva Junior [ 2019 Jan 22 ]


Any news?

Comment by Kornelis [ 2019 May 15 ]

How difficult can it be to add a maintenance role. Would be a nice feature. Is there anyway to work around this? With a script or so?

Comment by Volker Fröhlich [ 2019 May 15 ]

Would my approach work for you @Kornelis?

Comment by Kornelis [ 2019 May 16 ]

@Volker:

Is this script compatible with Zabbix 4.2? And how do i implement this?

Comment by Michal Bartak [ 2019 May 28 ]

I agree this feature would be greatly appreciated!

Thanks

Comment by Nick Zolot [ 2020 Mar 31 ]

@Volker, is it possible to use patch with 4.4? Also, is there any step-by-step instruction how it can be installed?

Comment by Volker Fröhlich [ 2020 Apr 01 ]

Given its age I predict it not to apply cleanly. However, I think that the concept is still sound and just try to do the few things that I did in the patch wherever they belong now.

Comment by Dale [ 2022 Oct 04 ]

This appears to work on 6.0.2 and I'm not sure about other versions.

Add read-write to the host groups you desire via User Groups and then using User Roles you can restrict configuration of Hosts.

I'm not sure if I'm missing anything, but my users can now add maintenance and appear that they cannot configure anything still.

 





[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-1136] Remove disabled/inactive auto-registered hosts automatically Created: 2012 Mar 01  Updated: 2018 Dec 25

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

Type: Change Request Priority: Major
Reporter: Kleber Vinicius de Carvalho Domingues Assignee: Alexei Vladishev
Resolution: Unresolved Votes: 12
Labels: actions, autoregistration
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

OS Centos 5.7 64bits
DB Postgres 9.0


Issue Links:
Duplicate
is duplicated by ZBXNEXT-2609 Easier auto remove of retired hosts Closed

 Description   

I'm trying to find something to automate the deletion of my disabled hosts on my Zabbix Server.
Soma Action that delete inactive/disabled hosts after a certain time. Do you know somwthing that can be used in this issue?



 Comments   
Comment by richlv [ 2012 Mar 01 ]

what's your definition of "inactive" ?

Comment by Kleber Vinicius de Carvalho Domingues [ 2012 Mar 01 ]

Hosts that are some time without answering Zabbix Server requests. This is the opposite of Auto Discovery.

Comment by Oleksii Zagorskyi [ 2012 Mar 02 ]

"Remove host" operation is available for Discovery's actions.
Probably it should help.

Comment by richlv [ 2012 Mar 11 ]

as mentioned, if you are using network discovery, you can use host removal operation;
if you want to do that based on triggers only, you can run a script and deal with hosts via the api.

i don't think there's going to be anything more specific implemented -> closing

Comment by Oleksii Zagorskyi [ 2013 Jun 04 ]

I updated this feature request summary to reflect a main target - auto-registered hosts automatic removal.

Comment by Oleksii Zagorskyi [ 2013 Jun 04 ]

Any nice ideas how it could be nicely implemented are welcome
Just to discuss it.

Comment by Rob Langley [ 2013 Sep 08 ]

I'm currently using Auto Registration for load balanced servers I'm starting and stopping with Amazon's AWS auto scaling feature. So what would be useful is an operation to Disable Host after xx mins, then 'Delete Host' after xxx mins

For example when the server is terminated it could be disabled after 60 mins, then deleted after 240 mins.

Comment by Ionut Cadariu [ 2015 Mar 28 ]

@Rob, If you have found a way to deal with that type of issues please respond since I'm looking for a way to automatically remove hosts that are no longer available from zabbix.

Thank you

Comment by TonyFu [ 2015 Apr 14 ]

@Ionut Cadariu, I've rencently write a script with python to delete unactive hosts periodly. Call for zbx json-rpc with groupid, we get the status of hosts, then we can decide disable them after specific time and delete them. My zabbix version is 2.2.4, if you're interested, post an email:[email protected] to me.

Comment by JamesH [ 2015 Apr 14 ]

I'm using zabbix_sender called from the zabbix_agent init script upon shutdown to trigger a server-side API call which disables the host. Then a server-side script runs periodically and deletes disabled hosts greater than X days old through the API. It's working for us but I'd like to see this functionality built-in as ephemeral hosts is becoming more widespread.

Comment by Matt [ 2015 Jun 24 ]

@James Hammett

What is the syntax to send the disable signal for zabbix_sender??? I've been searching Google for the past 1.5 hours trying to find exactly that key and value and the best I've found is your comment saying you've done it...

PLEASE reply. PLEASE.

M.

Comment by JamesH [ 2015 Jun 26 ]

Google is no help as I haven't seen anyone else tackle this problem. I created an item named "disable-host" and I have zabbix_sender send the name of the host to it upon shutdown. I created a trigger that triggers upon each update of "disable-host". That triggers an action that runs a server-side script that hits the API disabling the host. Lots of moving parts but 100% reliable so far. Right now I'm working toward making this all work with Docker containers :^)

Comment by richlv [ 2015 Jun 26 ]

please consider using https://www.zabbix.org/wiki/Getting_help for discussion, and maybe even writing a howto on zabbix.org

Comment by Matt [ 2015 Jun 26 ]

@JamesH

Man, thank you. I am totally following what you are saying and am working on a Proof of Concept. I had gotten another idea working just late yesterday.

1) Wrote a "service": /etc/init.d/zabbix-disable-host
2) It phones home:

  • An "enable" at system boot
  • A "disable" at system shutdown
  • (also handles "status" which just queries the Zabbix front end for current status)
    3) The back end of it is a python script on the node itself.

I decided on this way because if the node crashes and burns, it never sends the "disable" back so it will go unreachable (and in turn sound the alert)

Currently, I'm trying to figure out how to get the date/time out of Zabbix when the node went disabled. This way we can retain usage history for the node for X days, then delete it. We don't want it deleted right away. Looking at the API docs, I don't see that Zabbix actually stores anywhere WHEN the node got / went disabled. :-\

M.

Comment by Matt [ 2015 Jun 30 ]

As a small follow up, it doesn't seem that Zabbix records the date/time a node was disabled.

So what I do now in my "service" file (/etc/init.d/zabbix-disable-host) on stop:

  • Sends the "disable (this) host" to Zabbix
    zapi.host.update(hostid=HOSTID, status=new_status)
  • Enables inventory in manual mode (so it doesn't try to populate it in "automatic mode" when we don't care)
    zapi.host.update(hostid=HOSTID,inventory_mode=0)
  • Writes an epoch stamp to "date_hw_decomm" (Date HW decommissioned)
    zapi.host.update(hostid=HOSTID,inventory={'date_hw_decomm': EPOCH})

Server side I scheduled a daily script to:

  • Check that specific inventory key of all disabled hosts
    for h in zapi.host.getobjects(status=1):
       host_id = h['hostid']
       result = zapi.host.get(
         withInventory=1,
         output=["date_hw_decomm"],
         hostids=host_id,
         selectInventory=["date_hw_decomm"])
    
    (after a little monkeying with the json back from Zabbix) you get the epoch stamp recorded when the node was disabled above.
    
    Whip a little math around comparing that stamp to "now" and get a "diff" (number days between "now" and "disabled date").
    
    
  • Whack hosts that were "decommissioned" greater than X days ago.

M.

Comment by richlv [ 2017 Jan 02 ]

might be solvable by ZBXNEXT-1387





[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-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-2238] use specific interface when linking template to a host Created: 2014 Apr 03  Updated: 2023 Nov 07

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

Type: Change Request Priority: Major
Reporter: Mickael Martin (Cyres) Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
is duplicated by ZBXNEXT-1981 Named interfaces Closed

 Description   

I have an idea to solve this problem https://www.zabbix.com/forum/showthread.php?p=147817
If we can "tag" an interface like "WAN" in host configuration page, items on template can be assign only to interface named "WAN".
For example, I have one host, a pfsense with 3 interfaces, WAN, LAN, DMZ. I create this host and assign my ips to the interfaces (192.168.1.1 -> LAN, 95.x.x.x -> WAN, 192.168.2.1 ->DMZ).
So my template has 3 items named icmpping[LAN], icmpping[WAN],icmpping[DMZ] and all are checked on my host.

I know, I can use user macro to approach this functionality, but it's not easy for the user. IPs in "agent interfaces" are no sense if the user want use only template (and not item directly on host). Moreover, IPs are duplicate (and not linked !) between macros and IPs configuration.
Save the host can check if interface name correspond to the template items, if no one interface is named "WAN" and the host is linked with a template whose had an "item's WAN", the host can be saved.

I think it's a good feature for many users who want to check all (or more than one) interfaces on a host using host configuration (and not user macros...)



 Comments   
Comment by Marc [ 2014 Apr 03 ]

similar to ZBXNEXT-735

Comment by Oleksii Zagorskyi [ 2014 Apr 04 ]

mma, if your idea is different from ZBXNEXT-735, please add it as a comment there.

Closed as duplicate.

Comment by Mickael Martin (Cyres) [ 2014 Apr 04 ]

I think yes, a bit. My idea is applying an item of a template to a generic interface (linked by interface's name). It's not exactly the same idea with ZBXNEXT-735 where justin phelps want assign a template directly on an interface. I think the goal is the same but the way to solve our need is different.

Comment by Marc [ 2014 Apr 04 ]

mma, what about: [...] having an optional alias per host interface. This could then be set additionally in template items [...]?

Comment by Mickael Martin (Cyres) [ 2014 Apr 04 ]

My idea is more flexible but more difficult to implement I think, and more difficult to understand for the end-user.
You can have a template with many items witch have different interfaces assigned. Many templates has standard interfaces (WAN, LAN, DMZ) on Cisco Router or Gateway.

Comment by Mickael Martin (Cyres) [ 2014 Apr 04 ]

okkuv9xh, yes I haven't see with comment. Our points of view are similar. So you can close as duplicate this request.

Comment by Oleksii Zagorskyi [ 2021 Mar 09 ]

ZBXNEXT-735 was implemented in a limited way that current request is not a duplicate anymore.
So reopening and updating summary.





[ZBXNEXT-2227] Curl Max Redirects Option Created: 2014 Mar 27  Updated: 2020 Apr 22

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

Type: Change Request Priority: Major
Reporter: jchegedus Assignee: Unassigned
Resolution: Unresolved Votes: 3
Labels: webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

All platforms that have libcurl enabled.


Issue Links:
Duplicate
duplicates ZBXNEXT-173 Make the Curl "Follow redirects" opti... Closed
is duplicated by ZBXNEXT-3554 Max redirects is set to 10, this is t... Closed

 Description   

When executing a webcheck against a server, if the server gives out a "slow" 302 , the Curl will keep following it eternally, without getting out of the loop. When this happens, we verified that one proxy (version 2.0.4) got stuck on that check and never resumed other checked. Resulting that, all the webchecks had no data and stuck, until the problem of 302 redirection loop was resolved, in two production occasions we have seen the loop go on for multiple hours, and all other webchecks were "stopped" and no more data was being collected.

After a bit of scrutiny, enabling some more debug from libcurl using CURLOPT_VERBOSE, we detected the error and thereafter we eneabled CURLOPT_MAXREDIRS setting to 5, which actually fixed the problem for good.

( http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTMAXREDIRS )

So we suggest that an option for Server and Proxy conf file could be added to control the max amount of redirections that curl must follow, in order to give him an option to detect a 302 loop (like a browser is able to).

We fix the problem adding:

CURLE_OK != (err = curl_easy_setopt(easyhandle, CURLOPT_MAXREDIRS, 5L)) ||

at line 332 from httptest.c, from version 2.0.4 – I also checkd the latest 2.2.2 version, and the option is not in place, then I decided to drop this request.



 Comments   
Comment by richlv [ 2014 Mar 27 ]

would be best implemented as part of ZBXNEXT-173

Comment by Aleksandrs Saveljevs [ 2016 Nov 15 ]

ZBXNEXT-173 did not seem to have implemented it, see ZBXNEXT-3554.

Comment by Andrey Zaslavskiy [ 2016 Nov 15 ]

I'm asking to raise CURLOPT_MAXREDIRS to 50, as it done in curl upstream.

Comment by Dimitri Bellini [ 2020 Apr 22 ]

Hi Guys,

as is usually we rise the exception... using the HTTP Agent with some EMC Unity RestAPI we need to follow the redirect more than 10 levels..

Please before is to late for Zabbix v.5.0, can you extende the limit to 50 (CURLOPT_MAXREDIRS)?

Thanks so much





[ZBXNEXT-5707] Add template Windows updates check (Windows registry monitoring) Created: 2020 Jan 22  Updated: 2024 Apr 10

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

Type: New Feature Request Priority: Major
Reporter: Ivan Degtyarev Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 22
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Attachments: JPEG File winupdate.jpg    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-8900 Official Windows update Template moni... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-7594 Frontend changes for Windows registry... Specification change (Sub-task) Closed Dmitrijs Goloscapovs  
ZBXNEXT-7732 Windows registry monitoring Specification change (Sub-task) Closed Dmitrijs Goloscapovs  
Team: Team INT
Sprint: Sprint 86 (Mar 2022), Sprint 87 (Apr 2022)

 Description   

Create linked template (Template OS Windows by Zabbix agent and Template OS Windows by Zabbix agent active) to check the date of the last update installation on Windows.

In Zabbix Roadmap:

Security and compliance monitoring

  • Standard templates will be enhanced to contain security- and compliance-related monitoring

Example item key: system.run["PowerShell.exe [int][double]::Parse((Get-Date((Get-ItemProperty -Path Registry::'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install').LastSuccessTime) -UFormat %s))"] 
But you can think about implementing it without powershell.
 
You can also make a check to check the status of the firewall.
 



 Comments   
Comment by Ivan Degtyarev [ 2020 Jan 22 ]

In Inherited and template macros, create Macro with Effective value for redefine the number of days without installing updates

Comment by Alexei Vladishev [ 2020 Jan 31 ]

It sounds like a great idea, let us check if it can be implemented without use of system.run.

Comment by Alexei Vladishev [ 2022 Apr 08 ]

Just a quick status update. We are about to start development of this functionality, aiming for Zabbix 6.2.

Comment by Dmitrijs Goloscapovs [ 2022 May 19 ]

Development of new metrics (without template changes) for monitoring of Windows registry was moved to ZBXNEXT-7732.

Monitoring of Windows updates using registry seems not to provide real latest info about updates. Sources other than registry should be considered.
Some categories of updates are being installed, but they do not change a timestamp in registry (for example, KBxxxxx updates for Windows Defender, UWP apps, drivers). In such cases eventlog will contain records about successfully installed updates (with event ID 19, and source as WindowsUpdateClient), but timestamp in registry will not be changed. Judging by this fact, Eventlog can be the right source, as WMI behaves similarly to registry. However, eventlog monitoring is available only as active check.

Windows registry monitoring metrics are available in:

Comment by dimir [ 2023 Dec 18 ]

While implementing registry monitoring was mentioned above this is not what was asked for (Windows Update monitoring). Keeping this open.





[ZBXNEXT-8778] Map Read-only permission is not working for users with user role type Admin Created: 2023 Apr 05  Updated: 2024 Apr 10

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

Type: Change Request Priority: Major
Reporter: Daniel Kempkens Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: frontend
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix 6.0 LTS


Attachments: PNG File screenshot-1.png     PNG File screenshot-2.png     PNG File screenshot-3.png     PNG File screenshot-4.png     PNG File screenshot-5.png     PNG File screenshot-6.png     PNG File screenshot-7.png    
Issue Links:
Duplicate
Team: Team B

 Description   

Steps to reproduce:

  1. Create new map as Zabbix admin with owner Zabbix admin, select "share" and choose a user group, give them "read-only" permission.
  2. That User group has a user role type "user".
  3. Login as a member of that group -> map editing is not possible
  4. Change user role type to "admin"
  5. Login as a member of that group -> map editing is possible (should not be!)

Try the same steps with a dashboard instead of a map - the user group with role type "admin" cannot edit the dashboard. This is the expected result, but not in the maps section.



 Comments   
Comment by Michal Czerniakiewicz [ 2023 Apr 05 ]

I do confirm. Replicated on Zabbix appliance 6.0.15 LTS(https://www.zabbix.com/rn/rn6.0.15). Created: user "Admina" with Admin role and group Zabbix administrators; user "User" with User role and group Users(changed during and for the process to Admin role).



User can edit the map.

Created and owned by Admin role type user "Admina".

User can not edit the dashboard.

Created and owned by Admin role type user "Admina".

Comment by Alexander Vladishev [ 2023 Sep 26 ]

This works according to the documentation:

Admin level users can see private maps regardless of being the owner or belonging to the shared user list. Private maps can be edited by the owner of the map and in case a user/ user group has read-write permissions for this map and at least read permissions to all elements of the corresponding map including triggers in the links.





[ZBXNEXT-1142] Support JMX Operations Created: 2012 Mar 07  Updated: 2024 Apr 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Java gateway (J)
Affects Version/s: 1.9.9 (beta)
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Michael Tewner Assignee: Vladislavs Sokurenko
Resolution: Unresolved Votes: 18
Labels: javagateway, jmx, patch
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Java


Attachments: PDF File DEV-EnableJMXOprations-Proposal22May2018-270718-1001-367.pdf    
Issue Links:
Causes
Duplicate
is duplicated by ZBXNEXT-1310 Support for JMX methods in Java Gateway Closed
Team: Team A
Sprint: Roadmap Backlog

 Description   

Currently, the JAVA proxy only supports JMX Attributes. Please add support for JMX Operations. I have submitted VERY rough code which I use in our environments to http://www.zabbix.com/forum/showthread.php?p=97693#post97693



 Comments   
Comment by Yevgen [ 2013 Sep 09 ]

Yes, it would be great!

Comment by Hossein Shemshadi [ 2015 Oct 14 ]

yes , I really need this feature.

Comment by Vjaceslavs Bogdanovs [ 2017 Jun 12 ]

JMX operation support would be a nice feature, but it is not that simple...
Operations could have multiple params with different types (not only types from java.lang, but any custom type), so Zabbix user will have to provide a value and a type for params of operations. It is also hard to tell what syntax can be used for arrays, custom objects, etc to define all that within single field and even for fragmented input (type dropdown and input for a value) there are no good options to define objects, arrays, etc.

Provided solution is limited to strings only and uses item key as a data buffer for operation name and param names. Currently item key is limited to 255 characters and adding all the values with their types into one input field will be a nightmare for a user (so fragmented input is a must).

So looks like limited solution (for basic java.lang types) is the closest Zabbix can get to JMX operation support without asking user to write custom scripts or do some magic inducing serialization of params.

Comment by richlv [ 2018 May 15 ]

It might be worth implementing operation support with plain strings as the first shot. It would allow to verify the basics and additional parameter support can come at a later time.

Comment by Matias [ 2021 Jul 30 ]

I run into this problem while trying to monitor the default springboot mbeans. I feel like this is a big limitation of the jmx gateway.





[ZBXNEXT-5478] Screen: Auto Add Graphs For Each Hosts That Uses A Template Created: 2019 Oct 01  Updated: 2019 Oct 12

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

Type: New Feature Request Priority: Major
Reporter: Abhishek Dasgupta Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screen Shot 2019-10-01 at 2.56.09 AM.png    

 Description   

We have a template with an item and associated trigger and graph.

Currently to see the graph for each host that uses that template in a screen, we need to manually add the graph for each host.

Considering our ecosystem is in AWS with numerous dynamic hosts, it's really painful to keep updating this screen manually each time the host set changes.

 

We would like to see an option to add a graph from template. Then the screen will find out which all host uses that template and show its corresponding graph. Something similar to how graph prototype works for a single host.

 

Following is an example of manually created screen -

 



 Comments   
Comment by dimir [ 2019 Oct 02 ]

Closing as duplicate of ZBXNEXT-927

Comment by Abhishek Dasgupta [ 2019 Oct 02 ]

How is this a duplicate? That one talks about same host, this one spans across multiple hosts and has nothing to do with LLD. This request is purely to add a feature to create screen with graph from template. And then screen automatically figure out which all hosts using that graph and render them.

Comment by dimir [ 2019 Oct 03 ]

Oh, sorry. Misunderstood the description.

Somewhat similar issue ZBXNEXT-927 - asks for grouping graphs of items created from LLD. 

Comment by Abhishek Dasgupta [ 2019 Oct 12 ]

Any plan so far to get this implemented anytime soon? We are migrating to latest version (4.4) and creating all these screens is very tedious without this proposed solution.





[ZBXNEXT-223] Increase max length of processed text to ~16MB Created: 2010 Feb 04  Updated: 2019 Jul 23

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

Type: Change Request Priority: Major
Reporter: Allan Douglas Assignee: Unassigned
Resolution: Unresolved Votes: 4
Labels: database, prometheus
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

I'm creating some scripts that outputs more than 64KB, which is the current size limit of text checks (see ZBX-952). I would suggest to increase this limit to 16MB to match the database field capacity, at least in mysql, which is of type mediumtext (2**24-1 bytes, see http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html)



 Comments   
Comment by Evgeny [ 2019 Jul 18 ]

Actual for master items that collect prometheus metrics.

Comment by Vitaly Zhuravlev [ 2019 Jul 18 ]

Just as another example, kubernetes kube-state-metrics could easily be more than > 64KB

Comment by Alexei Vladishev [ 2019 Jul 19 ]

We are going to increase this limit in Zabbix 4.4, stay tuned!

Comment by Evgeny [ 2019 Jul 19 ]

Wow, so fast! Thank!

Comment by Alexei Vladishev [ 2019 Jul 19 ]

It seems I misunderstood this feature request. I thought it was about ability to process larger values. I am afraid we won't be able to increase size of the text fields in the DB in Zabbix 4.4. Perhaps later.

Sorry for the confusion.

Comment by Evgeny [ 2019 Jul 19 ]

I thought that limiting the database also affects the processing of dependent data elements. Now I checked on version 4.2 and saw that the data outside 64Kb is being processed normally.





[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-215] MIBs file import Created: 2009 Apr 28  Updated: 2019 Sep 12

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

Type: New Feature Request Priority: Major
Reporter: Manfredo Pansa Assignee: Unassigned
Resolution: Unresolved Votes: 9
Labels: snmp
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

RedHat CentOS 5


Attachments: File cisco-stackmaker.mib    
Issue Links:
Duplicate

 Description   

Don't know if there is a similar feature, but to choose Zabbix in our Service Center we need to import Equipement Mibs file as attached one. I know zload_snmpwalk.pl utility but we need to know this feature will be available as well...



 Comments   
Comment by Alexei Vladishev [ 2009 May 08 ]

Just follow standard NET-SNMP documentation in order to import new MIBs. It is extremely straight-forward procedure.

Alexei

Comment by Brian Talley [ 2010 Jan 20 ]

I believe the OP was asking for a way to import a MIB into Zabbix and have Zabbix create a Host Template with all the Items created as defined in the vendor MIB (or allow the user to pick and choose before the template is generated). This would be preferable to building the Host Template by hand in an environment where a lot of different devices are used.

I can't see where importing the MIB file into NET-SNMP really has any effect on Zabbix other than being able to use the MIB OID object name rather than the numeric OID.

Comment by richlv [ 2010 Jan 28 ]

then this is a feature request (somehow i can't find an existing one...) for template builder from snmp mib.

until then, http://www.zabbix.com/wiki/scripts/gentemplate.pl seems to be the most functional script to generate templates for snmp devices in an automated fashion.

Comment by Stefan Radman [ 2016 Mar 05 ]

The link http://www.zabbix.com/wiki/scripts/gentemplate.pl is broken.
--Stefan

Comment by richlv [ 2016 Mar 06 ]

yes, it pointed to the old wiki which was in a phase-out state for a long time - if the script was not migrated to zabbix.org, it was probably too outdated and not too useful at that time

Comment by Dimitri Bellini [ 2018 Aug 01 ]

For who are interested on a possible alternative to the old tool to convert MIB file, i would suggest https://github.com/cavaliercoder/mib2zabbix . I think is very great tool!

I also suggest to Zabbix to think about to something similar directly integrated on the main interface





[ZBXNEXT-315] Will be nice to add menu page, for example, Administration->Zabbix info, with info about installed Zabbix server version (if possible with revision number), PHP version and it's modules Created: 2010 Apr 21  Updated: 2012 Oct 22

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

Type: New Feature Request Priority: Major
Reporter: Igor Danoshaites (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: dashboard, widget
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-57 "status of zabbix" should show zabbix... Open

 Description   

Will be nice to add menu page, for example, Administration->Zabbix info, with info about installed Zabbix server version (if possible with revision number), PHP version and it's modules (php-gd, php-bcmath, php-mbstring, etc), the content of php.ini file, etc.



 Comments   
Comment by Oleksii Zagorskyi [ 2010 Jul 10 ]

very similar to ZBXNEXT-57

Comment by Alexey Fukalov [ 2010 Sep 14 ]

dev branch: ZBXNEXT-315

initial info is shown, any ideas what else can be shown?
getting info about server will require additional development for server side.

Comment by richlv [ 2010 Sep 14 ]

hmm... i'd argue that it doesn't make sense to introduce a different page.

this partially duplicates 'status of zabbix'.

so if we are doing this, it would make sense to do it properly. current separate page has the issue of.. being separate, as well as completely visually different from anything else (and i've got enough complaints about user interface inconsistencies and usability sucking in the last few weeks to last for several years...)

so what we should do...

unify config wizard requirements page, "status of zabbix" and this info page in a single page.
"status of zabbix" and sysrequirements partially overlap, because status would show problems only, but not current php config values that frontend requires. so there should be :

  • a section of the page giving high level overview just like "status of zabbix" does;
  • a section of page giving frontend requirements just like config wizard does (so showing the data always, not just errors);
  • low level info just like this new info page does.

and what's important - it all should be visually and functionally consistent. current visual representation leaves a very bad impression.

Comment by Oleksii Zagorskyi [ 2010 Sep 15 ]

I got an idea of how you can do version, revision and server futures checking, and I decided to tell about it.
It can be done so that the server during the start, wrote somewhere in a database with all necessary information (version, revision, compilation time, futures, etc.)
Web Interface will only read this information from the database.
Give the necessary information simply on port 10051 I think is not safe.

It would be nice to resolve this request at the same time
https://support.zabbix.com/browse/ZBX-2512

Comment by richlv [ 2010 Sep 15 ]

yes, server inserting some runtime info in the db was exactly the idea in ZBXNEXT-57

but it would help to save a lot of time by deciding on a consistent implementation. cleaning it up later can turn out to be near impossible, as we have seen way too many times on other areas.

Comment by Igor Danoshaites (Inactive) [ 2011 Nov 16 ]

I am reopening this issue as seems that at this moment we do not plan to implement this feature in v2.0, maybe will be implemented later.

Comment by richlv [ 2012 Apr 23 ]

ZBXNEXT-1194 asks for similar functionality on the api level, these both should probably be resolved together





[ZBXNEXT-967] Logfile monitoring - regular expressions to search multiple lines by agent Created: 2011 Sep 14  Updated: 2024 Apr 08

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 1.8.7
Fix Version/s: 1.8.8

Type: New Feature Request Priority: Major
Reporter: Frank Hirschner Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 6
Labels: logmonitoring, regexps
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 5.6


Issue Links:
Duplicate

 Description   

Logfile monitoring with regular expression is ok. But sometimes you need to search for log entries in more than one line.
More information in this thread: http://www.zabbix.com/forum/showthread.php?t=19641&highlight=Application

Example:

foo
foofoofoo
foofoofoofoo
error and much more
here is the description
foofoofoo
foofoofoofoo

regular expression:

/^error.*\n.*$/m

With this regular expression you will get both lines. But today it is not possible in zabbix



 Comments   
Comment by richlv [ 2011 Sep 14 ]

most likely a dupe of ZBXNEXT-968 - if not, please reopen

Comment by Oleksii Zagorskyi [ 2021 Apr 05 ]

This is not duplicate, reopening it, as time to time people ask for that.

Comment by Gaetano Schuppe [ 2024 Apr 03 ]

We really need this feature. It will likely be the dealbreaker that will make us switch to using the grafana stack for monitoring infra and services.

Comment by Matthew Steeves [ 2024 Apr 03 ]

Hey Rashawn_Johnson, what's you use case?

Comment by Gaetano Schuppe [ 2024 Apr 03 ]

We're trying to monitor the logs of a rails app. Below is an excerpt of the logs

 

I, [2024-04-03T20:00:25.689375 #1]  INFO -- : [d2ec09f4-e1fd-4b05-a49f-2177b80a012b] Started GET "/" for 159.203.36.31 at 2024-04-03 20:00:25 +0000
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/controllers/application_controller.rb:172:in `set_timezone'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/controllers/application_controller.rb:56:in `execute_around_action'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/controllers/application_controller.rb:60:in `switch_locale'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/controllers/service_cards_controller.rb:57:in `endpoint'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/models/endpoint.rb:90:in `perform_action_as_user'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/models/endpoint.rb:83:in `perform_action'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/models/endpoint.rb:83:in `public_send'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/models/trust_adapter.rb:107:in `perform_post'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/services/http_utils.rb:92:in `perform_post'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/services/http_utils.rb:103:in `make_request'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] app/services/http_utils.rb:124:in `make_call'
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9]
[34ea335d-9627-4fc6-8b1f-957d6e2b46e9] URI::InvalidURIError (bad URI(is not URI?): " http://127.0.0.1:2375/v1.24/containers/json"):
E, [2024-04-03T19:59:27.412915 #1] ERROR -- : [34ea335d-9627-4fc6-8b1f-957d6e2b46e9]
I, [2024-04-03T19:59:27.411767 #1]  INFO -- : [34ea335d-9627-4fc6-8b1f-957d6e2b46e9] Completed 500 Internal Server Error in 22ms (ActiveRecord: 16.4ms | Allocations: 2452)
I, [2024-04-03T19:59:26.614839 #1]  INFO -- : [34ea335d-9627-4fc6-8b1f-957d6e2b46e9] Started GET "/fr/identity/password_reset?%F6%7Bconstructor.constructor(13250300)%7D" for 52.60.149.201 >
I, [2024-04-03T17:06:41.466371 #1]  INFO -- : [8eb439ee-af77-486c-93ee-6c4ee3584e0b] Completed 200 OK in 24ms (Views: 5.5ms | ActiveRecord: 13.5ms | Allocations: 4152)
I, [2024-04-03T17:06:41.466201 #1]  INFO -- : [8eb439ee-af77-486c-93ee-6c4ee3584e0b]   Rendered layout layouts/public.html.erb (Duration: 14.7ms | Allocations: 3289)
I, [2024-04-03T17:06:41.441846 #1]  INFO -- : [8eb439ee-af77-486c-93ee-6c4ee3584e0b]   Parameters: {"{constructor.constructor(13246203)}"=>nil, "locale"=>"fr"}
I, [2024-04-03T17:06:41.441700 #1]  INFO -- : [8eb439ee-af77-486c-93ee-6c4ee3584e0b] Processing by Identity::PasswordResetsController#new as HTML

We need to be able to extract the id of requests with error status (`34ea335d-9627-4fc6-8b1f-957d6e2b46e9` in this excerpt) and the error message information which can be found in subsequent lines after the error is logged (on line starting with 'E,'). Different errors will generate different number of error message lines. The request id and message info will then be used in alert messaging. 

We've tried different regex patterns that work in test but always fail with `pattern match not found` till we saw this comment.

 

Comment by Matthew Steeves [ 2024 Apr 06 ]

Yup, that syntax [[:space:]] should work. 2 other ways are the (?s) inline modifier or the \s token. 

If you're ok with ingesting the entire log into the item, then problem solved! One of the above multi-line regex approaches combined with regex lookahead should be enough to match the lines. 
{{If you don't want to keep the entire log file in a Zabbix item, then you'll need a different approach. }}

To capture only the lines of interest into the item, you'll likely need to "pre-process" your log with a script. The script will need to keep track of where it is in the file in between runs, and use awk or perl with the range operator to define the start and end regex's. Then use zabbix-sender to feed that into an item. }}{{The trigger then becomes simple - every time a new item value is received, create a problem. Alternatively, could get the data into Zabbix via }}{{vfs.file.contents[] or log[] item. 

I have a pre-processing script that you could use as a starting point, if you're interested I'll post. 

 

 

Comment by Gaetano Schuppe [ 2024 Apr 08 ]

Thank you Matthew.Steeves for these options. We hadn't looked into pre-processing the logs yet so I'm interested in your script. 





[ZBXNEXT-1022] heartbeat communication for between Zabbix server and agent Created: 2011 Nov 08  Updated: 2014 Nov 08

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

Type: New Feature Request Priority: Major
Reporter: Kodai Terashima Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: heartbeat
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-4284 Possible wrong host (agent!,snmp?) di... Closed

 Description   

Zabbix agent status on Zabbix server has some problems at the moment.

  • Zabbix server make host unreachable if one item cannot retrieve data (network unreachable) from agent. if any user parameter item take a long time, Zabbix server stop monitoring all of other item on same host.
  • If active agent is crashed, Zabbix server doesn't notice that.
  • Agent status on host screen is not actually agent status (Zabbix server calculate internally)

I think it's good that Zabbix server and agent communicate using exclusive heartbeat connection periodically.
If the heartbeat is not successful, Zabbix server move host status to unreachable, and make a event.



 Comments   
Comment by richlv [ 2011 Nov 08 ]

hmm. usual suggestion is to avoid using 'status' item and use agent.ping + nodata() instead - that should solve this issue

Comment by Kodai Terashima [ 2011 Nov 08 ]

I know agent.ping + nodata() solution, but the solution don't solve the first problem
the most important problem is the first one

And, I think check of agent availability is important, but agent.ping + nodata() is difficult for Zabbix beginners.
If we recommend agent.ping + nodata() for all user, I think it's good to implement that function by default, without creation of item and trigger.

Comment by richlv [ 2011 Nov 08 ]

in latest versions userparameters going down still should result in nodata() trigger for agent.ping. would that solve the problem ?

continuing with slow hosts as usual is not feasible, as they would hamper the overall monitoring - such userparameters should be fixed/changed

Comment by Oleksii Zagorskyi [ 2011 Nov 09 ]

Kodai, about "if any user parameter item take a long time, Zabbix server stop monitoring all of other item on same host"
Seems you are partially wrong. See my last debugging ZBX-4284

But this feature request is very interesting overall.

Comment by Kodai Terashima [ 2011 Nov 09 ]

Thank you pointing that out, Oleksiy.

first problem I wrote looks same problem as ZBX-4284. Only one "slow userparameter or check" affect to all of other items on same host. I think it is not good behavior. Zabbix server should only change item status to not supported in this case.

I think heartbeat communication between server and agent (and unreachable host is handled by heartbeat) improve the problem and usability so much.

Comment by Peter Schultz [ 2011 Nov 09 ]

...Only one "slow userparameter or check" affect to all of other items on same host. I think it is not good behavior. Zabbix server should only change item status to not supported in this case. ...

agreed !!!

Comment by missing [ 2012 Nov 03 ]

i had this problem yet,i found something funny that zabbix server will check that server after aboute 320 minutes again.

Comment by Strahinja Kustudic [ 2014 Nov 08 ]

Zabbix setting a host as unreachable just because one item is bad, is the most annoying thing. The biggest problem is that it makes Zabbix unreliable, because if one item times out, the whole host gets disabled, so it stops running other items on that host, which means the host is not being monitored properly.

I think the easiest way to solve this problem is to define items which can make a host unreachable, e.g. it could be a check box in the item create/edit page called "Make host unreachable on time out", or some better name. This way e.g. agent.ping could have that checkbox set and only that item would make the host unreachable.

Comment by richlv [ 2014 Nov 08 ]

that's a different problem which is tracked at ZBX-4284

Comment by Strahinja Kustudic [ 2014 Nov 08 ]

Well it's not a different problem, they are related, since both of them would change how we detect if a host is unreachable.





[ZBXNEXT-2207] Webchecks - Authentication macro support lacking Created: 2014 Feb 10  Updated: 2014 Mar 16

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

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


 Description   

Its possible to use a macro for webchecks and provide a username and password but this is not working 100%:

If the macro parameters are empty, they are still being sent which results in a 401 statuscode response rather than 200.
It is not possible to use a macro for the "authentication" part, to switch between None/Basic/NTLM.

This can be fixed two ways:
1) Do not authenticate if both fields are empty (e.g. contain a macro that is not set on none of the levels)
2) Make it possible to use a macro to switch between the authentication type.



 Comments   
Comment by Frank [ 2014 Feb 10 ]

Actually. It appears to be the case only when the macro has been defined on template level with an empty value.
If nothing is defined it does properly "not authenticate" resulting in a 200 status.

Comment by Oleksii Zagorskyi [ 2014 Mar 05 ]

In any case this is not a bug.
If you like, reopen and move to ZBXNEXT project.

Closed

Comment by richlv [ 2014 Mar 16 ]

moving to feature requests, reopening





[ZBXNEXT-1958] Zabbix agent in vSphere 5.1 Hosts Created: 2013 Oct 09  Updated: 2013 Oct 09

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 2.0.8
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Sistemas Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: ESX
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

VmWare ESXi 5.1 host servers



 Description   

Hello, we're trying to implement zabbix agent in our ESXi 5.1 hosts, it seems not supported by the agent. Any help?



 Comments   
Comment by richlv [ 2013 Oct 09 ]

please use zabbix forums, irc and other channels for community support. this tracker is for bugreports.

Comment by Sistemas [ 2013 Oct 09 ]

I'll rewrite that. I need a compiled or a procedure to install Zabbix Agent in ESX Host. As I'd check in forums there's no way to do it as we deploy the agent.





[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-7048] Rework how `config` table works in mysql database Created: 2021 Nov 12  Updated: 2023 Mar 28

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

Type: Change Request Priority: Minor
Reporter: Jurijs Klopovskis 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-3706 mysql utf8 vs utf8mb4 Closed

 Description   

DB table `config` stores everything in a single row. This poses an issue with mysql limitations on maximum row size. https://dev.mysql.com/doc/mysql-reslimits-excerpt/8.0/en/column-count-limit.html#row-size-limits

In particular:

The internal representation of a MySQL table has a maximum row size limit of 65,535 bytes, even if the storage engine is capable of supporting larger rows. BLOB and TEXT columns only contribute 9 to 12 bytes toward the row size limit because their contents are stored separately from the rest of the row. 

We are reaching this limit with `config` table.

Propose to redesign the way we store data, that currently resides in `config` table, to eliminate this issue altogether.






[ZBXNEXT-4690] Web Scenario should have BOTH Positive & Negative content Match Created: 2018 Aug 15  Updated: 2018 Aug 20

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

Type: New Feature Request Priority: Minor
Reporter: Brian Gilbert Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: usability, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

ALL



 Description   

Web Scenarios should have both a positive and negative Required String (content match).

  1. Word XXXX is required for an OK state.
  2. IF word ZZZZ is present the monitor goes to a PROBLEM state.


 Comments   
Comment by Alexey Pustovalov [ 2018 Aug 16 ]

It is already implemented. You can use "Global regular expression" with "Result is FALSE" condition: https://www.zabbix.com/documentation/3.4/manual/regular_expressions

Comment by Ingus Vilnis [ 2018 Aug 16 ]

Alexey, this would be great if global regular expressions would work in "Required string" field for web scenarios. But they don't :/

Brian, web.page.regexp agent item might be something to look into, but they also have limitations. 

https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/zabbix_agent

Comment by Alexey Pustovalov [ 2018 Aug 16 ]

Yes, I agree, It is also nice idea!

Comment by Ingus Vilnis [ 2018 Aug 16 ]

ZBXNEXT-3806 is about exactly the same problem but a quick test with pcre negative lookahead did not return the desired result. The expression pattern is still evaluated as true thus the scenario step is successful. Some regex magic though might do the trick, I hope. 


^((?!ZZZZ).)*${noformat}
 

Comment by Glebs Ivanovskis [ 2018 Aug 19 ]

Pattern (?s)(?!.*ZZZZ)^ seems to do the trick.

Comment by Ingus Vilnis [ 2018 Aug 20 ]

Gleb, you are spot on as always!

However, if one must ask a top class C developer to solve this configuration request then it can't be considered as a feasible option for everyone. Which makes ZBXNEXT-3806 still valid.

Possible solutions would be additional field for negative match in the scenario step or added support for global regular expressions. 

Comment by Glebs Ivanovskis [ 2018 Aug 20 ]

Perhaps, we can ask martins-v to add this workaround as an example.

Comment by Brian Gilbert [ 2018 Aug 20 ]

This isn't working for me in Ver 3.0... Is this solution for Ver 3.4 ?  After the Regex changes?

Thanks

 

 

Comment by Glebs Ivanovskis [ 2018 Aug 20 ]

Yes, it uses PCRE features.





[ZBXNEXT-4283] Add "nowait" switch for remote commands Created: 2017 Dec 15  Updated: 2017 Dec 19

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), Frontend (F), Proxy (P), Server (S)
Affects Version/s: 3.4.3, 3.4.4
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Evgeny Kravchenko Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix server on Ubuntu 16.04 Server, several zabbix proxies on ArchlinuxARM, and lots of Windows agents



 Description   

Before zabbix 3.4, I used remote commands to automatically update zabbix agents and was happy. But now I can not restart the zabbix agent with a remote command, I can only stop it. Please add the "nowait" switch for remote commands, the same switch as for the system.run[command, nowait] items.



 Comments   
Comment by Vladislavs Sokurenko [ 2017 Dec 15 ]

What if you execute remote commands on zabbix agent ?

Comment by Evgeny Kravchenko [ 2017 Dec 15 ]

Yes, I do so. Like that:
Executing command 'wscript //B //Nologo \\zabbix\zabbix\usr\vbs\setup.vbs /upgrade'
But in step: Shell.Run ZabbixService.PathName & " -x", 0, True
The agent stops along with the wscript subordinate process.
If I use item system.run[wscript //B //Nologo \\zabbix\zabbix\usr\vbs\setup.vbs /upgrade, nowait] then an independent process wscript is created and the update completes successfully.

Comment by Vladislavs Sokurenko [ 2017 Dec 18 ]

As a workaround I suggest to execute remote commands through proxy.

Comment by Evgeny Kravchenko [ 2017 Dec 19 ]

The problem is that now it's not always possible to execute remote commands through a proxy. The solution can be to execute remote commands with "nowait" mode.
The workaround is system.run[commands, nowait] item and enabling/disabling its by Zabbix API.





[ZBXNEXT-4475] Improved Slack support Created: 2018 Apr 02  Updated: 2018 Apr 03

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

Type: New Feature Request Priority: Minor
Reporter: ju5t Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: Slack
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

There are a few solutions out there that make Slack available as a media type in Zabbix. This is great but I think more can be done.

Slack offers interactive message buttons. It would be great if these buttons could be used to acknowledge a trigger in Zabbix.

More information on interactive messages can be found in the Slack-documentation: https://api.slack.com/interactive-messages



 Comments   
Comment by Aleksejs Petrovs [ 2018 Apr 03 ]

Hello ju5t,

There is no "out-of-the-box" support for Slack in Zabbix. Integration with Slack is done through the custom script shared in our community by the developer of the script. If you have any suggestions - try to contact him directly.

Regards,
Aleksejs!

Comment by Aleksejs Petrovs [ 2018 Apr 03 ]

Since this is not directly related to the Zabbix - I'm closing this request as Won't Fix

Thank you for understanding.

Regards,
Aleksejs!

Comment by ju5t [ 2018 Apr 03 ]

I know there isn't out of the box support for Slack yet. We're using a similar script as the one you referenced.

Interactive messages need an endpoint where they can post their data to. I think it is far beyond the scope of a community contributed media script to do this. You would have to setup your own webserver to redirect these requests over an API call to Zabbix or change the core of Zabbix to accept POST requests formatted by Slack and convert them into an API call.

It makes more sense to support this as an official media type in Zabbix.





[ZBXNEXT-5130] Improved usability of "Enabled/Disabled" host status switch Created: 2016 May 17  Updated: 2019 Mar 26

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

Type: Change Request Priority: Minor
Reporter: Pavel Amosov (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: frontend, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File old-new-status-switch.png     PNG File zbx-enabled-disabled2.png    

 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Jul 19 ]

Design available in development branch svn://svn.zabbix.com/branches/dev/ZBX-10810 .

Comment by Aleksandrs Saveljevs [ 2016 Jul 19 ]

(1) Similarly to ZBX-10777, we should probably not use clip() in CSS.

PavelA REMOVED in r61105

Comment by Aleksandrs Saveljevs [ 2016 Jul 19 ]

The new design looks good (actually, it is wonderful!), but it does not currently seem to be applicable very much to lists of things (but can be applied in settings like media settings in a user's profile). For instance, in the host list, we display a confirmation dialog. The checkbox should not change its visual state until the user has confirmed his action. Also, since such pages are currently reloaded, animation is not very useful. It may become useful if we later change to AJAX requests. So, in addition to the current widget, there is a need for a non-animatable status switch that can be clicked and wrapped into a link.





[ZBXNEXT-2935] Housekeeper option to remove orphan items from history Created: 2015 Aug 31  Updated: 2015 Sep 01

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

Type: Change Request Priority: Minor
Reporter: Harry Coin Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: database, housekeeper, orphaned
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

All


Attachments: JPEG File Screenshot_2015-08-31_10-49-57.jpg    

 Description   

I've found over a period of years a zabbix-server + mysql combination will cause this query, which should be empty, to nevertheless find a dozen or so items corresponding to millions of orphaned history rows. Housekeeping runs complete without removing these.

select distinct(itemid) FROM `history` where itemid not in (SELECT itemid FROM `items`);

I could be missing some zabbix use case, zabbix is not my primary focus. Maybe there's a 'retired item' table somewhere. But if I'm not, for those of us who would rather have the database space than retain a history of deleted items, consider adding a housekeeping flag to delete such orphans automatically. Perhaps a database rule to cause item deletes to cascade delete related history entries?

Finally, my appreciation for creating and supporting such a useful tool!



 Comments   
Comment by richlv [ 2015 Aug 31 ]

see housekeeper table, it holds a list of deleted items and housekeeper deletes all data for those items following different rules. i guess we can close this issue then - please reopen if there's still a need to do something

Comment by Harry Coin [ 2015 Aug 31 ]

Kindly note the housekeeper has been running for the same years these orphan items exist. Before posting I double checked to make sure the housekeeper completed its run, changing the number of items to process per run to unlimited. Even when that had completed, these history entries describing events that happened to itemids not in the items table remained. I rebooted a few times, let the housekeeper complete, and yet millions of records referring to item record ids not in the items table remain.

So, closing this item on the basis the housekeeper would take care of it needs further explanation.

Comment by Harry Coin [ 2015 Aug 31 ]

See reply above.

Comment by richlv [ 2015 Aug 31 ]

in general, it would be best to discuss things like this in one of the options at https://www.zabbix.org/wiki/Getting_help - irc would be a great place - but in any case, you did not specify zabbix version. if it's a recent one and you have upgraded, check that housekeeper is enabled at all in administration -> general -> housekeeping

Comment by Harry Coin [ 2015 Aug 31 ]

I do think the housekeeper has been properly enabled and configured. Note the version is also in the shot, 2.2.

Comment by Harry Coin [ 2015 Aug 31 ]

Really, just a feature request for an option to delete all references everywhere to items that no longer exist.

Comment by richlv [ 2015 Sep 01 ]

as noted, that is supposed to happen already. please use https://www.zabbix.org/wiki/Getting_help to discuss the details, until a specific bug or feature request can be reported.

Comment by Harry Coin [ 2015 Sep 01 ]

Also as noted, though it was supposed to happen, it was not happening. So here we are on this page where I think it's created to ask for features.

To be clear: The feature requested is a server command line one-of recovery option to delete every orphan item in the database and generally not proceed until the database is in a known consistent state.

Having done this manually, finding a few thousand orphan records in trends* and several million orphan records in history* not mentioned in houskeeper and also not in items I think I've presented a reasonable use case. Look at it this way, if the server flag finds nothing to do it can act as an integrity check and so give confidence the server is about to begin operations on a known-good platform.

It's a reasonable enough feature request IMHO.

Comment by Oleksii Zagorskyi [ 2015 Sep 01 ]

Not absolutely sure, but there can be other use cases.
For example we delete a child node (which passed its history to master) on master.
As I recall it was discussed already in other issues.





[ZBXNEXT-3531] Create "Howtos" section in documentation Created: 2016 Nov 11  Updated: 2019 Oct 18  Due: 2016 Dec 30

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D)
Affects Version/s: None
Fix Version/s: None

Type: Epic Priority: Minor
Reporter: Vladimir Silin (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Name: "Howtos" in documentation
Sprint: Sprint 20

 Description   

This task covers creation of "HowTos" section in https://www.zabbix.com/documentation/3.4/playground/playground/howtos and includes the following subtasks included/linked below:

  • 1 Getting started
    • How to add server to monitoring
    • How to configure a user
    • How to create a user group
    • How to define a problem state
    • How to receive a problem notification
    • How to receive a single metric
  • 2 Network discovery
    • How to auto-register an agent device
    • How to discover a file system
    • How to discover a Linux server
    • How to discover a network interface
    • How to discover an SNMP device
    • How to discover a Windows service
    • How to discover SNMP OIDs
  • 3 Service monitoring
    • How to monitor DNS availability
    • How to monitor FTP availability
    • How to monitor HTTP availability
    • How to monitor HTTPS availability
    • How to monitor IMAP availability
    • How to monitor LDAP availability
    • How to monitor NNTP availability
    • How to monitor POP availability
    • How to monitor SMTP availability
    • How to monitor SSH availability
    • How to monitor TCP availability
    • How to monitor Telnet availability
  • 4 Server monitoring
    • How to aggregate metric values
    • How to calculate metric values
    • How to monitor disk statistics
    • How to monitor filesystems
    • How to monitor memory data
    • How to monitor network traffic
    • How to monitor operating system data
    • How to monitor processor load
    • How to monitor sensor readings
    • How to monitor server availability
    • How to monitor SLA
    • How to monitor statistics per process
  • 5 Log file monitoring
    • How to extract values from a log line
    • How to monitor a log file
    • How to monitor a log file with file rotation support
  • 6 Network device monitoring
    • How to monitor an IPMI device
    • How to monitor an SNMP device
  • 7 Web service monitoring
    • How to monitor web page availability
    • How to monitor web page content
  • 8 Virtual machine monitoring
    • How to monitor a VMWare environment
  • 9 Application monitoring
    • How to monitor JBoss
    • How to monitor MySQL
    • How to monitor Nginx
    • How to monitor PosgreSQL
    • How to monitor Tomcat
  • 10 Problem notifications
    • How to execute a remote command
    • How to get notified by e-mail
    • How to get notified by SMS
  • 11 Visualization
    • How to compare several metrics in a graph
    • How to create a custom graph
    • How to create a screen
    • How to create network maps
    • How to view a single-metric graph
  • 12 Templates
    • How to apply a template to host
    • How to create a template
    • How to export a template
    • How to import a template


 Comments   
Comment by Rostislav Palivoda [ 2017 Feb 02 ]

All sub-tasks done. Review required.

Comment by Vladimir Silin (Inactive) [ 2017 Feb 24 ]

Please assign linked issues for content review.





[ZBXNEXT-3341] Automatically map unsupported characters in performance counter path instance name Created: 2016 Jul 19  Updated: 2016 Oct 21

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 3.0.3
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Morten Egebæk Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File ZBXNEXT-3341.patch     File ZBXNEXT-3341.patch     Text File zabbix_agentd _x86.log     Text File zabbix_agentd.log     File zabbix_agentd_x64.exe     File zabbix_agentd_x64.exe     Text File zabbix_agentd_x64.log     File zabbix_agentd_x86.exe     File zabbix_agentd_x86.exe    

 Description   

We have a Network interface discovery where we make these : (Network interface discovery)

perf_counter["\510({#IFNAME})\544",300]
perf_counter["\510({#IFNAME})\388",300]

BUT when there is this interface (as seen in Device Manager and the same in list for net.if.discovery):
Intel(R) 82574L Gigabit Network Connection
the interface name in Performance Monitor is :
Intel[R] 82574L Gigabit Network Connection

therefore for discovered interfaces we get this error:
ZBX_NOTSUPPORTED: Cannot obtain performance information from collector.
because the interface name is with () but the item in perf_counter item needs to be specified with [ ] to be working.



 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Jul 19 ]

More generally, this issue can be summarized as being able to post process values received in LLD JSON, which is a special case of ZBXNEXT-1443, so moving the issue to ZBXNEXT.

Comment by Aleksandrs Saveljevs [ 2016 Jul 19 ]

One potential solution may be to use macro functions introduced in ZBXNEXT-1638, like so:

perf_counter["\510({{#IFNAME}.tr("()", "[]")})\544",300]
perf_counter["\510({{#IFNAME}.tr("()", "[]")})\388",300]
Comment by Aleksandrs Saveljevs [ 2016 Jul 19 ]

Meanwhile, as a workaround, you can try discovering your interfaces with a script.

Comment by Oleksii Zagorskyi [ 2016 Jul 19 ]

As I know "net.if.discovery" key should return network interfaces exactly as they are named in perfmon.
Can we get profs that it's not true ?

Comment by Morten Egebæk [ 2016 Jul 19 ]

the net.if.discovery works perfect, byt it's the perf_counter where the () is replaced with []

The Counter in Zabbix:Intel(R) 82574L Gigabit Network Connection - Packets Received Errors
the perf counter: Intel[R] 82574L Gigabit Network Connection - Packets Received Errors

Comment by Oleksii Zagorskyi [ 2016 Jul 19 ]

clarify please who and what replaced ?

Comment by Morten Egebæk [ 2016 Jul 19 ]

zabbix: perf_counter["\510(Intel(R) 82574L Gigabit Network Connection)\530",300]
Perfmon perf_counter["\510(Intel[R] 82574L Gigabit Network Connection)\530",300]
if i use "perf_counter["\510(Intel[R] 82574L Gigabit Network Connection)\530",300]" as a normal Item it works

Comment by Oleksii Zagorskyi [ 2016 Jul 19 ]

do you want to say that during lld-discovery created item keys get (R) instead of [R] ?

Comment by Morten Egebæk [ 2016 Jul 19 ]

no the interface is with (R) but the item i perfmon is with [R]
Can it be translatet to [R] within the LLD

something like : perf_counter"\510({{#IFNAME}.tr("()", "[]")})\388",300

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

Based on this agent should probably do so:

If the instance name is automatically generated and might contain the characters "(", ")", "#", "\", or "/", use the character mapping in the following table.

Character Mapped character
( [
) ]
# _
\ _
/ _
Comment by Morten Egebæk [ 2016 Jul 19 ]

that is correct, but i don't work:

the counter in Windows is : \Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Total/sec
but the zabbix is \Network Interface(Intel(R) 82574L Gigabit Network Connection)\Bytes Total/sec

and i get a "Cannot obtain performance information from collector."

Comment by Morten Egebæk [ 2016 Jul 19 ]

The Log files shows this:
816:20160719:142729.411 In add_check() key:'perf_counter["\510(Intel(R) 82574L Gigabit Network Connection)\528",300]' refresh:120 lastlogsize:0 mtime:0
816:20160719:142729.411 End of add_check()

->
816:20160719:142735.802 active check "perf_counter["\510(Intel(R) 82574L Gigabit Network Connection)\528",300]" is not supported: Cannot obtain performance information from collector.

->

816:20160719:142735.802 counter path converted to '\\BCAVES12\Network Interface(Intel(R) 82574L Gigabit Network Connection)\Packets Received Errors'
816:20160719:142735.802 In get_perf_counter_value_by_path() path:\\BCAVES12\Network Interface(Intel(R) 82574L Gigabit Network Connection)\Packets Received Errors interval:300
816:20160719:142735.802 In add_perf_counter() counter:'\\BCAVES12\Network Interface(Intel(R) 82574L Gigabit Network Connection)\Packets Received Errors' interval:300
816:20160719:142735.802 add_perf_counter(): unable to add PerfCounter '\\BCAVES12\Network Interface(Intel(R) 82574L Gigabit Network Connection)\Packets Received Errors': [0x800007D1] The specified instance is not present.
816:20160719:142735.802 End of add_perf_counter(): SUCCEED
816:20160719:142735.802 get_perf_counter_value_by_path(): unable to add PerfCounter '\\BCAVES12\Network Interface(Intel(R) 82574L Gigabit Network Connection)\Packets Received Errors': [0x800007D1] The specified instance is not present.
816:20160719:142735.802 End of get_perf_counter_value_by_path():FAIL
816:20160719:142735.802 End of PERF_COUNTER():unknown

Comment by Morten Egebæk [ 2016 Jul 19 ]

When i try truh typeperf i get an error on () but not on []:

C:\Windows\system32>typeperf "\\BCAVES12\Network Interface(Intel(R) 82574L Gigabit Network Connection)\Bytes Total/sec"
"(PDH-CSV 4.0)"
"07/19/2016 14:34:17.509","-1"
"07/19/2016 14:34:18.509","-1"
"07/19/2016 14:34:19.525","-1"
Error:
The data is not valid.

C:\Windows\system32>typeperf "\\BCAVES12\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Total/sec"
"(PDH-CSV 4.0)","\\BCAVES12\Network Interface(Intel[R] 82574L Gigabit Network Connection)\Bytes Total/sec"
"07/19/2016 14:34:28.353","2061.744397"
"07/19/2016 14:34:29.368","1775.246758"
"07/19/2016 14:34:30.368","1959.545897"
"07/19/2016 14:34:31.368","3192.053730"
The command completed successfully.

so it seeams that the character mapping is not working

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

Dear [email protected]!

Can you please test attached agent binaries? They are compiled from the current trunk (without encryption) with attached patch that automatically maps characters in performance counter instance name.

Would be very nice if you'd provide the log file of the test with DebugLevel=4.

Comment by Morten Egebæk [ 2016 Jul 20 ]

Here are the logs, the app is Crashing (it's testet on a Windows 2012R2)
25692:20160720:080325.784 Unhandled exception c0000005 detected at 0x00417D63. Crashing ...
25692:20160720:080325.785 ====== Fatal information: ======
25692:20160720:080325.785 Program counter: 0x417d63
25692:20160720:080325.786 === Registers: ===
25692:20160720:080325.787 edi = 1 = 1 = 1
25692:20160720:080325.787 esi = 9fb290 = 10465936 = 10465936
25692:20160720:080325.788 ebp = 10fedf4 = 17821172 = 17821172
25692:20160720:080325.788 ebx = 9f6708 = 10446600 = 10446600
25692:20160720:080325.789 edx = 0 = 0 = 0
25692:20160720:080325.789 eax = 0 = 0 = 0
25692:20160720:080325.790 ecx = 0 = 0 = 0
25692:20160720:080325.790 esp = 10fedb8 = 17821112 = 17821112
25692:20160720:080325.790 efl = 10246 = 66118 = 66118
25692:20160720:080325.791 csgsfs = 232b5300 = 590041856 = 590041856
25692:20160720:080325.791 === Backtrace: ===

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

Oops... Seems like it is crashing if there is no instance name in performance counter path. Added a condition to check that. Please test updated binaries.

Comment by Morten Egebæk [ 2016 Jul 20 ]

That worked

here is the log file..

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

I'm glad to hear that!

Thank you very much for testing!

Comment by Glebs Ivanovskis (Inactive) [ 2016 Aug 16 ]

In general case proposed patch will not work.

Syntax for performance counter path is the following:

\\computer\object(parent/instance#index)\counter

If any of computer, object, parent, instance, index or counter contains '\', '/', '#', '(' or ')' it will spoil the operation of PdhParseCounterPath().

So, for example we have network interface
Intel(R) PRO/1000 MT Network Connection (as we see it in Device Manager and how it returned to net.if.discovery key)
and performance counter
\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Current Bandwidth:

  • perf_counter[\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Current Bandwidth] works perfectly with and without patch;
  • perf_counter[\Network Interface(Intel(R) PRO_1000 MT Network Connection)\Current Bandwidth] works only with patch applied;
  • perf_counter[\Network Interface(Intel(R) PRO/1000 MT Network Connection)\Current Bandwidth] does not work even with patch applied.

Indeed, in the last case we can't say whether "Intel(R) PRO/1000 MT Network Connection" should be treated as one-piece instance or as parent="Intel(R) PRO" and instance="1000 MT Network Connection".

Generally speaking, we can't map characters in LLD macros in perf_counter[] parameter too, because user might be discovering whole counter path.

One possible solution is to change perf_counter[path,<interval>] syntax to perf_counter[<computer>,object,<parent>,<instance>,<index>,counter,<interval>]. This will be explicit, but ugly.

Solution proposed by asaveljevs is more elegant and more general-purpose, but will require significantly more effort to implement.

Comment by Glebs Ivanovskis (Inactive) [ 2016 Aug 18 ]

I've done some code browsing and here is what I've found out.

Adding macro function is relatively easy, it boils down to one else if (...) in zbx_calculate_macro_function() and one function doing dirty job. But current token parser understands macro functions only for simple macros, no user macros and no LLD macros. Managing locations and macros, for which we support new functions, need interventions in huge and complicated substitute_simple_macros() function. And as a bonus there is a fact that LLD macros and all other macros are processed in two passes using two different functions...

Comment by Oleksii Zagorskyi [ 2016 Oct 21 ]

some zabbix users use custom lld script to get correct interface names from WMI ...





[ZBXNEXT-3155] Dropbox for selecting screen disappear in screen view Created: 2016 Feb 18  Updated: 2017 May 31

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D)
Affects Version/s: 3.0.0
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Juan Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

On the top right corner on 2.4.6 we use to have a dropbox to change between screens. Now that dropbox is no longer there.



 Comments   
Comment by Oleksii Zagorskyi [ 2016 Feb 19 ]

See http://zabbix.org/wiki/Docs/bug_reporting_guidelines
and https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300
Closed.

Comment by Juan [ 2016 Feb 19 ]

@zalex_ua I did discuss this in the IRC and I was told to open a issue since the dropbox is actually missing.

In the whats new doc you point I see the entry "Map, screen and slide show listings can now be filtered by name." But I dont see anywhere saying you were getting rid of the dropbox.

I see that you don't see this as bug but perhaps It could be a "Feature request" to be able to change between screens in a faster way ?

Comment by richlv [ 2016 Feb 19 ]

indeed, as a minimum removal of the dropdown should go in the upgrade notes...

Comment by Oleksii Zagorskyi [ 2016 Feb 20 ]

Now there is a well noticeable link "All screens" instead of the drop down.
That part was redesigned a lot and mentioned a bit at at https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300#new_web_interface

I don't think at makes much sense to document every "new pixel" of reworked 3.0 interface.
Otherwise we could go too far when trying to document each "new pixel"

Comment by richlv [ 2016 Feb 21 ]

that's slightly downplaying removal of a dropdown calling it a "new pixel"
a functional change that should have went in the upgrade notes before users report it as a regression...

Comment by Oleksii Zagorskyi [ 2016 Feb 21 ]

ok ok, reopened ....

Comment by richlv [ 2016 Feb 23 ]

...also here's an example of it done properly for the 2.4 latest data changes
https://www.zabbix.com/documentation/2.4/manual/installation/upgrade_notes_240#changes_in_latest_data_page





[ZBXNEXT-1212] Adding JMX/SNMP/IPMI interfaces with Auto-registration Created: 2012 May 01  Updated: 2020 Oct 28

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F), Java gateway (J), Server (S)
Affects Version/s: 2.0.0
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Igor Urazov Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 39
Labels: actions, autoregistration, jmx
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Doesn't matter


Issue Links:
Causes
Duplicate
is duplicated by ZBXNEXT-2072 Add host interfaces to Host Prototype Closed

 Description   

It would be nice if there is some way to automatically add JMX interface to auto-registered host, so template with JMX items could be linked automatically. Maybe another operator for action, like "Add interface" with requirements to specify type and port.



 Comments   
Comment by timmi [ 2012 Jun 21 ]

it would be very useful, especially for clouds

Comment by Chris Johnston [ 2012 Aug 01 ]

Happy with the auto-registration functionality in 2.0.2 but this would be a significant improvement when using Zabbix to monitor elastic cloud hosts and applications. Same for snmp/impi.

Comment by Max Lock [ 2012 Nov 07 ]

Maybe run script action as well? you could run external code that hits the API to do anything you want then.

Comment by ralphhu [ 2013 Feb 03 ]

i need this feature too. auto add snmp and impi interface!

Comment by prakhar jauhari [ 2013 Feb 22 ]

There has to be a option using which we can enable SNMP, JMX interface on auto registered hosts..

Comment by Noah Leaman [ 2013 Mar 11 ]

I need this as well. Specifically the SNMP interface in my case. The snmp based templates I used to auto link in 1.8 now are not able to be linked which, in my case, breaks all the templates assignments because the snmp template was linked with the main "default" template being linked during the auto reg process.

Comment by Noah Leaman [ 2013 Mar 27 ]

This should not be considered just an improvement requests. Auto linking broke from version 1.8 to 2.0 for people who auto link snmp templates. It's a regression.

Comment by Anton [ 2013 Jun 14 ]

Support. This is a very useful functionality.

Comment by Patrick Hemmer [ 2016 Apr 17 ]

This was also a significant problem for us because of auto-linking. Because we have templates with items which need JMX, auto registration failed to link ALL templates, not just the items (or at the very least, the templates) that need JMX. So the host would get added with no monitoring at all.

I ended up fixing this by adding a database trigger to auto add the JMX interface when the Agent interface is added. This allowed the auto-registration with template linking to work. Yes it ends up adding a JMX interface to all hosts, even those without JMX, but unless a monitoring item tries to use the JMX interface, nothing complains.

Below is the trigger for anyone interested in it. It's made for postgres. You'll likely need to change the port from 9810 to your JMX port:

CREATE OR REPLACE FUNCTION interface_create_jmx() RETURNS TRIGGER as $$
  BEGIN
    IF new.type != 1 OR new.main != 1 THEN
      RETURN NULL;
    END IF;
    BEGIN
      INSERT INTO interface (hostid,main,type,useip,ip,dns,port,bulk, interfaceid) SELECT new.hostid, 1, 4, new.useip, new.ip, new.dns, 9810, new.bulk, nextid+1 FROM ids WHERE table_name='interface' AND field_name='interfaceid';
      UPDATE ids SET nextid=nextid+1 WHERE table_name='interface' AND field_name='interfaceid';
    EXCEPTION
      WHEN unique_violation THEN
        -- do nothing
    END;
    RETURN NULL;
  END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER interface_create_jmx AFTER INSERT ON interface
  FOR EACH ROW EXECUTE PROCEDURE interface_create_jmx();
Comment by Jon Beilke [ 2016 Nov 11 ]

+1 we really need this for SNMP/JMX monitoring of auto-registered hosts.

Comment by Noah Leaman [ 2016 Nov 17 ]

Back in early 2013, we were almost forced to move off Zabbix due the feature-breaking change back when 2.0 was released. We had to develop an external automation system that used various API calls just to allow auto-registrations to continue to work with SNMP linked templates.

It's sad to have to used a kludge just because we chose to use linked templates.

Comment by Jon Beilke [ 2017 Feb 24 ]

Used a setup similar to what Patrick did, but we use the zabbixapi gem to workaround this for now. Requires a script that fires during auto-registration to determine the system type, add the JMX interface, and then has to apply the templates with JMX items afterwards.

Would really streamline our process to have JMX interface and templates applied without needing the separate actions/scripts.

Comment by Jacek Lakomiec [ 2017 May 23 ]

This would be useful functionality in a large cloud environments hosting Java applications. Especially if you link templates to hosts matching certain auto registration criteria (for example: HostMetadata contains string "Cassandra" or "Elasticsearch"), you end up in a situation where adding JMX interface has to be done either manually or with post registration external scripts. Upvoted!

Comment by Venugopal Paccha [ 2017 Jun 22 ]

I came across same issue, however interface automation during auto-registration can be achieved through ansible zabbix module. We have successfully implemented in our environments.

Comment by Alexei Vladishev [ 2020 Oct 28 ]

I believe it has been implemented under https://support.zabbix.com/browse/ZBXNEXT-2072 in Zabbix 5.2.

Comment by Alexei Vladishev [ 2020 Oct 28 ]

Sorry, didn't notice that it is about auto-discovery, re-opened.





[ZBXNEXT-1146] Application with name '-' is shown as no applications in item applications list Created: 2010 Oct 25  Updated: 2017 May 31

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

Type: Change Request Priority: Minor
Reporter: Alexey Fukalov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: applications, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Create application with name '-', add item to it.
In items list in applications column its not possible to distinct items with no applications and items that belongs to application '-'



 Comments   
Comment by Alexei Vladishev [ 2012 Feb 21 ]

I think it shouldn't be considered as a bug. I am closing it.

Comment by richlv [ 2012 Mar 12 ]

well, it is a usability bug, although a very minor one. moving to zbxnext instead





[ZBXNEXT-2042] inconsistent alias & userparam syntax Created: 2013 Nov 20  Updated: 2017 May 31

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 2.2.0
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: aliases
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

userparameters use comma to delimit item key from command, aliases use colon to delimit item key from substituted key.

this is quite confusing and inconsistent.

of course, can only be fixed in a major version with a proper upgrade note.



 Comments   
Comment by Alexei Vladishev [ 2013 Nov 25 ]

It's not a bug.





[ZBXNEXT-1819] New graph type 'Bars' Created: 2013 Jul 11  Updated: 2019 Jun 12

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

Type: New Feature Request Priority: Minor
Reporter: Marc Assignee: Unassigned
Resolution: Unresolved Votes: 11
Labels: bars, graphs
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File bar_charts.png    
Issue Links:
Duplicate
duplicates ZBXNEXT-854 Support Bar Graphs Closed

 Description   

Would be nice to have additionally the graph types 'Bars' and 'Stacked bars' available for Graphs.

Examples by D3.js:
http://bl.ocks.org/mbostock/3885304
http://bl.ocks.org/mbostock/3886208



 Comments   
Comment by richlv [ 2013 Dec 07 ]

closing duplicate; thanks to volter for pointing it out

Comment by Marc [ 2013 Dec 07 ]

I was aware of ZBXNEXT-854 and thought it follows a different intention.

This ticket is about rendering every single value of an item as an dedicated bar in a graph - no visually connection between values

If I'm wrong and ZBXNEXT-854 aims the same feel free to close this issue again.

Comment by Volker Fröhlich [ 2013 Dec 09 ]

We started a D3 initiative: https://www.zabbix.org/wiki/Docs/maps_charts_d3

Comment by Marc [ 2015 Mar 12 ]

The timeSeries widget of zabbix-d3js-widgets shows a similar and possibly better solution.





[ZBXNEXT-3069] No availability information for prototyped hypervisor hosts? Created: 2013 Nov 07  Updated: 2015 Dec 11

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

Type: Change Request Priority: Minor
Reporter: Henrik Johansen Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: vmware
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

zabbix_server -V
Zabbix server v2.2.0rc2 (revision 40078) (06 November 2013)
Compilation time: Nov 6 2013 21:20:12



 Description   

Normally you would find availability (and error) information for hosts under "Configuration -> Hosts" in the right most colum (Agent, SNMP, JMX, IPMI icons).
Hosts that are prototyped using the builtin VMware templates do not have that information making debugging of unsupported items, etc much more difficult.



 Comments   
Comment by Oleksii Zagorskyi [ 2015 Sep 18 ]

That's not possible by design as vmware keys do not use host interfaces.
And under one zabbix host you can actually monitor several independent vcenter/hypervisor.

I'm closing it as wont fix.
Feel free to reopen AND move it to ZBXNEXT if you like.

Comment by richlv [ 2015 Dec 11 ]

looks like currently inability to connect to vmware api will mark all vmware items as unsupported. this reduces the visibility of the environment and results in a fairly massive amount of database updates in large environments.

i would support reopening this one and moving it to zbxnext to implement proper host state for such cases.

Comment by Oleksii Zagorskyi [ 2015 Dec 11 ]

moved





[ZBXNEXT-2506] support axfr record type for zone transfer in net.dns[] and net.dns.record[] items Created: 2014 Oct 09  Updated: 2024 Jan 08

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 2.4.1
Fix Version/s: None

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


 Description   

AXFR record type is useful to get a list of DNS records for a zone:

$ dig -t axfr example.com @192.168.1.1 | head -10

; <<>> DiG 9.9.5-4-Debian <<>> -t axfr example.com @192.168.1.1
;; global options: +cmd
example.com.             86400   IN      SOA     ns1.example.com. admin.example.com. 2011100600 3600 1800 604800 3600
example.com.             86400   IN      NS      ns1.example.com.
alice.example.com.       86400   IN      A       192.168.1.2
bob.example.com.         86400   IN      A       192.168.1.3
bob.example.com.         86400   IN      A       192.168.1.4
bob.example.com.         86400   IN      AAAA    38a1::3
bob.example.com.         86400   IN      AAAA    38a1::4
...

Not all DNS servers allow zone transfer, because that might not be good from a security perspective.

So AXFR support in Zabbix agent would be useful for monitoring the DNS security setup, as well as zone content, too.



 Comments   
Comment by Artjoms Rimdjonoks [ 2024 Jan 05 ]

In ZBXNEXT-8721 net.dns.get was added, which greatly increased the scope of the supported record types.
However, the AXFR / zone transfer support was not added.

FYI akalimulin

<arimdjonoks> development of axfr support still would require a new untrivial code to be added, so it will stay for hold for now, due to low demand





[ZBXNEXT-2574] ad-hoc graphs do not keep period upon page refresh Created: 2014 Oct 24  Updated: 2017 May 31

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: adhocgraphs, graphs, timeperiod
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

open ad-hoc graph, change time period, refresh page - period is reset to one hour.

this behaviour is not consistent with simple graphs, custom graphs, webmonitoring, screens, audit... any other page with the time period bar.

we could either save one value for all ad-hoc graphs, or keep last 5 combinations of items or any other approach that would be sensible



 Comments   
Comment by Arvids Godjuks (Inactive) [ 2014 Nov 06 ]

After a discussion, it was agreed that this is not fixable as a bugfix in any sane way. A proper development is required, that touches all the graphs is required to properly fix this issue and prevent other odd things happening with the graphs, including the ability to open the same item's multiple graphs and keep their local period and time settings between refreshes.

Probably should be converted into ZBXNEXT.

<richlv> even though not easy to fix, it is still a functional bug - hiding it would not be a good approach

Comment by Alexander Vladishev [ 2014 Nov 07 ]

Moved to ZBXNEXT project.





[ZBXNEXT-2515] Saving Adhoc graphs Created: 2014 Oct 15  Updated: 2021 May 25

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

Type: New Feature Request Priority: Minor
Reporter: chris scott Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 12
Labels: adhocgraphs
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Any


Issue Links:
Duplicate
is duplicated by ZBXNEXT-2731 Ability to save an ad-hoc graph as a ... Closed
is duplicated by ZBXNEXT-3548 Create a way for saving adhoc graphs/... Closed

 Description   

Adhoc graphs are great, nice and simple. Data pulled in from different hosts etc. However when I do an adhoc graph for my manager and he likes it he wants it view it later at his leisure. He is a buffoon though and doesnt understand zabbix, and he cant understand why i cant save the graphs i have just made for him. Makes the software look bad in his eyes. Should be simple enough yes?

keywords: ad-hoc



 Comments   
Comment by richlv [ 2014 Oct 15 ]

note that reusing the url should provide the same graph - maybe that works as a workaround for now

Comment by Vinod Seraphin [ 2017 Feb 27 ]

Really need a way of saving these ad hoc graphs and then bringing them in as part of a configured screen.

Comment by Marc [ 2017 Feb 27 ]

Possibly as a bookmark? ZBXNEXT-1680

Comment by James Byles [ 2018 Apr 23 ]

Ad-hoc graphs on dashboards would be amazing  

Comment by felipe [ 2018 Jul 25 ]

Saving ad-hoc graphs for displaying them in dashboards would be a really good feature.

Comment by Alexei Vladishev [ 2021 May 21 ]

We support this functionality since Zabbix 5.0 or 5.2. Click on any graph widget in dashboard and then press "Download image". That's it!

Comment by Alexei Vladishev [ 2021 May 21 ]

We support this functionality since Zabbix 5.0 or 5.2. Click on any graph widget in dashboard and then press "Download image". That's it!

Comment by Raymond Kuiper [ 2021 May 25 ]

I think this issue isn't meant to "download" the graph as a file, but rather to save the graph as a "favorite" so you can later have a look at the same metrics without having to compose the graph from scratch.

Comment by Alexei Vladishev [ 2021 May 25 ]

qix, you are right, I misunderstood it. Reopened!





[ZBXNEXT-2599] proc.num on linux includes OS threads in process count Created: 2014 Oct 23  Updated: 2014 Nov 19

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: David Nolan Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: patch, proc.num
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux zabbix-agent


Attachments: Text File proc.num-ignore-threads.patch    

 Description   

On Linux, if the process being counted has spawned an OS-level thread, that appears as a process in /proc and is included in the proc.num output. This makes proc.num[<daemon>] return a number >1 occasionally for daemon's that periodically spawn a thread.

The attached patch compares the thread group ID from /proc/<pid>/status to the pid and if they do not match ignores the thread.



 Comments   
Comment by Alexander Vladishev [ 2014 Oct 30 ]

Related issue with FreeBSD: ZBX-4704

Comment by Igors Homjakovs (Inactive) [ 2014 Nov 06 ]

David, which Linux distibution are you using and what kernel version?

Comment by David Nolan [ 2014 Nov 06 ]

This is on a Ubuntu based amazon image, with kernel 3.13.0-29-generic

Comment by Igors Homjakovs (Inactive) [ 2014 Nov 07 ]

Thank you David.

I would appreciate if you could give us some information about the multi-threaded process that return proc.num count >1 on your system. Is it some open source product or your own code?

I assume, in your case, the spawned processes have different PIDs, but share the same TGID, is that correct?

According to the documentation:

With NPTL, all of the threads in a process are placed in the same thread group; all members of a thread group share the same PID.

Comment by David Nolan [ 2014 Nov 07 ]

Igors,

This is an application implemented in Go. Go does not use pthreads by default, it provides its own threading implementation. Most goroutines (application threads) exist within a single OS thread, but when Go detects one goroutine is blocking it automatically spawns another OS thread and migrates all other goroutines to that thread.

Thus the behavior that we see is that proc.num[someapp] will be 1 most of the time, but during those moments where Go has spawned a second thread it will be 2 (or higher). The additional threads have different PIDs but the same TGID. So a zabbix trigger on proc.num[someapp]#1 will fire in error during those times.

Comment by Igors Homjakovs (Inactive) [ 2014 Nov 13 ]

David,

We were unable to replicate the situation when Go spawns an OS thread with different PID, when goroutine is blocked, keeping the same TGID.
This means that in some cases, similar to the one you have, Go's threading implementation spawns a new process instead of a thread.

Normally, it is expected that each process, or independently scheduled execution context, has its own process descriptor. On the other hand, threads in the same group have a common PID. Therefore, the result returned by proc.num[] cannot be considered as incorrect, since it shows that there are multiple processes of the same app at the certain period of time.

Since in your case, this behaviour is unwanted, we would recommend you to execute the script that parses the PIDs and TGIDs and then compares them.

Comment by David Nolan [ 2014 Nov 18 ]

Unfortunately we are experiencing this problem in our production environments, and the propose patch fixed the problem and eliminated spurious alerts. From some further reading it seems like this should be easy to replicate with a C program that just calls clone() directly rather then going through any of the user mode thread libraries.

Would you consider adding a variant of proc.num which only reports the thread group masters? perhaps proc.thread_masters, with all the same semantics as proc.num with the addition of the code to ignore processes where PID != TGID? The goal here is to have a builtin test that can verify "one and only one copy of daemon X is running", so you can detect cases where two master processes have been started

Comment by richlv [ 2014 Nov 18 ]

moving to feature requests. maybe a new parameter to proc.num could be considered

Comment by Igors Homjakovs (Inactive) [ 2014 Nov 19 ]

David, we understand your concern and appreciate your feedback. As with clone(), in my case, as i mentioned earlier, the new thread is created with the same PID. I would appreciate if you could replicate this issue on your host with a small C or Go program and send me your results. Then we can speed up the fixing of this issue.





[ZBXNEXT-1973] Further dissemination of history table Created: 2013 Oct 21  Updated: 2013 Oct 22

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

Type: Change Request Priority: Minor
Reporter: Mathew Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

Hi,

We recently performed some analysis on the possible storage & processing savings involved in adding a tinyint based history_bool (or history_tiny) table in addition to the existing history_uint table. We found there would be significant savings in doing so.

I would like to ask if is is possible to do this, I am tempted to take a look at the source myself and see what is required and I suspect the work to add history_bool would be trivial given that bool is already an acceptable datatype.

I look forward to a positive response.

Mathew



 Comments   
Comment by richlv [ 2013 Oct 21 ]

yes, this has been already considered - even more, there's already a specification draft.

see ZBXNEXT-1693 for more detail

Comment by richlv [ 2013 Oct 21 ]

ergh, misread it. this only talks about history, the other issue talks about other values

Comment by Mathew [ 2013 Oct 22 ]

I made the same mistake ZBXNEXT-1693 does not include the history table in its specification.





[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-1395] Loose agent because of the timeout in agent mounted disk discovery reply Created: 2012 Aug 31  Updated: 2014 Nov 12

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 2.0.0, 2.0.2
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Maxim Semenov Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: floppy, timeout, windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

windows os with floppy drive



 Description   

Zabbix Agent windows Mounted filesystem discovery problem

If I enable this feature zabbix falls to network errors.
[CODE] 1386:20120829:180101.758 enabling Zabbix agent checks on host [host]: host became available
1382:20120829:180107.819 Zabbix agent item [vfs.fs.discovery] on host [host] failed: first network error, wait for 15 seconds
1386:20120829:180125.933 Zabbix agent item [vfs.fs.discovery] on host [host] failed: another network error, wait for 15 seconds
1386:20120829:180144.032 Zabbix agent item [vfs.fs.discovery] on host [host] failed: another network error, wait for 15 seconds
1386:20120829:180202.144 temporarily disabling Zabbix agent checks on host [host]: host unavailable[/CODE]

It looks like that this is timeout issue.
Is it possible to grow timeout time for low level discovery?

When I run zabbix_get from command line it takes about 6 seconds to get data from host.

[B]WORKAROUND:
Timeout occurs in case of floppy disk presence. I have disabled floppy disk drive in system and timeouts gone away.
Hope this knowledge will help somebody else[/B]

It would be wonderful to skip disk A: or have ability to increase timeout for discovery.



 Comments   
Comment by Alexei Vladishev [ 2012 Aug 31 ]

There is no way to increase timeout for discovery items only. Note that all items (discovery or not) process timeout in exactly the same manner. You may increase Timout parameter in zabbix_agentd.conf and zabbix_server.conf, but it is absolutely not recommended solution.

I am closing it because it is not a bug report.

Comment by Maxim Semenov [ 2012 Aug 31 ]

The problem is:
If you activate "Mounted filesystem discovery"(from default template) for the hosts with floppy disk drive and Windows installed, then we start to get messages like "Zabbix agent on HOST is unreachable for 5 minutes"

This problem because of the function GetVolumeInformation (diskspace.c file) trying to get info about floppy disk drive filesystem. It gets about 5-6 second, so we get timeout.
Think that it's a good idea to exclude disk "a:" from filesystem check in agentd.

Comment by Maxim Semenov [ 2012 Aug 31 ]

The problem is:
If you activate "Mounted filesystem discovery"(from default template) for the hosts with floppy disk drive and Windows installed, then we start to get messages like "Zabbix agent on HOST is unreachable for 5 minutes"

This problem because of the function GetVolumeInformation (diskspace.c file) trying to get info about floppy disk drive filesystem. It gets about 5-6 second, so we get timeout.
Think that it's a good idea to exclude disk "a:" from filesystem check in agentd.

This is not a bug, bun if you want to add file system discovery to a number of windows servers with floppy drives, you will get a lot of "Zabbix agent on HOST is unreachable for 5 minutes" problems. And this is not good.

Comment by richlv [ 2012 Aug 31 ]

i'm not quite sure whether it's a good idea to hardcode such exceptions, especially given the demise of floppy drives. nevertheless, moving to feature requests first

Comment by Oleksii Zagorskyi [ 2012 Nov 08 ]

Just a link - a forum thread (in Russian) http://www.zabbix.com/forum/showthread.php?p=120902
http://www.zabbix.com/forum/showthread.php?p=124056

Comment by Antonio Salazar [ 2013 May 20 ]

I don't think this should be triaged as a minor feature request.

vfs.fs.discovery is not a simple item, but a metaitem where actual items are derived from. The file system discovery always timing out if certain devices are installed invalidates the purpose of autodiscovery because no storage item will be created, this makes file system autodiscovery unreliable.

It's telling that you have to disable storage devices to make storage autodiscovery work.

Comment by Antonio Salazar [ 2013 May 20 ]

I've found file system discovery works if the item type of the discovery rule is changed from "zabbix agent" to "zabbix agent (active)", even if the manual for 2.2 states

The type of check to perform discovery; should be Zabbix agent for file system discovery.


Maybe the documentation should mention this special case?

This makes sense as the server timeout is only for passive checks, active checks can take all the time they need. I guess all hosts that can be passive checked are capable of active checks, so this issue is not that serious after all.

Comment by richlv [ 2014 Apr 12 ]

note that manual has been updated to mention both 'normal' (passive) agent & active agent as valid choices for this discovery rule

Comment by richlv [ 2014 Apr 12 ]

additionally, ZBX-4284 talks about having an algorithm to disable only the items that are timing out. while it won't solve the main problem here, it would prevent host from being reported as being down

Comment by Oleksii Zagorskyi [ 2014 Nov 12 ]

features used in ZBXNEXT-2006 might be considered to improve current case, if it still will be actual.





[ZBXNEXT-1337] don't allow to choose unusable triggers for dependencies Created: 2009 Feb 27  Updated: 2012 Oct 13

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: dependencies, trigger, trivial, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

adding a trigger as a dependency that already is added should either produce warning, or, ideally, this trigger should not appear in the list to select at all. currently it is allowed to select such a trigger, but it mysteriously is skipped.

additionally, it is possible to add trigger as depending on itself. it only produces error upon saving, not upon adding.

ideally such triggers would not appear in lists to select at all, or they would appear, but greyed out



 Comments   
Comment by Alexei Vladishev [ 2012 Jul 28 ]

Such issues will be fixed eventually. It is more usability related problem not a bug per se.

Comment by richlv [ 2012 Jul 28 ]

well, it's not consistent (works ok with maps), so that's a bug right there. nevertheless, it's a zbxnext as a minimum...





[ZBXNEXT-506] quiet mode for zabbix_sender Created: 2010 Sep 08  Updated: 2017 Sep 02

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

Type: New Feature Request Priority: Minor
Reporter: Igor Danoshaites (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: patch, sender, trivial
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File quiet_mode_for_zabbix_sender.patch    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-1321 Quiet option for Zabbix Sender Closed
is duplicated by ZBXNEXT-3187 quiet Mode for zabbix_sender WIndows ... Closed

 Description   

Would be nice to add possibility to suppress the output of the following info from the zabbix_sender utility as sometimes this output is not required:

"Processed 1 Failed 0 Total 1 Seconds spent 0.000072"
sent: 1; skipped: 0; total: 1

Maybe add some additional option to the zabbix_sender ?



 Comments   
Comment by richlv [ 2010 Oct 16 ]

other issues related to sender output :

ZBXNEXT-38
ZBXNEXT-246
ZBX-1827

Comment by Adam Števko [ 2014 Jan 31 ]

The attached patch adds support for quiet mode in zabbix_sender. This patch is done against the latest version from the trunk. I have tested the patch and the expected output is below:

[root@devel /opt/xenol/trunk/src/zabbix_sender]# ./zabbix_sender -c /opt/zabbix/etc/zabbix_agentd.conf -s www01 -k test -o $(date +%s)
info from server: "Processed 0 Failed 1 Total 1 Seconds spent 0.000018"
sent: 1; skipped: 0; total: 1
[root@devel /opt/xenol/trunk/src/zabbix_sender]# ./zabbix_sender -q -c /opt/zabbix/etc/zabbix_agentd.conf -s www01 -k test -o $(date +%s)
[root@devel /opt/xenol/trunk/src/zabbix_sender]#

Comment by Juris Miščenko (Inactive) [ 2014 Jan 31 ]

Implemented in svn://svn.zabbix.com/branches/dev/ZBXNEXT-506

Comment by Alexander Vladishev [ 2014 Oct 31 ]

Specification is not available. I reopen the issue.

Comment by Lorenzo Milesi [ 2017 Sep 02 ]

No way this can be merged? To LTS maybe?





[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





[ZBXNEXT-2248] Change case for system.hostname Created: 2014 Apr 10  Updated: 2014 Oct 24

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 2.2.1
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Ryan Armstrong Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: casesensitivity, hostname
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File hostname.patch    
Issue Links:
Duplicate
duplicates ZBXNEXT-1080 Match agent's Hostname+FQDN with a ho... Closed

 Description   

I distribute a common agent configuration file and use 'hostnameitem=system.hostname' to set agent.hostname on each system. Our hosts (5000+) are imported and populated via configuration management but unfortunately the character casing does not always match the configuration on the servers.

To fix this, I convert all hostnames to lower case in config management and attempted to do the same in the agent config. Unfortunately, any item key used in 'hostnameitem' must not use an external script and must use a natively support key. I have not found any in-built option for case conversion.

Can you please consider adding a key parameter/option for case conversion?



 Comments   
Comment by richlv [ 2014 Apr 12 ]

you can use system.run in hostnameitem - does that help ?
in any case, seems to be a duplicate of ZBXNEXT-1080

Comment by Ryan Armstrong [ 2014 Apr 14 ]

I neglected to clarify; this issue is most relevant on Windows, where system.run is not supported.

Comment by Ryan Armstrong [ 2014 Apr 14 ]

I don't feel that this is a duplicate issue as ZBXNEXT-1080 relates to netbios name vs. FQDN, while either of these results are still affected by casings.

This issue is that if the operator who built a server configured it with caps in the hostname, we have to match the casing on the Zabbix server config. Forcing both sides to upper/lower is a major convenience gain and encourages adoption from larger organisations using configuration management.

Comment by richlv [ 2014 Apr 14 ]

https://www.zabbix.com/documentation/2.2/manual/appendix/items/supported_by_platform seems to claim that system.run is supported on all platforms, though

Comment by Ryan Armstrong [ 2014 Jul 25 ]

system.run is support on Windows yes, but there is no command available to return the hostname converted to lower case.

Comment by Ryan Armstrong [ 2014 Jul 25 ]

I've attached a patch for Windows and Linux that accepts a new parameter, 'lc' or 'uc' to convert to lower or upper case respectively.





[ZBXNEXT-1016] show full value for truncated entries upon mouseover Created: 2011 Nov 01  Updated: 2024 Apr 10

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

Type: Change Request Priority: Minor
Reporter: richlv Assignee: Unassigned
Resolution: Unresolved Votes: 20
Labels: limits, trim, trivial, usability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBX-15183 {ITEM.LASTVALUE} is truncated in the... Closed
is duplicated by ZBXNEXT-2090 Ability to configure setting extract ... Closed
is duplicated by ZBXNEXT-2217 Graph titles created with item protot... Closed
is duplicated by ZBXNEXT-2448 Don't truncate log and text type afte... Closed
is duplicated by ZBXNEXT-3375 {ITEM.LASTVALUE} truncates at 20 char... Closed
is duplicated by ZBX-4303 Trigger name field truncates {ITEM.LA... Closed
is duplicated by ZBX-7100 Labels in maps are stripped to 20 cha... Closed
Team: Team A
Story Points: 2

 Description   

sometimes frontend trims values - for example, {ITEM.LASTVALUE} expansion is truncated to 20 characters (ZBX-4303)

it would be great if full values could be shown upon mouseover (while still retaining trigger as one clickable link, if possible )



 Comments   
Comment by Marc [ 2013 May 01 ]

There should definitely be a solution to see the complete latest/last value.
I noticed this issue from the very beginning but didn't paid too much attention because the history displays such items without truncating.

Now, after reaching ~1K NVPS/~1TB DB in our evaluation environment I started to reconfigure non-analytic items to keep no history and trends. Lots of these items are log or text based and therefore not informative any more.

Comment by Volker Fröhlich [ 2014 Jan 14 ]

This should be really easy in 2.2, because the complete data is in the div already. Only log items are truncated in include/items.inc.php:formatHistoryValue(), which is easy to remove, of course.

Comment by Volker Fröhlich [ 2014 Oct 28 ]

Connected to ZBXNEXT-2448

Comment by Marc [ 2015 Jul 13 ]

Distantly related to ZBXNEXT-2217

Comment by richlv [ 2015 Sep 18 ]

(1) when working on this issue, other usecases to be taken into account :

Comment by tony [ 2016 Jul 29 ]

Any update on this case or some workaround to avoid ITEM.LASTVALUE beeing trimmed? Like editing the right php file in 3.x?

Comment by Volker Fröhlich [ 2016 Jul 29 ]

See ZBXNEXT-2448, tony!

Comment by Vadym Kalsin [ 2017 Jun 29 ]

Currently we have found workaround.

In Zabbix 3.2 we can use Macro functions in trigger descriptions.

So instead of:

{ITEM.VALUE}

we can use:

{{ITEM.VALUE}.regsub("(.*)", "\1")}
Comment by Oleg Ivanivskyi [ 2017 Dec 13 ]

After introducing regsub we can use it as a possible workaround for this issue.

At the same time, it would be great to implement this feature because we have inconsistency for the macros now (e.g. "{ITEM.VALUE}" is affected and "{{ITEM.VALUE}.regsub...)}" is not).





[ZBXNEXT-9135] Zabbix agent does not send events from "Forwarded Events" event log Created: 2017 Jun 26  Updated: 2024 Apr 15

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Minor
Reporter: Oleg Ivanivskyi Assignee: Andris Zeila
Resolution: Unresolved Votes: 0
Labels: eventlog
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows server > 2008


Issue Links:
Duplicate
Team: Team A
Sprint: Sprint 11, Sprint 12, Sprint 13, Sprint 14, Sprint 15, Sprint 16, Sprint 17, Sprint 18, Sprint 19, Sprint 20
Story Points: 0.25

 Description   

It’s possible for a Windows server to forward its events to a “subscribing” server. In this scenario the collector server can become a central repository for Windows logs from other servers in the network. Zabbix agent can be installed on the collector and can be used to monitor received logs from other servers.

The issue is that Zabbix agent does not send events from the "Forwarded Events" event log from collector. It does not generate any errors also.

Details:

  • Zabbix agent has 2 items:
    eventlog[ForwardedEvents,,,,4625,,]
    eventlog[Security,,,,4625,,]
  • It sends events from the Security log, but does not send for ForwardedEvents
  • It does not generate an error for ForwardedEvents also
  • Tried to change user from System to administrator - didn't help

Debug has no clue about the root cause:

  6328:20170625:203913.873 got [{"response":"success","data":[{"key":"eventlog[ForwardedEvents,,,,4625,,]","delay":1,"lastlogsize":0,"mtime":0},{"key":"eventlog[Security,,,,4625,,]","delay":1,"lastlogsize":47652,"mtime":0}]}]

  6328:20170625:203923.490 In process_active_checks() server:'<some IP>' port:10051
  6328:20170625:203923.502 In initialize_eventlog6() source:'ForwardedEvents' previous lastlogsize:0
  6328:20170625:203923.502 In zbx_open_eventlog6()
  6328:20170625:203923.502 End of zbx_open_eventlog6():SUCCEED FirstID:5544 LastID:12572 numIDs:7028
  6328:20170625:203923.502 In zbx_get_handle_eventlog6(), previous lastlogsize:0
  6328:20170625:203923.502 End of zbx_get_handle_eventlog6():SUCCEED
  6328:20170625:203923.519 End of initialize_eventlog6():SUCCEED
  6328:20170625:203923.519 In process_eventlog6() source: 'ForwardedEvents' previous lastlogsize: 0, FirstID: 5544, LastID: 12572
  6328:20170625:203923.519 In zbx_get_eventlog_message6() EventRecordID:5544
  6328:20170625:203923.614 End of zbx_get_eventlog_message6():SUCCEED
  6328:20170625:203923.627 End of process_eventlog6():SUCCEED
  6328:20170625:203923.627 In finalize_eventlog6()
  6328:20170625:203923.627 End of finalize_eventlog6():SUCCEED
  6328:20170625:203923.627 In need_meta_update() key:eventlog[ForwardedEvents,,,,4625,,]
  6328:20170625:203923.645 End of need_meta_update():FAIL

  6328:20170625:203924.738 In process_active_checks() server:'<some IP>' port:10051
  6328:20170625:203924.738 In initialize_eventlog6() source:'ForwardedEvents' previous lastlogsize:0
  6328:20170625:203924.738 In zbx_open_eventlog6()
  6328:20170625:203924.755 End of zbx_open_eventlog6():SUCCEED FirstID:5544 LastID:12584 numIDs:7040
  6328:20170625:203924.755 In zbx_get_handle_eventlog6(), previous lastlogsize:0
  6328:20170625:203924.755 End of zbx_get_handle_eventlog6():SUCCEED
  6328:20170625:203924.770 End of initialize_eventlog6():SUCCEED
  6328:20170625:203924.770 In process_eventlog6() source: 'ForwardedEvents' previous lastlogsize: 0, FirstID: 5544, LastID: 12584
  6328:20170625:203924.770 In zbx_get_eventlog_message6() EventRecordID:5544
  6328:20170625:203924.865 End of zbx_get_eventlog_message6():SUCCEED
  6328:20170625:203924.865 End of process_eventlog6():SUCCEED
  6328:20170625:203924.879 In finalize_eventlog6()
  6328:20170625:203924.879 End of finalize_eventlog6():SUCCEED
  6328:20170625:203924.879 In need_meta_update() key:eventlog[ForwardedEvents,,,,4625,,]
  6328:20170625:203924.879 End of need_meta_update():FAIL

Note, log size is ~30MB (not "lastlogsize:0"). Agent can see that the log has new events but does not send them (e.g. LastID: 12572 --> LastID: 12584).



 Comments   
Comment by Andris Zeila [ 2017 Jul 03 ]

It appears that query Event/System[EventRecordID>1234] for forwarded events works only if the event with corresponding event record id exists. So for example if we have event with record id 1, then query Event/System[EventRecordID>0] will return empty set while Event/System[EventRecordID>=1] will work.

The first event record id is detected by querying all events and reading the record id of the first event. However for forwarded events there is an event without event record id.

Also the forwarded events are not sorted by event record ids, querying by date/time doesn't seem to be working either. Using one log per forwarded event source might be used as a workaround (at least it should fix event ordering by record ids), however there is no easy way to do it (would require downloading sdk and compiling dll just to create new logs to store forwarded events).

Possible solution might to use bookmarked events from last query instead of reading events with record id greater than the last read event. However it still must be investigated and also would require redesigning part of eventlog processing.

Comment by Andris Zeila [ 2017 Oct 20 ]

Bookmarking last read event and then reading next batch of events from the bookmark does work, not sure about perfomance hit though, as we have to query all events (EvtQuery(NULL, channel, L"Event/System[EventRecordID != 0]"), not only events starting with the specified EventRecordId (EvtQuery(NULL, channel, L"Event/System[EventRecordID > <lastid>]).

However the problem is identifying the last event. The EventRecordId in forwarded events is the original event record id on the source computer. When collecting events from multiple computers we could have matching EventRecordID (actually that could happen when collecting events from different event channels of a single computer). We could try using hash function from EventRecordID + Channel + Computer, however we would need some additional logic to handle possible hashsum matching. Otherwise event reading would stuck in a loop reading the same events over and over again.

Comment by Andris Zeila [ 2017 Oct 23 ]

So the possibe workaround for forwarded events:

  • identify the eventlog items working with forwarded events. I understand the user can choose any channel to collect forwarded events (or in rare cases even create new one) - so we can't use channel name. That leaves adding another parameter (8th!). For channel collecting forwarded events we need to apply the following logic:
    • on the first request (after agent has been started):
      • query all events and scan for the last processed event (by hashsum created from EventRecordID + Channel + Computer and stored in lastlogsize property).
      • bookmark the found request (last read event bookmark must be kept for each eventlog request)
    • query all events and use EvtSeek to find the next event after bookmarked
    • read the events from query, for each event:
      • update the last read event bookmark
      • calculate the last event hashsum from EventRecordID + Channel + Computer

The concerns:

  • Adding another parameter to already cluttered eventlog parameter list.
  • In the case of hashsum collision after agent restart a range of events would be duplicated.
  • Performance question. With original logic we were querying only events with EventRecordId > <lastlogsize> - so basically only new events. Will querying all events and then locating the bookmarked event result in performance impact?
  • Resource usage. Agent will keep open bookmarks between eventlog requests. It should be minimal impact to number of open handles unless agent has to process a large number of eventlog items.
Comment by Andris Zeila [ 2017 Oct 23 ]

Oh, one more thought about eventlogs. Currently we are reading all events from channel and then doing filtering on agent side with regexp parameter. I'm not sure how 'friendly' it is for Windows administrators and if allowing them to specify eventlog queries (Event/System[EventID=4] for example) wouldn't be better.

Comment by Martins Valkovskis [ 2017 Nov 06 ]

Added to documentation for 2.2, 3.0, 3.2, 3.4, 4.0 (see the comment column for the 'eventlog' item).

Comment by dimir [ 2024 Apr 15 ]

From internal discussion:

This is not an easy task because forwarded events do not have an ID that agent needs to associate the event with lastlogsize.

Moving to ZBXNEXT.





[ZBXNEXT-9008] Using Operational data as LAST value. Created: 2024 Feb 02  Updated: 2024 Feb 28

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D), Proxy (P), Server (S)
Affects Version/s: 6.4.11, 7.0.0beta1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Roman Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: items, performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Work values


Issue Links:
Duplicate
is duplicated by ZBXNEXT-9003 Using Operational data as LAST value. Closed

 Description   

Steps to reproduce:

  1. Create any item with do not store data,
  2. use this value in trigger. 

Result:
there will be no any actions, because there is no data.

Expected:
Use operational data as last value in trigger and the last value on dashboard last values.

Also no need to store values in db, because i need only last values.



 Comments   
Comment by Roman [ 2024 Feb 08 ]

Please fix it in the next versions.

Comment by Edgar Akhmetshin [ 2024 Feb 09 ]

https://www.zabbix.com/documentation/current/en/manual/config/items/item

Do not keep history - item history is not stored. Useful for master items if only dependent items need to keep history.

By design. No bug here. Only inventory value will be populated with Do not keep history. 

Use operational data as last value in trigger and the last value on dashboard last values.

Also no need to store values in db, because i need only last values.

Moving this issue to a feature request. 

Comment by Roman [ 2024 Feb 12 ]

Is duplicated by

ZBXNEXT-9003

Comment by Roman [ 2024 Feb 13 ]

I'm not saying it's a bug. I suggest reducing the load and so on, if you use Operational data for the last values, then accessing the database is not required.

Comment by Roman [ 2024 Feb 13 ]

I ask you to raise the priority of the task to critical.





[ZBXNEXT-6758] Ability to create Items from Monitoring Created: 2021 Jul 01  Updated: 2022 Jul 12

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

Type: New Feature Request Priority: Trivial
Reporter: Valdis Murzins Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: edit, item, popup
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: Technical backlog

 Description   

Summary

Currently Zabbix UI forces users to switch from Monitoring to Configuration and back frequently in order to create new monitoring objects and check result.

Ability to create items from Monitoring section would greatly improve usability.

Use cases

  1. I want to create new items from Monitoring→Latest data
  2. I do not want to be transferred to another page when creating or updating an item

Аcceptance

  1. Item configuration form must be made modal
  2. New button "Create item" must be added to Monitoring→Latest data and new entry "Create item" must be added to host context menu
    1. If filtered by a single host, then the host must be pre-selected in the item definition form
  3. The new buttons must be visible only if user has sufficient permissions
  4. All existing links to configuration of items must lead to the new modal forms


 Comments   
Comment by Marco Hofmann [ 2021 Nov 21 ]

Slightly related to ZBXNEXT-5553





[ZBXNEXT-6621] Log timestamp issue retrieved by Zabbix Agent Created: 2021 Mar 22  Updated: 2021 Apr 15

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

Type: New Feature Request Priority: Trivial
Reporter: Yasumi Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The time stamp when the log acquired by Zabbix agent is stored in the "HISTORY" is not the time stamp on the Zabbix server side, but the time stamp when it is sent from Zabbix agent.

However, this specification has major problems.

For security reasons, intentionally disconnect the monitored host from the network and restore communication after resolution. Then, the time stamp of the log stored in "HISTORY" of Zabbix server will be the time (past) at the time of occurrence instead of the present. As a result, it is not possible to know when the log was stored in "HISTORY" of Zabbix server.

Also, the event displayed in "Problems" suddenly appears to have been inserted in the past rather than the occurrence of the current time. There was no description of this specification in the reference, which caused a great deal of confusion when investigating the failure.

Since it is divided into "Timestamp" and "Local time", can we change the specifications so that the display of "Timestamp" is the time on the Zabbix server side?



 Comments   
Comment by Edgars Melveris [ 2021 Apr 01 ]

This is actually working as expected, because by design we want to have the timestamp of the event, not the timestamp of when it was stored in the server DB, as that could be much later than the event because of multiple reasons.

I'm closing this as not a bug.

Comment by Yasumi [ 2021 Apr 02 ]

Thanks Edgars Melveris.

Thank you for your reply.
Sure, it works as expected, but I'm hoping for a spec that adds the time stamp when the log was stored in the server DB.

Comment by Edgars Melveris [ 2021 Apr 15 ]

In that case this should have been feature request. I'll move it to that project.





[ZBXNEXT-6463] Create template for EMC VNX7500 Created: 2021 Jan 21  Updated: 2022 Jun 20

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Templates (T)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Aleksandrs Larionovs (Inactive) Assignee: Aleksandre Sebiskveradze
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: Hardware Monitoring
Story Points: 3

 Description   

Create template for EMC VNX7500






[ZBXNEXT-7106] problem.get doesn't use recent like the frontend does Created: 2021 Dec 06  Updated: 2021 Dec 08

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

Type: Change Request Priority: Trivial
Reporter: Nathan Liefting Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: api, dependencies, frontend, problem.get, trigger.get
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-7103 API problem.get property to skip Depe... Open

 Description   

When using the problem.get API call with recent=true, it functions differently from the frontend.

Depenendent problems are hidden in the frontend at Monitoring | Problems but they are still retrieved in the API call.

Furthermore there is no way to hide dependent problems using problem.get, resulting in the API call having to be combined with trigger.get which has skipDependent.

Solution:

  • Make sure problem.get with the recent flags functions the same way that it does in the frontend
  • Make sure problem.get has something like skipDependent to make sure this call supports supressing dependent items


 Comments   
Comment by Victor Breda Credidio [ 2021 Dec 06 ]

This situation is not considered an issue or bug.
Instead, it should've been classified as a feature request.

The method problem.get is working as stated in it's documentation. Even though the "dependent problems" are hidden, they are actually displayed in the frontend, so it can't be considered a bug of the method.

As stated in the description, you can use the trigger.get with skipDependent to cross informations along with problem.get and filter only those problems that are displayed in the frontend, not listing the "dependent problems"

You can also enable Debug Mode in the Frontend to see what API request Zabbix sends.
To enable it go to Administration -> Users -> Add your User to "Enable debug mode" group. 
In the right bottom of your browser there will be a button saying "Debug".

Comment by Brian van Baekel [ 2021 Dec 06 ]

So we're at the point of "bug + documentation == feature" Nice!

Comment by Nathan Liefting [ 2021 Dec 06 ]

@Victor

Have to completely disagree with your premesis here, looks like someone made a design error, or simply forgot how Zabbix (frontend) functions. First of all, triggers are configuration and they aren't necessarily in a state. The trigger creates a problem, which we can use problem.get to get data from. Why skipDependent got implemented there, is a different discussion but that's not what I'm here to discuss.

If your API would be doing exactly what the frontend is doing, then recent would show the same thing in the API call as it would on this frontend. Now it's an issue, for people as there is a difference between what you can see in one place vs the other. A product which aims to provide it's users with an experience where they shouldn't be guessing what something does in one place vs the other should focus on that. It's called cohesiveness and once we throw general cohesion out of the door simply because it's documented, then we just end up with documented anarchy don't we?

How about we fix this cohesiveness issue and make things a little easier on the general Zabbix userbase instead of documenting something that is clearly flawed?

Comment by Victor Breda Credidio [ 2021 Dec 07 ]

Nathan,

Sorry, but from our point of view it's not a bug. This is how it was designed. Frontend works the same way, i. e. uses problem.get and trigger.get for filtering out dependent triggers.

We understand your case but unfortunately there is no other way than moving this issue to ZBXNEXT.

Comment by Nathan Liefting [ 2021 Dec 08 ]

If the frontend is doing the same thing, then from the Zabbix point of view I understand where you are coming from with moving it to ZBXNEXT Thanks for that feedback, as the cohesiveness between API and what you see on the frontend is still a valid point in my opinion you can move it.





[ZBXNEXT-6665] Oracle plugin should support native DB encryption options Created: 2021 May 18  Updated: 2022 May 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Templates (T)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Aleksandrs Larionovs (Inactive) Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
part of ZBXNEXT-6606 MySQL/PostgreSQL plugin should suppor... Closed

 Description   

Oracle plugin should support native DB encryption options






[ZBXNEXT-4874] Long unit names must be shortened on SVG graph Y axes Created: 2018 Nov 22  Updated: 2021 Aug 31

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
Affects Version/s: 4.0.2rc1, 4.2.0alpha1
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Miks Kronkalns Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: graph, graphaxislabels, units
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File ZBXNEXT-4874-serverside-shortening.patch     File ZBXNEXT-4874-textpath.patch     PNG File timestamps.png    
Issue Links:
Causes
caused by ZBXNEXT-4588 New Graph Widget Closed
Sprint: Sprint 46, Nov 2018, Sprint 47, Dec 2018, Sprint 48, Jan 2019, Sprint 49 (Feb 2019), Sprint 50 (Mar 2019), Technical backlog
Story Points: 0.5

 Description   

Item unit names displayed on SVG graph Y axes can be up to 255 characters long.

It was decided to shorten long item unit names based on some predefined text length or based on space it occupies in graph (final decision must be made based on deeper research).

Shortened unit names must be suffixed with 3 dots. Unit names must be displayed in full length in graph tooltip.






[ZBXNEXT-4153] Frontend readable by screenreader Created: 2017 Oct 04  Updated: 2020 Jan 19

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
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: screenreader
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
depends on ZBXNEXT-4154 Dynamic element readability by screen... Reopened
part of ZBX-12816 Suggestions for screen reader users Closed
part of ZBX-13283 Info label in permissions form is not... Closed
Epic Link: DEV-817
Sprint: Sprint 18, Sprint 19, Sprint 20, Sprint 21, Sprint 22, Sprint 23, Sprint 24, Sprint 25, Sprint 26, Sprint 27, Sprint 28, Sprint 29, Sprint 30, Sprint 31, Sprint 32, Sprint 33, Sprint 34, Sprint 35, Sprint 36, Sprint 37, Sprint 38, Sprint 39, Sprint 40, Sprint 41, Sprint 42, Sprint 43, Sprint 44
Story Points: 10

 Description   

Each important element on frontend should be readable by screenreader.
Frontend elements that currently are not understandable by screenreader should have aria label with understandable explanation of element and it's state.
Decorative elements should be hidden from screenreader.
Elements with popups should be marked.
Loading part of page should be marked.






[ZBXNEXT-4154] Dynamic element readability by screenreader Created: 2017 Oct 04  Updated: 2020 Jan 19

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
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: screenreader
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PDF File ZBXNEXT-4154_ Dynamic element readability by screenreader.pdf    
Issue Links:
Duplicate
is duplicated by ZBXNEXT-4155 Timeline screenreader interaction Closed
Sub-task
part of ZBXNEXT-4153 Frontend readable by screenreader Reopened
Epic Link: DEV-648
Sprint: Sprint 18, Sprint 19, Sprint 20, Sprint 21, Sprint 22, Sprint 23, Sprint 24, Sprint 25, Sprint 26, Sprint 27, Sprint 28, Sprint 29, Sprint 30, Sprint 31, Sprint 32, Sprint 33, Sprint 34, Sprint 35, Sprint 36, Sprint 37, Sprint 38, Sprint 39, Sprint 40, Sprint 41, Sprint 42, Sprint 43, Sprint 44, Sprint 45

 Description   

Screenreaders should be able to read content that is dynamically updated without page refresh.






[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-8847] IPv6 host name is incorrect Created: 2023 Jul 17  Updated: 2023 Nov 22

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

Type: Change Request Priority: Trivial
Reporter: Evgeny Semerikov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2023-07-17-16-19-41-099.png     PNG File image-2023-07-19-23-54-56-101.png     PNG File screenshot.png    

 Description   

Steps to reproduce:

Try to add host with IPv6 name, like 0000:0000:0000:0000:0000:0000:0000:0001 or ::1

Result:



 Comments   
Comment by Evgeny Semerikov [ 2023 Jul 19 ]

Also same problem occurs for proxies (because proxy name = hostname):

Comment by Tomass Janis Bross [ 2023 Oct 17 ]

Hello Evgeny!

Thank you for the report, but this is not a bug, as colons are not allowed in hostnames, and that is also written in the documentation:

I do understand your point, however - that you would like to create hosts with the IP address as the name, therefore this could be created as a ZBXNEXT issue.

Closing this issue.

Cheers,
Tom

Comment by Evgeny Semerikov [ 2023 Nov 22 ]

Moved to ZBXNEXT





[ZBXNEXT-8846] Users > Authentication > LDAP Server (User groups) Created: 2023 Nov 20  Updated: 2023 Nov 22

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

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


 Description   

Steps to reproduce:

  1. Go to "Users > Authentication > LDAP Server (User groups)"
  2. Add few groups in "User group mapping".
  3. See random order.

Result:
Groups unsorted.
Expected:
Groups sorted by name.



 Comments   
Comment by Tomass Janis Bross [ 2023 Nov 22 ]

Hello Evgeny!

Why is this expected behaviour ?
I looked through documentation and didn't see a mention that these groups should be sorted by name. As far as I checked, the groups are in the order that you created them.

Cheers,
Tom

Comment by Evgeny Semerikov [ 2023 Nov 22 ]

This is expected behaviour because this is userfriendly. May be developers can add simple "ORDER BY" in SQL?

Comment by Tomass Janis Bross [ 2023 Nov 22 ]

Sure, I cannot disagree with that, but then it needs to be created as a ZBXNEXT, instead of a ZBX.

Please create a ZBXNEXT for the ordering in group names.
Closing this ticket.

Comment by Evgeny Semerikov [ 2023 Nov 22 ]

I'm moved this to ZBXNEXT.





[ZBXNEXT-8530] Housekeeping time units Created: 2023 Jun 22  Updated: 2023 Jun 27

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

Type: Change Request Priority: Trivial
Reporter: Evgeny Semerikov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Housekeeping, units
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2023-06-22-19-22-10-031.png    

 Description   

Steps to reproduce:

  1. Go to Administration > Housekeeping
  2. Set some parameter to 3y
  3. Get error "Incorrect value for field "hk_events_trigger": a time unit is expected."

Result:



 Comments   
Comment by Evgeny Semerikov [ 2023 Jun 22 ]

PS: also if I set value to 36m, then I get following error: "Incorrect value for field "hk_events_trigger": value must be one of 86400-788400000.", but 788400000 = 25 years.

Comment by Edgar Akhmetshin [ 2023 Jun 23 ]

Hello Evgeny,

Please read the documentation:

https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/administration/housekeeping

Time suffixes are supported in the period fields, e.g. 1d (one day), 1w (one week). The minimum is 1 day (1 hour for history), the maximum - 25 years.

https://www.zabbix.com/documentation/current/en/manual/appendix/suffixes

s - seconds (when used, works the same as the raw value)
m - minutes
h - hours
d - days
w - weeks
M - months (trend functions only)
y - years (trend functions only)

Closing as Won't fix.

Regards,
Edgar

Comment by Evgeny Semerikov [ 2023 Jun 25 ]

Hello, Edgar!

May be move this to new feature request?





[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-8494] Add ability to get HTTP agent error codes inside trigger expression Created: 2023 Jun 07  Updated: 2023 Jun 11

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

Type: Change Request Priority: Trivial
Reporter: Evgeny Semerikov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2023-06-08-09-40-40-902.png    

 Description   

I'm create a HTTP agent item and get confused.

If item get wrong status code (like 500), then item goes to unsupported state, this is normal, but how I can get this to create trigger?



 Comments   
Comment by Dmitrijs Lamberts [ 2023 Jun 08 ]

HTTP Agent item is for endpoint monitoring, not the HTTP response code, so it looks like it works as designed.

Please be advised that this section of the tracker is for bug reports only. The case you have submitted can not be qualified as one, so please reach out to [email protected] for commercial support (https://zabbix.com/support) or consultancy services. Alternatively, you can also use our IRC channel or community forum (https://www.zabbix.com/forum) for assistance. With that said, we are closing this ticket. Thank you for understanding.

Comment by Evgeny Semerikov [ 2023 Jun 08 ]

Serious?

Comment by Dmitrijs Lamberts [ 2023 Jun 09 ]

List of expected HTTP status codes. If Zabbix gets a code which is not in the list, the item will become unsupported. If empty, no check is performed.
https://www.zabbix.com/documentation/6.4/en/manual/config/items/itemtypes/http?hl=HTTP%2Cagent





[ZBXNEXT-6078] 504 error in last data after update to 5.0.2 Created: 2020 Jul 20  Updated: 2021 May 22

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

Type: Change Request Priority: Trivial
Reporter: SerhiiZ Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2020-07-20-14-08-43-646.png    

 Description   

After upgrading zabbix to version 5.0.2, I can't go to the "Latest data" section. Error 504 Gateway Time-out Occurs



 Comments   
Comment by SerhiiZ [ 2020 Jul 20 ]

[root@CEHU-ZabbixServer ]# rpm -qa | grep zabbix
zabbix-release-5.0-1.el7.noarch
zabbix-web-5.0.2-1.el7.noarch
zabbix-agent-5.0.2-1.el7.x86_64
zabbix-web-pgsql-scl-5.0.2-1.el7.noarch
zabbix-server-pgsql-5.0.2-1.el7.x86_64
zabbix-web-deps-scl-5.0.2-1.el7.noarch
zabbix-nginx-conf-scl-5.0.2-1.el7.noarch
zabbix-get-5.0.2-1.el7.x86_64

there are no errors in the logs

 

[root@CEHU-ZabbixServer ]# free -h
total used free shared buff/cache available
Mem: 13G 1.7G 163M 1.1G 11G 10G
Swap: 2.0G 0B 2.0G

 

Comment by dimir [ 2020 Jul 21 ]

Duplicate of ZBX-18071 ?

Comment by SerhiiZ [ 2021 May 22 ]

After updating to 5.4.0 - the problem still exists.





[ZBXNEXT-3552] Correlation of Events based on location or group Created: 2016 Nov 15  Updated: 2017 Feb 04

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D), Templates (T)
Affects Version/s: 3.0.4
Fix Version/s: None

Type: New Feature Request Priority: Trivial
Reporter: Saumyajit Pramanik Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: actions, triggers
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

CentOS 7.1
Zabbix 3.0.4
VMWare Workstation 11



 Description   

Hi,

Is there any fusibility to correlate similar kind of events based on location or group.

Suppose, there is a Network failure in one region & getting several Device Down alerts. But without raising multiple Device Down alerts, only a correlated alert (having info about all affected nodes) can be triggered.

Thanks.



 Comments   
Comment by Aleksandrs Saveljevs [ 2016 Nov 15 ]

Considering that this ZBXNEXT starts with a question, it looks more like a support request. For that, please refer to https://www.zabbix.org/wiki/Getting_help .

If there is any specific feature you would like to see in Zabbix, please reopen.

Comment by Saumyajit Pramanik [ 2017 Feb 04 ]

Need a feature to correlate similar kind of events based on location or group





[ZBXNEXT-3053] Multiple authentication backends Created: 2015 Nov 25  Updated: 2022 Apr 28

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

Type: Change Request Priority: Trivial
Reporter: Alessandro Sgolacchia Assignee: Unassigned
Resolution: Unresolved Votes: 6
Labels: authentication, ldap
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-407 Fallback login option for LDAP Open

 Description   

Please add support for multiple authentication backend (i.e. multiple LDAP, Internal/LDAP, etc..).



 Comments   
Comment by richlv [ 2015 Nov 25 ]

let's close this as a duplicate of ZBXNEXT-407 - you might want to mention multiple ldap backends in there

Comment by Alessandro Sgolacchia [ 2016 Mar 08 ]

That's not the same. The https://support.zabbix.com/browse/ZBXNEXT-407 is about fallback. This is about multiple backend auth systems.

Comment by Alessandro Sgolacchia [ 2016 Mar 08 ]

That's not the same. The https://support.zabbix.com/browse/ZBXNEXT-407 is about fallback. This is about multiple backend auth systems.

Comment by Andrey Klimentyev [ 2017 Mar 27 ]

Please, implement this functionality. We are forced to run VRRP between our LDAP server to compensate.

Comment by Gregory Chalenko [ 2022 Apr 28 ]

Multiple LDAP servers support will be added in ZBXNEXT-2289.





[ZBXNEXT-3543] Compose "Network discovery" section of "HowTos" Created: 2016 Nov 11  Updated: 2019 Oct 20

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Documentation (D)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Vladimir Silin (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: "Howtos" in documentation
Sprint: Sprint 1, Sprint 22
Story Points: 7

 Description   

Compose Network discovery section of HowTos with the following pages:

  • How to auto-register an agent device
  • How to discover a file system
  • How to discover a Linux server
  • How to discover a network interface
  • How to discover an SNMP device
  • How to discover a Windows service
  • How to discover SNMP OIDs

providing quick manuals and solutions for the objectives stated in the headers.



 Comments   
Comment by Vladimir Silin (Inactive) [ 2016 Dec 01 ]

Ready for review.





[ZBXNEXT-1552] smb/cifs share monitoring Created: 2012 Dec 26  Updated: 2017 May 31

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

Type: Change Request Priority: Trivial
Reporter: diana vasconcelos Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: cifs, smb, windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

zabbix instaled in CentOS Server, monitoring Windows 2008 Server



 Description   

I would like to monitor if a shared folder on the server is available. Web Monitoring was trying, through the URL: file :/ / <server-name> / <folder-name>, but the result is the error message: "could not read a file :/ / file". There is another way to do this?



 Comments   
Comment by Alexei Vladishev [ 2012 Dec 27 ]

Please stay on topic. What feature request you'd like to report here?

Comment by richlv [ 2012 Dec 27 ]

this does not sound like related to web monitoring, but monitoring of smb/cifs shares

Comment by diana vasconcelos [ 2012 Dec 27 ]

Excuse me for not knowing how to correctly specify my difficulty, but I need to monitor on a Windows 2008 server a share \ \ <name server> \ <folder-name> is active or is accessible. There are how to do this in Zabbix, or need a new feature?

Comment by diana vasconcelos [ 2012 Dec 27 ]

How monitoring of smb/cifs shares for Windows????

Comment by diana vasconcelos [ 2012 Dec 27 ]

Thank you for your attention but I got the result they wanted through a UserParameter configured Zabbix server to test assembly of the sharing occurs successfully.

Comment by richlv [ 2012 Dec 28 ]

let's clarify & keep it





[ZBXNEXT-4487] Trigger Event Actions Conditions Based on host inventory Created: 2018 Apr 10  Updated: 2018 Apr 10

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

Type: New Feature Request Priority: Trivial
Reporter: Nadir Albajari Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

We would appreciate if you could add an a new condition in triggered based notification to filter by host inventory.

Regards, Nadir.



 Comments   
Comment by Nadir Albajari [ 2018 Apr 10 ]

Sorry, I found the solution

Comment by Nadir Albajari [ 2018 Apr 10 ]

sorry my fault, still not working





[ZBXNEXT-4176] Custom identification of shapes on maps Created: 2017 Oct 12  Updated: 2021 May 20

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

Type: Change Request Priority: Trivial
Reporter: Rostislav Palivoda Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: DEV-654
Sprint: Sprint 18
Story Points: 2

 Description   

For map shapes linking with API proposed to introduce custom shape IDs:

{
                    "sysmap_shapeid": "32",
                    "custom_shapeid": "my_shape_id123",  <------------------ [New]
                    "type": "0",
                    "x": "100",
                    "y": "150",
                    "width": "50",
                    "height": "50",
                    "text": "shape 1",
                    "font": "9",
                    "font_size": "11",
                    "font_color": "000000",
                    "text_halign": "0",
                    "text_valign": "0",
                    "border_type": "1",
                    "border_width": "2",
                    "border_color": "000000",
                    "background_color": "",
                    "zindex": "0"
                }

where custom_shapeid:

  • type variable string of size 16 chars
  • defined by API during Create, and Update
  • read by API during Get
  • unique per map
  • empty by default (DB migration patch)
  • visible in map editor in shape property dialog
  • only numbers and characters are allowed (no special symbols)





[ZBXNEXT-4032] Different background colour for acknowledged issues Created: 2017 Aug 16  Updated: 2017 Aug 21

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

Type: Change Request Priority: Trivial
Reporter: Tony den Haan Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be nice to be able to set different background colour for issues that have been acknowledged, might make monitoring dashboard look less dramatic






[ZBXNEXT-7010] Mediatypes: Use macro's instead of hardcoded credentials Created: 2021 Oct 20  Updated: 2024 Mar 27

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Templates (T)
Affects Version/s: 5.4.6
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Frank Assignee: Zabbix Integration Team
Resolution: Unresolved Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Sub-task
part of ZBXNEXT-7912 Improve media type configuration Closed

 Description   

Currently the included mediatype templates use hardcoded credentials in the parameters e.g. <PLACE USERNAME HERE> and <PLACE PASSWORD HERE> preventing to easily upgrade the template whenever a new version is available since it will overwrite the parameters again.

Wouldn't it be a better idea to make it refer to macro's (e.g. {$MEDIA.SLACK.TOKEN} and have the user configure that macro instead? This would allow people to easily upgrade Media Types without needing to manually modifying the template before/after importing.






[ZBXNEXT-3661] Support of RestAPI or JSON RPC as back-end transport for history database Created: 2017 Jan 19  Updated: 2024 Apr 10

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

Type: New Feature Request Priority: Trivial
Reporter: Alexei Vladishev Assignee: Vladislavs Sokurenko
Resolution: Unresolved Votes: 18
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Microsoft Word sql_queries_frontend_usage.xlsx    
Issue Links:
Causes
causes ZBXNEXT-4417 Real time value, trends, events expor... Closed
Sub-task
part of ZBXNEXT-714 need scalable alternative for the his... Open
Team: Team A
Sprint: Sprint 2, Sprint 3, Sprint 4, Sprint 5, Sprint 6, Sprint 7, Sprint 8

 Description   

This functionality would allow great flexibility of creating various prototypes and production-ready solutions related to storage of history in various DB engines, also load balancing, sharding, HA solutions, etc.



 Comments   
Comment by Marc [ 2017 Feb 08 ]

Can you elaborate on what this is about? Is it supposed to become an alternative to History export modules, an additional interface in order to access history from other DBMS, e.g. from sites where an Export module previously send data to? If so, is it Zabbix frontend or Zabbix server related, or even both?

Comment by Peter Gervai [ 2017 Mar 29 ]

@marc: see ZBXNEXT-714
Basically to put history data into timeseries backends, automatically clustered and sharded, and providing many magnitudes faster replies than RDBMS.

Comment by Marc [ 2017 Apr 03 ]

From your answer it's unfortunately still not very clear to me. Although I'm well aware of ZBXNEXT-714 and its relatives.
Do I guess correctly, when presuming this is indeed about an "alternative storage backend", that's to say an optional replacement, for history data, with bi-directional access (write/read)?

Comment by Andris Zeila [ 2017 Apr 04 ]

Yes, history and trends.

Comment by Rostislav Palivoda [ 2017 May 18 ]

Created sub task for PoC - ZBXNEXT-3877 in 3.4 release.
In releaee 4.0 we will continue work on ZBXNEXT-3661 by

  • ZBXNEXT-3929 - switching all frontend calls to new history service API.
  • extending set of history service implementations for various data sources.
  • improving performance




[ZBXNEXT-4370] Improve handling of special characters in quoted parameters of JMX item keys Created: 2018 Feb 02  Updated: 2024 Apr 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Java gateway (J)
Affects Version/s: None
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: dimir Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: jmx
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File Screenshot_2018-08-14_12-02-37.png     PNG File fruits.png     PNG File fruitsbackslashdot.png     PNG File jmx-double-backslashes.png     PNG File screenshot-localhost-2018-08-14-12-01-35.png    
Issue Links:
Causes
caused by ZBX-4663 JMX monitoring doesn't work for MBean... Closed
Team: Team A
Sprint: Sprint 38, Sprint 39, Sprint 40, Sprint 41

 Description   

Currently we force users to escape special characters (e. g. backslashes) in JMX item keys parameters:

https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/jmx_monitoring#other_issues

This could be done by Zabbix automatically the same way it works with other item types, not forcing user to think about escaping at all.

In addition, number of escape characters in key parameters and error message can be different (2nd parameter, attributeName "invalid\attributeName" in example below) , which is confusing:

MBean objectName: com.example:Type=Hello
attribute: invalid\attributeName

item key:
jmx[com.example:Type=Hello,"invalid\\attributeName"]

error message:
getAttribute failed: ModelMBeanAttributeInfo not found for invalid\attributeName

Note that the error message is not so user-friendly also. So, the expected result could be like the following (with error message fixed):

MBean objectName: com.example:Type=Hello
attribute: invalid\attributeName

item key:
jmx[com.example:Type=Hello,"invalid\attributeName"]

error message:
MBean "com.example:Type=Hello" does not have attribute "invalid\attributeName"

The idea came from ZBX-13294.



 Comments   
Comment by dimir [ 2018 Jul 19 ]

After fixing this issue the documentation mentioned in description should be updated.

Comment by dimir [ 2018 Aug 10 ]

The following example demonstrates that it is impossible to monitor Java object attribute with double-backslash in the name, without additional escaping.

I have Java application with JMX support enabled with the following object and its attribute:
objectName:

com.example:type=Hello

attributeName:

double\\backslash

I add it to Zabbix using frontend, as the following JMX key:

jmx[com.example:type=Hello,double\\backslash]

After some time the item becomes unsupported with the following error message:

getAttribute failed: ModelMBeanAttributeInfo not found for double\backslash

Note the single backslash in the error message!

In the database it's exactly as I was adding it

MariaDB [trunk]> select name,key_ from items where key_ like 'jmx%Hello%double%';
+----------+---------------------------------------------------+
| name     | key_                                              |
+----------+---------------------------------------------------+
| jmx $2   | jmx[com.example:type=Hello,double\\backslash]   |
+----------+---------------------------------------------------+

If I double-quote the attributeName, it won't help. It only helps if I escape every backslash in it, resulting with 4 backlashes. See the following screenshot of combinations of unescaped/escaped quoted/unquoted examples:

 

Comment by dimir [ 2018 Sep 06 ]

Just a note, this is not about escaping dots, the dots in attributes have special meaning - separator. So if there are dots in the attribute name used not as a separator - they must be escaped manually. Besides, we do not escape dots in other items.

Comment by Vladislavs Sokurenko [ 2018 Sep 06 ]

This was added in:
ZBX-4663

Comment by dimir [ 2018 Sep 07 ]

Right. I got your point. One solution could be to use every member of composite data as separate item parameter:

jmx[com.example:type=Hello,world]
jmx[com.example:type=Hello,cars,bmw]
jmx[com.example:type=Hello,the.fruits,apple]

The first parameter is MBean object name, second is attribute name, in case attribute contains composite data - all other parameters are it's members. I don't remember why we did not follow this idea, there was something making it complicated.

vso yes, I think it was already discussed here
Unfortunately it will not allow us to add more parameters to item key in the future.
Still JMX discovery seems like a more convenient way.

Comment by dimir [ 2018 Sep 11 ]

Right, thanks for finding this.

What if in case of attribute being composite data we force users to use quotes? E. g.

jmx[com.example:type=Hello,world]
jmx[com.example:type=Hello,"cars,bmw"]
jmx[com.example:type=Hello,"the.fruits,apple"]

Looks simple and clear. The upgrade patch doesn't look too complicated:

  1. If second parameter has unescaped dot, ensure it's quoted.
  2. Replace unescaped dot with comma.
  3. Replace escaped dot sequence with a dot.
     
before after
jmx[com.example:type=Hello,world] jmx[com.example:type=Hello,world]
jmx[com.example:type=Hello,cars\.bmw] jmx[com.example:type=Hello,"cars,bmw"]
jmx[com.example:type=Hello,the\.fruits.apple] jmx[com.example:type=Hello,"the.fruits,apple"]

Of course, Java gateway need to be modified accordingly. And we should probably make this in new major version.

vso can you please provide example with following example where we want to access ".a" composite data and "f.r.u.i.t.s" is name
f.r.u.i.t.s (Fruits composite data):
a = apple
b = banana
c = cherry

before:

jmx[com.example:type=Hello,f\.r\.u\.i\.t\.s.a]

<dimir> After:

jmx[com.example:type=Hello,"f.r.u.i.t.s,a"]

vso what if it is now, haven't tested though

jmx[com.example:type=Hello,"f,r,u,i,t,s.a"]

Will it become

jmx[com.example:type=Hello,"f\,r\,u\,i\,t\,s,a"]
Comment by Vladislavs Sokurenko [ 2018 Sep 11 ]

It is possible that we can solve issue by doing this (not tested):

Index: src/zabbix_java/src/com/zabbix/gateway/HelperFunctionChest.java
===================================================================
--- src/zabbix_java/src/com/zabbix/gateway/HelperFunctionChest.java	(revision 84748)
+++ src/zabbix_java/src/com/zabbix/gateway/HelperFunctionChest.java	(working copy)
@@ -56,8 +56,7 @@
 
 		for (int i = 0; i < input.length(); i++)
 		{
-			if ('\\' == input.charAt(i) && i + 1 < input.length() &&
-					('\\' == input.charAt(i + 1) || '.' == input.charAt(i + 1)))
+			if ('\\' == input.charAt(i) && i + 1 < input.length() && '.' == input.charAt(i + 1))
 			{
 				i++;
 			}

As an extra we would need upgrade patch to

convert \\ to \

Idea is that we shall only unescape dots that are escaped.

However it's not clear what to do in that case:

\\.




[ZBXNEXT-3697] Dynamic list of loadable module items Created: 2014 May 18  Updated: 2024 Apr 10

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

Type: Change Request Priority: Trivial
Reporter: Jan-Piet Mens Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: loadablemodule
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-3353 Module for sending history data Closed
duplicates ZBX-11058 zbx_module_item_list() is mandatory i... Closed
Team: Team A

 Description   

When loading a module, zbx_module_item_list() is called to populate the keys -> functions list.

I believe the documentation specifies that this function is optional; it doesn't appear to be so. (Sorry: I forget exactly where I read that.)

The documentation should state that the list returned by this function is static – it cannot be altered during lifetime of the loaded module.

What I am looking for is a method to extend that list. I'd like to have new keys added (which point to an existing function in the dynamic module of course) in order to provide new items.



 Comments   
Comment by Sandis Neilands (Inactive) [ 2016 Aug 31 ]

See (11) of ZBXNEXT-3353. In short - for API version 2 all module functions except zbx_module_api_version() will be optional.

Comment by Glebs Ivanovskis (Inactive) [ 2017 Feb 13 ]

Apart from documentation this ticket asks for item list to be dynamic. I' suggest to update documentation as a part of ZBX-11058 and move this ticket into ZBXNEXT project as a request for dynamic item list.





[ZBXNEXT-6482] Signal webhook Created: 2021 Feb 01  Updated: 2024 Apr 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Templates (T)
Affects Version/s: None
Fix Version/s: 5.0.9rc1, 5.2.5rc1, 5.4.0alpha2

Type: New Feature Request Priority: Trivial
Reporter: Aleksandrs Larionovs (Inactive) Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 3
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2021-03-30-11-13-19-639.png    
Team: Team INT

 Description   

Create webhook for Signal messenger.
https://signal.org/en/



 Comments   
Comment by Nathan Liefting [ 2021 Mar 30 ]

Looks like this has been added to the roadmap now anyway?
https://www.zabbix.com/roadmap

 

Comment by Marco Hofmann [ 2021 Apr 26 ]

I don't understand the status of this request.

It's "Declined", "Closed", has "fixed Versions", stands on the "roadmap" and ist not in the GIT repo.

So is it now?

  1. Planed
  2. Declined
  3. Fixed
  4. NULL
Comment by richlv [ 2021 May 20 ]

Schroedinger's issue?

Marco has a point, though. Something's obviously wrong with this issue.

Comment by Aleksandrs Larionovs (Inactive) [ 2021 May 21 ]


The task has been declined due to internal reasons. The appearance on the roadmap and whats new page was a mistake, and should be resolved soon.

Comment by Edgar Akhmetshin [ 2022 Jun 29 ]

Why declined?

Comment by dimir [ 2024 Feb 12 ]

Looks like back then there was some functionality in Zabbix missing, like encryption mechanisms. Could be now it's not the case anymore. Will see if I can get it some attention.

Comment by Vjaceslavs Bogdanovs [ 2024 Feb 23 ]

The typical flow here would be to implement the required crypto functions (AES-GCM-SIV, etc) for the Zabbix JS engine and then this ticket could be implemented by the integration team.

Currently, this ticket is still being blocked.





[ZBXNEXT-4578] Timeselector readable by screen reader Created: 2018 May 30  Updated: 2024 Apr 10

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

Type: Change Request Priority: Trivial
Reporter: Alexander Shubin Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: screenreader, timeselector
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Causes
caused by ZBXNEXT-4361 A new redesigned time selector (Z4rc1) Closed
Epic Link: DEV-817
Team: Team D
Sprint: Sprint 35, Sprint 36, Sprint 37, Sprint 38, Sprint 39, Sprint 40, Sprint 41, Sprint 42, Sprint 43, Sprint 44, Sprint 45
Story Points: 1

 Description   

Timeselector control should be usable by screen reader user






[ZBXNEXT-8770] Integration with min.io Created: 2023 Oct 19  Updated: 2024 Apr 10

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Templates (T)
Affects Version/s: None
Fix Version/s: None

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

Team: Team INT
Story Points: 1.1

 Description   

Integration with min.io






[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-5476] Add SUM function for graphs Created: 2019 Sep 30  Updated: 2020 Jul 18

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

Type: New Feature Request Priority: Trivial
Reporter: Brian Lloyd Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File ZBXNEXT-5476-4.4.patch     Text File ZBXNEXT-5476-5.0.patch     Text File ZBXNEXT-5476.patch    
Issue Links:
Duplicate
duplicates ZBXNEXT-5425 Aggregation functions for graphs Closed

 Description   

I may just be missing it, but I'm not seeing a way to display the sum of the history of an item, nor a feature request for it.  I understand this may be accomplished via calculated items, but calculated items doesn't provide the flexibility of selecting an ad-hoc time period to sum.  This function would be useful in conjunction with the pie graph, or even a new "Text" graph that simply displays the item value and unit.



 Comments   
Comment by Brian Lloyd [ 2019 Sep 30 ]

An example of where this might be useful is in determining the total ingress throughput transferred by a device interface since the beginning of the month.  Trying to accomplish this using a calculated item isn't really ideal.

Comment by Valdis Murzins [ 2019 Oct 09 ]

This feature along with some other aggregation functions is already implemented for graph widget in Zabbix 4.4, you can check it out.

With this I am closing this task as
DUPLICATE of ZBXNEXT-5425

Comment by Brian Lloyd [ 2020 Jul 17 ]

This is implemented in graph widgets, but aren't graph widgets only for use on the dashboard and have to be manually defined?  There's no way to have a graph widget created for viewing from a graph or graph prototype template so that I can quickly pull up a graph showing a sum operation for items on a host associated with a template, right?

For my purposes, I'm wanting to add a graph prototype for network traffic ingress and egress showing total bytes transferred for every interface created via LLD so that you can quickly see that interface x has transferred so many Bytes in the past day, week, month, etc, dynamically.  I have items that are storing network traffic data in bits per second as well as items storing network traffic data in bytes.  The bps graph shows network usage over time on a line graph.  I want to create a pie graph prototype in a similar manner to the bps line graph prototype to show the total bytes that have been transferred for the period of time selected, which would be a sum operation on the item history tracking total bytes.

I've implemented the desired change to the code in my system - if I provide the patch files, would zabbix consider including my changes in a future release?

Thanks for your time.

Comment by Brian Lloyd [ 2020 Jul 18 ]

I don't think this is a duplicate as it's requesting the sum function in graphs, separate from graph widgets.





[ZBXNEXT-1249] Remove "Not supported" status of items Created: 2012 Jun 03  Updated: 2020 Jul 18

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

Type: Change Request Priority: Trivial
Reporter: Vladimir Berezhnoy Assignee: Unassigned
Resolution: Unresolved Votes: 37
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently items can become "not supported" for various reasons like "script returned nothing" or wrong value, effectively auto-disabling the items permanently. Very often wrong values are returned due to temporary problems. Instead the items should remain Enabled and should continue to run as scheduled without being disabled.



 Comments   
Comment by richlv [ 2012 Jun 03 ]

that also works as a safeguard measure so that a few misbehaving items (think timeouts) do not bring down the whole monitoring system.

Comment by richlv [ 2012 Jun 03 ]

also assuming this calls for ignoring problems on the proxy & server side, but not for any logic change on the agent side

Comment by Łukasz Jernaś [ 2013 Sep 08 ]

Well, a max retries parameter for items would be great. So before it gets unsupported we try to run it X times with the normal interval. Disabling them on proxies for 10 minutes is bad. The new internal notifications should help, as a wrapper can be written enabling them on problematic hosts. but still...

Comment by Ebonweaver [ 2013 Nov 25 ]

I'll add a me too here. I have an increasing number of things I can't monitor for no good reason, Zabbix has simply decided for no reason after months of use and no changes that something is not supported. 50% of my webservers have no network traffic suddenly because it's not supported, and yet it obviously is since it was working fine up until now, and works fine on the other systems. My expectation would be enabling it would force it out of the not supported status back to working, but it does not. This has happened with network, cpu, memory, etc on various systems at various random times for no reason in every version of software I have run since 2.0

Comment by Ebonweaver [ 2013 Nov 25 ]

I would also add that priority of trivial is not accurate since this is crippling to the whole point of the software. After enough time I'll have to change to another product as this one will simply be unable to monitor anything.

Comment by Marco Hofmann [ 2013 Nov 27 ]

Hello,
just signed up, too add my vote. I'm also affected by this behaviour. Please add a solution for this, as I have to enable dozens of triggers every morning, because they get unsupported during the night.

Comment by Bruno Galindro da Costa [ 2013 Dec 04 ]

Agree. I need a solution for this too. When we click on "not supported" message in webfront, zabbix could enabled the item again, not disable it.

Comment by david fallin [ 2013 Dec 23 ]

+1. for me, the problem was easily identified and i was able to just unlink the template and re-link it, problem solved.

Comment by Christoph [ 2014 Jan 24 ]

+1. This is very important for me aswell.

Comment by AndreaConsadori [ 2014 Feb 24 ]

+1

Comment by Filipe Paternot [ 2014 Mar 06 ]

Perhaps we need a better approach at the problem.

I manage a pretty big setup (500k items) and the not supported item situation is good enough. It gives zabbix resilience in dificult times, where script fails, timeout happens, and other stuff we see on large networks.

What i miss with this item status is the ability to recover manually a failed item. For a numerous reasons i might want to force a item collect after a issue, so this feature would be good.

Maybe if we disable it and then re-enable, or force-enable?

Comment by richlv [ 2014 Mar 07 ]

inability to re-enable unsupported items is a functional regression in 2.2, it was possible in 2.0 and earlier. unfortunately, nothing on the roadmap to improve this

Comment by Lory Pamos [ 2014 Apr 03 ]

Hey, @alexei!
Is there any way to autoreenabling "not supported" items?

Comment by Marco Hofmann [ 2014 Apr 03 ]

Hi @Lory Pamos,
since 2.2 my problem is gone!
Under Zabbix->Administration->General. In the Dropdown choose "Other". There is a new option: "Refresh unsupported items (in sec)"
That works for me!

Comment by Michael Sphar [ 2014 Apr 17 ]

Items going Not Supported for transient problems is an issue for me too. Too often there are several minute gaps just because a particular item times out sometimes, often a device that I have no ability to control or fix the cause of sporadic timeouts. I'd rather not make ALL unsupported items refresh every 60s as there's definitely valid cases where if an item isn't working I don't want to keep re-checking everything continuously.

What I would really like is a way to override the behavior on a per-item basis. To be able to set an individual item to never go unsupported no matter the response. The new use case I just ran into, polling via SNMP for health status of IBM IMMs (remote management devices). There are OIDs that don't exist when there is not an error condition, but during error conditions, instances are created which contain strings detailing the error condition. I'd like to be able to capture the error condition strings when there is an error for alerting purposes, but if I try to poll those OIDs they go unsupported. So an error might occur, but it will be X minutes before the items get refreshed and try again.

Comment by Chris Christensen [ 2014 May 30 ]

Being able to override per item certainly seems like it could be helpful. (Michael Sphar++)

Another idea would be to support a more sophisticated backoff (something like exponential backoff); where it could be set globally, but the first polling error checks again at double the defined polling interval, then double again, etc...

It would also be nice to expose when the item is scheduled to go back into a supported state (although this could currently be calculated by the timestamp in the log+Admin config); something like the LLD rules (xref: ZBXNEXT-1058): "The item is not discovered anymore and will be deleted in 2d 21h 13m".

Comment by Chris Christensen [ 2014 May 30 ]

Yet another option would be to expose the (2.2 newly available) Receiving notification on unsupported items as an item+trigger so that the unsupported state can be alarmed/acted on like any other item. I mention this as today the workaround for effectively this is to setup a trigger on an item that has nodata for a certain timeframe; this seems like a waste of timer resources since there is knowledge that the item is not supported.

Comment by Otheus [ 2015 Jun 01 ]

1. This should not be marked "trivial". Should be a much higher status.

2. Rename feature as << Better user-management for "Not supported" status of items >>

3. Adding to the comments above: in some situations, items become "Not supported" for reasons that are never logged anywhere – either on server or agent, and the reason is not available to the GUI. All three should be fixed: the GUI should "known" why an item became "not supported". The reason should always be logged at the warning-level. OK, supported in 2.4

Comment by Aleksandrs Saveljevs [ 2015 Jun 01 ]

Regarding (3), information on why items are not supported by the agent is provided in GUI since Zabbix 2.4.0 (see ZBXNEXT-2203 and http://blog.zabbix.com/zabbix-2-4-features-part-7-improved-troubleshooting/ under "More detail than just ZBX_UNSUPPORTED" heading).

Comment by David Ribeiro Lopes [ 2016 Mar 31 ]

I believe this can be closed because there is now an option to "Refresh unsupported items" on the Administration > General > Other tab. You can define how many seconds should Zabbix refresh an item after it has been set to unsupported.

Comment by richlv [ 2016 Apr 01 ]

that option has been there almost forever, and unfortunately it does not solve the problem this issue asks to deal with

Comment by David Ribeiro Lopes [ 2016 Apr 01 ]

The issue says the item becomes permanently disabled, It does not become permanently disabled, if it runs fine on the next "Refresh unsupported items" check, it becomes enabled.

At least this is what literally just happened to me, does it work differently with external checks?

Comment by richlv [ 2016 Apr 01 ]

i guess "permanently" is either the wrong word or some misunderstanding - but the default delay of 10 minutes is not good either, especially as there is no way to force item polling anymore

Comment by Jacek konieczny [ 2016 Oct 20 ]

The way Zabbix handles 'unsupported' items is very annoying indeed. It might be that an item cannot be monitored for some reason, but when the reason is gone the monitoring should be resumed.

Comment by Tony den Haan [ 2017 Jul 13 ]

I think what we need is a "force retry" option, in template as well as host. Lowering the global retry interval might cause unwanted issues.

Comment by Ben Hub [ 2019 Jun 30 ]

It seems to me, that "permanent" is a very good description of the problem.

In my case, I have set Refresh unsupported items to 60s. I also had it at 5m and 10m before. But it doesn't matter how I configure it, the items marked as not supported don't get re-enabled. Even disabling and re-enabling the item does not help. Pressing check now does not help. Restart of the Zabbix Server does not help. I cannot get the item to work again.

The affected item is configured with a template. This template is applied to my host. The item is an external check and calls a local sh-script. Due to a misconfiguration, this script did not return valid values and the item ended up with the following message:

Item preprocessing step #1 failed: cannot convert value "..." of type "string" from boolean format: invalid value format

I also saw this error in the server log file, but only once.

Comment by Glebs Ivanovskis [ 2020 Jul 18 ]

I guess ZBXNEXT-6035 is a fresh look on this issue.





[ZBXNEXT-2640] Add ability to send numeric history to amqp queue for distribution to other databases Created: 2014 Dec 12  Updated: 2021 Aug 08

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

Type: New Feature Request Priority: Trivial
Reporter: David Parker Assignee: Unassigned
Resolution: Unresolved Votes: 5
Labels: database
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-714 need scalable alternative for the his... Open

 Description   

Some users have history reporting and analysis needs that go significantly beyond what the zabbix UI provides. Adding a "hook" to zabbix to allow for numeric history data to be sent to other (additional) data stores would add an enormous amount of flexibility to zabbix deployments.

I believe the "hook" could live somewhere in src/libs/zbxdbcache/dbcache.c in the dc_add_history_<type> functions.

If logic were added there to optionally send data to rabbitmq (http://alanxz.github.io/rabbitmq-c/docs/0.5.0/) (replacing item id with the corresponding host name and item key strings) it would then be possible to do any number of things with the data at the "other end": graphite, opentsdb, other "nosql" targets, etc.

The data required would be:

unix time, host name, item key, value

The precise format really doesn't matter as long as it's machine parse-able.

I imagine the option would be enabled with a few configuration lines in the server config file.

AMQ connection parameters would be something like:

hostname
port
exchange
routingkey

and maybe username+password

The code to "fork" data would only function if these things were defined. The presumption would be that it's fire-and-forget - zabbix wouldn't need to do anything other than format the string and send it down the pipe.



 Comments   
Comment by Oleksii Zagorskyi [ 2014 Dec 13 ]

It's probably duplicate of ZBXNEXT-714

Comment by Oleksii Zagorskyi [ 2014 Dec 13 ]

Feel free to reopen if you don't agree.
Closed.

Comment by David Parker [ 2015 Feb 03 ]

I don't believe this is really the same thing as ZBXNEXT-714 in that that request suggests wholesale replacement of the storage backend. This feature just defines a "hook" that would allow for data to be sent off to some other store of the user's choosing. The idea is simply that when history data is being inserted into mysql, have it optionally also go to rabbitmq with a simple data format so the user can do with it as he wishes.

Comment by Corey Shaw [ 2015 Feb 03 ]

This particular feature could provide an interim solution to the much broader issue discussed in ZBXNEXT-714. My last comment in ZBXNEXT-714 clarifies a bit more what I mean by that.

Comment by Glebs Ivanovskis [ 2021 Aug 08 ]

Probably a duplicate of ZBXNEXT-3353.





[ZBXNEXT-9144]  Agent 2 loadable plugins support on macOS Created: 2024 Apr 23  Updated: 2024 Apr 25

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G), Agent2 plugin (N)
Affects Version/s: 6.0.30rc1, 6.4.15rc1, 7.0.0rc1 (master)
Fix Version/s: None

Type: Change Request Priority: Trivial
Reporter: Janis Nulle Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: Agent2, agent2, macOS, plugin, plugins
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2024-04-23-15-05-19-034.png     PNG File image-2024-04-24-10-26-08-196.png    
Issue Links:
Sub-task
depends on ZBX-24186 Agent2 plugins building does not supp... Closed
Team: Team INT

 Description   

Scenario:

  1. Build agent 2 on macOS (I had M1 processor, if relevant).
  2. Build an agent 2 loadable plugin.
  3. Configure agent 2 to use the loadable plugin.
  4. Try starting agent 2.

Result:
Connection with the loadable plugin not implemented.



 Comments   
Comment by Mihails Prihodko [ 2024 Apr 24 ]

We expect that Zabbix agent 2 might compile on MacOS and it is interesting to know, whether it does.
However, it is not officially supported https://www.zabbix.com/documentation/current/en/manual/concepts/agent2#supported-platforms





[ZBXNEXT-5927] Using built-in macros in JavaScript and regular expression preprocessing Created: 2020 Apr 30  Updated: 2024 Apr 26

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

Type: New Feature Request Priority: Trivial
Reporter: Stefano Enrico Mendola Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 32
Labels: javascript, macro, preprocessing, regularexpression
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBXNEXT-5815 Get macro value from JS code of webhook Closed

 Description   

Hi,
Could you please make the built-in macros available for use in preprocessing steps ?

For example, it would be nice to use {HOST.HOST} in regular expression preprocessing,
but it would be nice if I could use it also in JavaScript preprocessing calling
a method of a class ZabbixMacro like the following:

var hostname = ZabbixMacro.get("{HOST.HOST}");

One use case where I encountered this limitation is the following:
I'd like to use Javascript preprocessing to do some GET requests to an API.
This API has the same domain name as the hostname configured on Zabbix,
so I'd like to be able to do a CurlHttpRequest.Get() to it using the value
of the {HOST.HOST} macro.
I'm aware that this macro can be used in the URL field of the HTTP Agent check Item, but going through this path will force me to create a ton of other items in order to achieve my goal, it would be definitely cleaner to throw everything inside a Javascript preprocessing step.



 Comments   
Comment by Stefano Enrico Mendola [ 2020 Apr 30 ]

At the moment, the workaround I'm using is:

>adding a User Macro to the host template
>change the value to the final host
>prepending the user macro value to the item value using a regexp preprocessing step
>passing the regexp output to the JavaScript function

Comment by dimir [ 2020 Sep 18 ]

Re-opening as it appeared to not be duplicate. This issue is specifically about built-in macros.

Comment by dimir [ 2020 Sep 18 ]

Usermacros support was added in ZBXNEXT-5185.

Comment by dimir [ 2020 Sep 18 ]

FYI, there is no term "supported macros". On this page https://www.zabbix.com/documentation/current/manual/appendix/macros/supported_by_location the supported means "what we support out-of-the box". Sometimes we call them "built-in".

Comment by Stefano Enrico Mendola [ 2020 Sep 18 ]

Hi @dimir, thanks for the clarification and for re-opening this issue.

Wouldn't it be nice to let the community know about this nomenclature?
Maybe changing the title of the "Supported macros" manual page to "Built-in supported macros" ?

Should I open a separated documentation issue for this?

Cheers

Comment by dimir [ 2020 Sep 18 ]

martins-v what do you think?

Comment by Dimitri Bellini [ 2020 Oct 27 ]

News about this feature on Zabbix v.5.2?

Thanks

Comment by Matthew Steeves [ 2021 Feb 24 ]

Just want to throw our use-case into the mix as well:

I would really like to be able to know the hostname from within a low-level discovery rule. Being able to use it within a Javascript pre-processing step in an LLD rule would give me the ability to assign it to an LLD Macro, and then reference that macro in Filters and Overrides. This would allow me to write one template that acts differently depending on whether the host is a production host or a dev host.

Example:   
Goal:   

  • Monitor disk space on all servers, but only notify on low space if host is a production server (not Dev or DR)

Steps:

  • LLD rule has a Javascript pre-processing step that adds HOST.NAME as an additional LLD macro called #HOSTNAME to each discovery record.
  • Trigger Prototype has a Tag called Team with the empty string as default value.
  • LLD rule defines an override that compares #HOSTNAME against regex. If matches, then Team tag value is populated with "SysAdmin".
  • Trigger action is used to notify when the above Trigger produces a problem, but only if value of tag Team = "SysAdmin". This is done by simply using a Trigger Action condition.

(Outside the scope of this request, but best case scenario (easiest) would be if I could use HOST.NAME directly on the "left-side" of a Filter or Override condition within a LLD rule, instead of first having to assign the "built-in" macro to an LLD macro, and then reference the LLD macro.)

Comment by Nick [ 2022 Mar 28 ]

I have the same issue when using lld for host prototypes, want to use built-in macros (like: {HOST.CONN}) in JavaScript preprocessing.

Another way, is it possible to set a user macro value with built-in macro? For example, {$XXX_CFG_HOST}: {HOST.CONN}, but that doesn't work either.

Comment by David [ 2024 Jan 09 ]

I have run into this limitation trying to use {HOST.NAME} macro within a JSONPath call in preprocessing.

+1 Vote for this.

Comment by Denis Dion [ 2024 Apr 25 ]

I too have run into this problem and had to use the workaround of using a user macro. I do not understand why user macros work but the built-in not.

+1 at least vote for this.





[ZBXNEXT-8043] Official - Setup Zabbix Proxy on Windows Created: 2022 Oct 15  Updated: 2022 Oct 15

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

Type: New Feature Request Priority: High
Reporter: Philippe Petit Assignee: Zabbix Support Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

Hello devs,
Can you make a Zabbix Proxy running on Windows?
Or a Zabbix agent (windows) able to work as a proxy. (Like legent from PRTG)

I think that with this feature in addition, many people blocked in Windows will be happy.

Thank you.

Traduit avec DeepL (https://www.deepl.com/app/?utm_source=ios&utm_medium=app&utm_campaign=share-translation






[ZBXNEXT-5931] Native monitoring of certificate validy / expiration Created: 2020 May 04  Updated: 2022 Oct 12

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent2 plugin (N)
Affects Version/s: None
Fix Version/s: None

Type: New Feature Request Priority: Medium
Reporter: Alain Devarieux Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 46
Labels: items, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File google_certificate.png     PNG File sslchecker.png    
Issue Links:
Duplicate
Sub-task
depends on ZBXNEXT-6708 Monitor TLS/SSL website certificates Closed
Sprint: Sprint 78 (Jul 2021)

 Description   

Still needing to rely on a script to monitore TLS certificate is frustrating.

When adding a web-scenario for HTTPS websites, it would be usefull to have a check of certificate validy and/or expiration date. Another possilibity is to add this option to HTTP Agent item type.

It would create an item with date of certificate expiration. We can then use this item to trigger and alert.

 

 



 Comments   
Comment by Marcel Jäpel [ 2020 May 05 ]

That's not so easy. Because HTTP(S) is not the only one. 

If you would have an integrated ssl expiration date check than it has to support different protocols (ftp, smtp, ldap, rdp, and so on). Some protocols have there own syntax for starttls-like implementation. Additionally to that you have to differentiate mechanisms in the "same" protocol (e.g. LDAP+StartTLS and LDAPS). In some scenarios both variants could deliver different certificates.

Currently I use a own script based on openssl s_client, too.

Sure, it would be nice if this will be part of Zabbix. But if there is a protocol option missing, than you have to use the old script additionally ...

Comment by Vladislavs Sokurenko [ 2020 May 05 ]

There is option in curl CURLOPT_CERTINFO but not sure how it fits in HTTP agent, could be similar to headers

Example of output:

Subject:C = US, ST = CA, L = San Francisco, O = "Cloudflare, Inc.", CN = zabbix.com
Issuer:C = US, ST = CA, L = San Francisco, O = "CloudFlare, Inc.", CN = CloudFlare Inc ECC CA-2
Version:2
Serial Number:0609affe4caeed2a5d1b400649673e30
Signature Algorithm:ecdsa-with-SHA256
Public Key Algorithm:id-ecPublicKey
X509v3 Authority Key Identifier:keyid:3E:74:2D:1F:CF:45:75:04:7E:3F:C0:A2:87:3E:4C:43:83:51:13:C6
X509v3 Subject Key Identifier:24:10:52:D2:C7:E8:73:74:78:4B:11:3F:B0:E4:4D:2D:EE:C0:63:D7
X509v3 Subject Alternative Name:DNS:*.zabbix.com,DNS:zabbix.com
X509v3 Key Usage:DigitalSignature
X509v3 Extended Key Usage:TLSWebServerAuthentication,TLSWebClientAuthentication
X509v3 CRL Distribution Points:, FullName:, URI:http://crl3.digicert.com/CloudFlareIncECCCA2.crl, 
FullName:, URI:http://crl4.digicert.com/CloudFlareIncECCCA2.crl
X509v3 Certificate Policies:Policy:2.16.840.1.114412.1.1, CPS:https://www.digicert.com/CPS, Policy:2.23.140.1.2.2
Authority Information Access:OCSP-URI:http://ocsp.digicert.com, CAIssuers-URI:http://cacerts.digicert.com/CloudFlareIncECCCA-2.crt
X509v3 Basic Constraints:CA:FALSE
CT Precertificate SCTs:SignedCertificateTimestamp:, Version:v1(0x0), LogID:A4:B9:09:90:B4:18:58:14:87:BB:13:A2:CC:67:70:0A:, 3C:35:98:04:F9:1B:DF:B8:E3:77:CD:0E:C8:0D:DC:10, Timestamp:Dec416:00:58.1542019GMT, Extensions:none, Signature:ecdsa-with-SHA256, 30:45:02:20:6C:E3:35:C3:3C:EC:49:97:93:4E:77:53:, 4E:58:4A:30:D4:3F:DF:EE:41:A0:B9:B7:BA:D1:4B:A8:, 2F:8E:5C:84:02:21:00:DF:BC:DC:62:70:BF:29:38:8C:, A7:01:28:9B:4E:0F:50:F0:ED:60:81:75:EA:49:1D:29:, E7:76:78:F3:06:B0:CA, SignedCertificateTimestamp:, Version:v1(0x0), LogID:5E:A7
Start date:Dec  4 00:00:00 2019 GMT
Expire date:Oct  9 12:00:00 2020 GMT
Signature:30:45:02:20:46:87:79:25:20:36:30:84:f1:13:9f:30:b6:0b:07:1e:aa:0c:37:79:50:07:18:21:96:b3:41:e1:19:73:9a:aa:02:21:00:8d:69:22:85:be:45:7a:be:5a:00:7f:d2:dd:1a:ec:7e:de:e2:28:ad:df:76:ac:db:c7:99:6b:94:5e:a8:14:33:
Cert:-----BEGIN CERTIFICATE-----
MIIEvzCCBGWgAwIBAgIQBgmv/kyu7SpdG0AGSWc+MDAKBggqhkjOPQQDAjBvMQsw
CQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28x
GTAXBgNVBAoTEENsb3VkRmxhcmUsIEluYy4xIDAeBgNVBAMTF0Nsb3VkRmxhcmUg
SW5jIEVDQyBDQS0yMB4XDTE5MTIwNDAwMDAwMFoXDTIwMTAwOTEyMDAwMFowYjEL
MAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv
MRkwFwYDVQQKExBDbG91ZGZsYXJlLCBJbmMuMRMwEQYDVQQDEwp6YWJiaXguY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZpcY9/1N8CXxsoMWaqfAG6GfoMRZ
prCbV49E69BzxvzGnMe6uljXr3ppHgk0f0UdslbDhWlA+ff71Y+xCcyjY6OCAu4w
ggLqMB8GA1UdIwQYMBaAFD50LR/PRXUEfj/Aooc+TEODURPGMB0GA1UdDgQWBBQk
EFLSx+hzdHhLET+w5E0t7sBj1zAjBgNVHREEHDAaggwqLnphYmJpeC5jb22CCnph
YmJpeC5jb20wDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr
BgEFBQcDAjB5BgNVHR8EcjBwMDagNKAyhjBodHRwOi8vY3JsMy5kaWdpY2VydC5j
b20vQ2xvdWRGbGFyZUluY0VDQ0NBMi5jcmwwNqA0oDKGMGh0dHA6Ly9jcmw0LmRp
Z2ljZXJ0LmNvbS9DbG91ZEZsYXJlSW5jRUNDQ0EyLmNybDBMBgNVHSAERTBDMDcG
CWCGSAGG/WwBATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j
b20vQ1BTMAgGBmeBDAECAjB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGGGGh0
dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2NhY2Vy
dHMuZGlnaWNlcnQuY29tL0Nsb3VkRmxhcmVJbmNFQ0NDQS0yLmNydDAMBgNVHRMB
Af8EAjAAMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHYApLkJkLQYWBSHuxOizGdw
Cjw1mAT5G9+443fNDsgN3BAAAAFu0aSjKgAABAMARzBFAiBs4zXDPOxJl5NOd1NO
WEow1D/f7kGgube60UuoL45chAIhAN+83GJwvyk4jKcBKJtOD1Dw7WCBdepJHSnn
dnjzBrDKAHUAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFu0aSi
wgAABAMARjBEAiBYXB9xf840lF95G8a4wcyxVnOur3oLd+5+/nBc4SO53gIgX4AN
bZYPmRPEn2DkVNd+wih8hX4NRzsXQ6q7SdyzbhQwCgYIKoZIzj0EAwIDSAAwRQIg
Rod5JSA2MITxE58wtgsHHqoMN3lQBxghlrNB4RlzmqoCIQCNaSKFvkV6vloAf9Ld
Gux+3uIord92rNvHmWuUXqgUMw==
-----END CERTIFICATE-----

Subject:C = US, ST = CA, L = San Francisco, O = "CloudFlare, Inc.", CN = CloudFlare Inc ECC CA-2
Issuer:C = IE, O = Baltimore, OU = CyberTrust, CN = Baltimore CyberTrust Root
Version:2
Serial Number:0ff3e61639aa3d1a1265f41f8b34e5b6
Signature Algorithm:sha256WithRSAEncryption
Public Key Algorithm:id-ecPublicKey
X509v3 Basic Constraints:CA:TRUE,pathlen:0
X509v3 Key Usage:DigitalSignature,CertificateSign,CRLSign
Authority Information Access:OCSP-URI:http://ocsp.digicert.com
X509v3 CRL Distribution Points:, FullName:, URI:http://crl3.digicert.com/Omniroot2025.crl
X509v3 Certificate Policies:Policy:X509v3AnyPolicy, CPS:https://www.digicert.com/CPS
X509v3 Subject Key Identifier:3E:74:2D:1F:CF:45:75:04:7E:3F:C0:A2:87:3E:4C:43:83:51:13:C6
X509v3 Authority Key Identifier:keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
Start date:Oct 14 12:00:00 2015 GMT
Expire date:Oct  9 12:00:00 2020 GMT
Signature:38:5f:a7:ff:fc:85:f2:73:32:e4:d5:a3:89:99:96:60:af:32:c1:03:b3:65:df:be:1e:03:ca:a5:ed:85:b2:8f:af:4b:8c:73:8f:2a:8c:a9:00:0e:01:24:17:f7:ec:52:85:76:c8:e5:1c:79:ca:c3:17:87:50:b6:04:33:36:9e:2a:9e:18:17:96:32:12:af:43:cc:57:18:de:db:c7:d8:88:25:83:e5:ca:06:25:31:fd:bd:5d:48:3b:51:01:dd:2c:14:c7:c1:60:51:e9:95:01:d8:b2:33:56:0e:47:66:8d:6c:cd:af:f9:85:d9:eb:1c:47:47:88:34:e8:f0:fa:c2:ab:4f:69:4e:09:59:d4:57:c6:cc:c1:c8:e3:e6:19:c1:58:38:52:e2:e2:83:85:de:22:34:dc:3f:a6:f7:af:24:bc:e0:6f:c0:ab:68:2d:52:c7:6b:05:57:2c:42:1b:2d:48:87:03:0c:90:ab:48:48:a9:28:be:34:8a:fb:ba:ed:f4:60:99:1d:15:78:11:aa:d9:6d:53:7f:69:28:bc:b7:6b:20:76:7f:a0:55:03:71:79:f5:67:a7:b0:a0:0a:17:57:b2:00:a9:ad:cf:ff:67:8c:3e:26:e5:a7:24:bc:c2:6f:10:e8:89:c6:70:a5:d2:1f:80:ed:0d:3f:27:13:
Cert:-----BEGIN CERTIFICATE-----
MIIDozCCAougAwIBAgIQD/PmFjmqPRoSZfQfizTltjANBgkqhkiG9w0BAQsFADBa
MQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl
clRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE1
MTAxNDEyMDAwMFoXDTIwMTAwOTEyMDAwMFowbzELMAkGA1UEBhMCVVMxCzAJBgNV
BAgTAkNBMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBDbG91ZEZs
YXJlLCBJbmMuMSAwHgYDVQQDExdDbG91ZEZsYXJlIEluYyBFQ0MgQ0EtMjBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABNFW9Jy25DGg9aRSz+Oaeob/8oayXsy1WcwR
x07dZP1VnGDjoEvZeFT/SFC6ouGhWHWPx2A3RBZNVZns7tQzeiOjggEZMIIBFTAS
BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjA0BggrBgEFBQcBAQQo
MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTA6BgNVHR8E
MzAxMC+gLaArhilodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vT21uaXJvb3QyMDI1
LmNybDA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93
d3cuZGlnaWNlcnQuY29tL0NQUzAdBgNVHQ4EFgQUPnQtH89FdQR+P8Cihz5MQ4NR
E8YwHwYDVR0jBBgwFoAU5Z1ZMIJHWMys+ghUNoZ7OrUETfAwDQYJKoZIhvcNAQEL
BQADggEBADhfp//8hfJzMuTVo4mZlmCvMsEDs2Xfvh4DyqXthbKPr0uMc48qjKkA
DgEkF/fsUoV2yOUcecrDF4dQtgQzNp4qnhgXljISr0PMVxje28fYiCWD5coGJTH9
vV1IO1EB3SwUx8FgUemVAdiyM1YOR2aNbM2v+YXZ6xxHR4g06PD6wqtPaU4JWdRX
xszByOPmGcFYOFLi4oOF3iI03D+m968kvOBvwKtoLVLHawVXLEIbLUiHAwyQq0hI
qSi+NIr7uu30YJkdFXgRqtltU39pKLy3ayB2f6BVA3F59WensKAKF1eyAKmtz/9n
jD4m5ackvMJvEOiJxnCl0h+A7Q0/JxM=
-----END CERTIFICATE-----

The info chain is provided in a series of data in the format "name:content" where the content is for the specific named data.

AVAILABILITY

This option is only working in libcurl built with OpenSSL, NSS, Schannel or GSKit support. Schannel support added in 7.50.0

Added in 7.19.1

Comment by dimir [ 2020 May 05 ]

I think what user asks here is to implement it as part of Web Monitoring. I think it would be more convenient to have this functionality as part of that instead of introduce another set of items for agent.

I guess most often when you need to check a web site certificate you also need to make sure its functionality works. Imagine you have around 200 web sites to monitor and periodically you add/edit/remove them. You would have to adjust the agent checks accordingly each time.

Comment by Alain Devarieux [ 2020 May 05 ]

While I agree that all certificates need monitoring, I think that the most important feature to address at first is HTTP TLS Monitoring. As Zabbix is already able to crawl a website, this feature can be added to the web scenario.

We can still fall back to openssl script to monitore other kind of certificates.

Comment by Gatis Rumbens [ 2020 May 06 ]

As a Zabbix use Curl in Web scenarios as well in HTTP agent it's pretty easy obtain certificate start, expiration dates, subject, issuer and so on. It's achievable by
basically with those two/three options to handle headers and certificate data: CURLOPT_VERBOSE, CURLOPT_HEADER, CURLINFO_CERTINFO ( -I and -v flags in CLI and -k for insecure connections - in case of self signed certificate). It would be really nice to have more useful new keys in this case.

CLI example

curl --insecure -v -I https://www.zabbix.com 2>&1
* About to connect() to www.zabbix.com port 443 (#0)
*   Trying 104.31.68.176...
* Connected to www.zabbix.com (104.31.68.176) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate:
*       subject: CN=zabbix.com,O="Cloudflare, Inc.",L=San Francisco,ST=CA,C=US
*       start date: Dec 04 00:00:00 2019 GMT
*       expire date: Oct 09 12:00:00 2020 GMT
*       common name: zabbix.com
*       issuer: CN=CloudFlare Inc ECC CA-2,O="CloudFlare, Inc.",L=San Francisco,ST=CA,C=US
> HEAD / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.zabbix.com
> Accept: */*
>
 

Now I'm using for SSL certificate expire date checks this simple bash oneliner (returned result is days till expire date)

[ns@sys]# expr "("  $(date '+%s' --date "`echo |openssl s_client -showcerts -servername www.zabbix.com -connect www.zabbix.com:443 2>/dev/null| openssl x509 -noout -dates | grep -i 'notAfter=' | sed 's#notAfter=##' `") - $(date '+%s') ")" / 24 / 3600
156
Comment by patrik uytterhoeven [ 2021 Jul 16 ]

I would like to see it in HTTP Agent item i don't think you want to buid a webscenario for this kind of monitoring.

Comment by James Cook [ 2021 Jul 19 ]

Hi Guys,

Just as a note for this in terms of potential additional items to detect certificate configuration issues.

We implemented checks for the common things such as

  • TLS Expiry Date / TLS Future Date (i.e. currently inactive due to future start date)
  • TLS Issuer
  • TLS Serial
  • TLS Signature Algorithm
  • TLS Version
  • TLS Subject
  • TLS Subject Alternative Names

All of the above ensure the validity of the TLS certificate.

For us most importantly we check whether a specific set off subject alternative names exist or an individual one using regular expressions.

Cheers

James

Comment by Marco Hofmann [ 2021 Aug 03 ]

How will this be solved?
Zabbix agent?
Zabbix agent2?
Web scenario?
HTTP agent?

Comment by Maxim Chudinov (Inactive) [ 2021 Aug 03 ]

Hello, starko

It will be a plugin for agent2.

Comment by Filipe Paternot [ 2021 Aug 03 ]

Any reason for it not to be implemented in server/proxy side? Monitoring websites via agent sounds bad idea for my setup. Its too big, have too many ssl endpoints, and its too much distributed.

We think its easier to manage using the current distribution setup, that is using proxy.

Is that a new general direction on expanding Zabbix monitoring capabilities?

Comment by Alex Kalimulin [ 2021 Aug 04 ]

fpaternot, the current implementation is just yet another agent2 item - web.certificate.get[host], similar to web.page.get[]. So it's a natural choice to have such check in the agent along with other web.* items. Also, this gives you a pretty high degree of flexibility if you need to monitor a lot of websites without the additional overhead of managing proxies.

Comment by Filipe Paternot [ 2021 Aug 04 ]

Sorry, I don't see the flexibility you mention.

When one creates a host (lets call it example.com), we have to give it an interface. Since we have it monitored via agent2, we have to point that interface to zabbix-agent-host.

Point one: a user looking for that host example.com, will see dns/ip of Zabbix-agent-host. That creates confusion.

Point two: we have an additional component to maintain, the Zabbix agent. We have to look/tune sessions for that plugin, and monitor its usage. Thats not well implemented yet, like the internal Zabbix itens for poller usage.

Point three: Zabbix agent is not currently required to monitor web pages, but it will be now, just to check just the certificate. From this point of view, I'd prefer to do an external script call, curl -v and preprocess the result. Of course it gives us a performance hit, but sounds better than adding agent to dependency list.

Point four: as Gatis Rumben mentioned here, its already available from lib curl, the current setup of Zabbix proxy/server. It's perfectly possible to either extend http agent or web scenario. I personally think http agent is more flexible to implement as it does not affect existing hosts and can be easily expanded as Zabbix Admin wants.

 

I can create a new feature request for it to be implemented on server/proxy side if you guys think its not a fit in this request.

Comment by Filipe Paternot [ 2021 Aug 04 ]

Adding a few more comments:

  • on Zabbix training (from 2.0 to 5.0 that I participated in), we see as good practice to add proxies even if you don't need them just yet. The point is that it reduces load on server, its easier to expand and provides additional capabilities to maintain Zabbix server and not loose data. In the long run, its the only way to distribute and grow Zabbix installations. So it's an additional overhead but a needed one if you are monitoring an IT environment.
  • I just realized that the original feature request does asks for a web scenario or http agent implementation. So, I think we can improve on the subject at hand.

Looking forward for your reply.

Kind regards

Comment by Glebs Ivanovskis [ 2021 Aug 05 ]

yet another agent2 item - web.certificate.get[host], similar to web.page.get[]

It is funny to hear, because web.page.* items weren't even capable of SSL until very recently (see ZBXNEXT-287). If I get dates/versions right, HTTP Agent (ZBXNEXT-4358) was implemented before web.page.* became aware of HTTPS. This timeline makes me think that there are very few users in need of HTTPS monitoring who are still using agent's web.page.* items, they all must have switched to HTTP Agent as soon as it became available.

Comment by richlv [ 2021 Aug 05 ]

Zabbix repeatedly communicated that both of the agent implementations will be equal going forward.
Will this feature be added in the C agent as well?

In any case, having it on the agent seems like a mistake. Server/proxy level would be the usable one, otherwise it will be easier to reimplement the functionality as external checks, trapper items or whatever.

Comment by Constantin Oshmyan [ 2021 Aug 05 ]

richlv wrote:

In any case, having it on the agent seems like a mistake. Server/proxy level would be the usable one, otherwise it will be easier to reimplement the functionality as external checks, trapper items or whatever.

I'm absolutely agree.

Additionally, I'd like to support fpaternot who reminded that the initial problem definition for this task (see Description field) was about Web-scenario or HTTP agent, i.e. server-side checks (Zabbix server or Zabbix proxy). A possibility to perform the agent-side checks could be a pleasant addition, but not a replacement for the server-side checks.

Comment by Glebs Ivanovskis [ 2021 Aug 05 ]

If Zabbix SIA does not change its mind and if there is sufficient demand I can probably develop a libcurl-based loadable module. If it happens, it will be possible to use it with server/proxy as Simple check or with old agent (not agent2) as Zabbix agent or Zabbix agent (active).

Disclaimer: I have not yet figured out how to package modules, so there will likely be some manual compilation involved (like that, no rocket science).

Comment by Marco Hofmann [ 2021 Aug 05 ]

+1 for the arguments of fpaternot I dislike the fact, that this feature was implemented, without the original request in mind. We already have Web scenarios and http agent via proxies, now we have a third way. This is not logical.

Comment by Alex Kalimulin [ 2021 Aug 11 ]

Dear all, thanks for your feedback and criticism. I still believe this change will benefit many Zabbix users running Agent2, but I also understand there are use cases and constraints that may require alternative approaches. If you find that this solution is not applicable in your environment please feel free to add ZBXNEXTs with your proposals, as the certificate validation doesn't have to be an "either-or" feature.

Comment by Marco Hofmann [ 2021 Aug 11 ]

With all due respect Kalimulin: But this is disrespectful towards Aldevar. This very request here ZBXNEXT-5931 is very clearly about adding a cert vadility check for web-scenarios and/or HTTP Agent. It was Zabbix SIA decision, to bring up a whole different solution. And now it's our part, the community, to create a new ZBXNEXT and collect votes from scratch, although we have 34 votes here?

IMHO Zabbix company should've created a fresh ZBXNEXT for the Agent2 approach, and let our ZBXNEXT untouched with all its votes. Now this ZBXNEXT will be closed, although no solution was provided, and we stay here, with empty hands, despite the 34 votes.

This is totally unfair regarding this community request. Not happy.

Ps.: To make this clear: I'm not unhappy about the new feature. I like the new feature. I'm unhappy about hijacking this ZBXNEXT and implementing something else, which was not the initial request and then closing it and then requesting us to start from scratch.

Comment by Glebs Ivanovskis [ 2021 Aug 11 ]

Dear starko, fpaternot, richlv, constantin.oshmyan, Voters and Watchers!

The work on loadable module has started. Feel free to join discussion on specification.

Comment by Filipe Paternot [ 2021 Aug 11 ]

The specification for agent2 seems fine, the issue we seem to have in common is that we expect it to be available for Zabbix server monitoring (and proxy as usual), not the agent.

Comment by Rostislav Palivoda [ 2021 Aug 12 ]

Discussed with Kalimulin to keep this ticket open for for server/proxy (web scenarios) implementation. Implementation for agent close in ZBXNEXT-6708. Therefore move merge comment into ZBXNEXT-6708 and close it as fixed. ZBXNEXT-5931 will be reopened and discussion continues. 

Comment by Constantin Oshmyan [ 2021 Aug 12 ]

Discussed with Kalimulin to keep this ticket open for for server/proxy (web scenarios) implementation. [...] ZBXNEXT-5931 will be reopened and discussion continues.

Thank you, a wise decision!

Comment by Gatis Rumbens [ 2021 Aug 12 ]

This time I fully agree with the community that requested is one thing, but the implementation is quite different what was asked. As it requires additional resources, configuration and deployment on the monitored environment, which was not necessary until now. Imagine if its infrastructure is huge. It takes a very large amount of work to do this with this solution of Agent2.

Comment by Marco Hofmann [ 2021 Aug 16 ]

Thanks so much for listening palivoda! Hope this issue will be solved sometime in the future, with Web-Scenario or HTTP-Agent in mind.

Comment by Glebs Ivanovskis [ 2021 Aug 31 ]

Hi all!

Please check out a loadable module implementing web.certificate.get for server/proxy and old agent. Your feedback is very much appreciated! Feel free to drop questions in discussions, report issues and propose changes.

Comment by Mickael Martin (Cyres) [ 2021 Oct 05 ]

Hello,

I see certificate like web scenario : an object, linked to a host with some automatics items :

  • Date of "start"
  • Date of expiration
  • Serial number
  • Authority's names
  • Protocols available (TLS1.1, TLS 1.2, ...)
  • Revocation status
  • Maybe size of public key, cipher, etc...

Be careful, certificate are not only for web, you can have certificate for SMTP, OpenVPN, etc.

A page like that SSLChecker https://github.com/pernodpepper/SSLChecker

Comment by Gergely Czuczy [ 2021 Nov 10 ]

May I ask whether this implemented feature also covers SNI?

Many people have LBs which are also terminating the TLS on HTTPs sessions, reverse-proxying to normal http/fpm/whatever backends. They are service multiple sites using multiple certs. It is very important to be able to request a specific host's certificate from the LB, otherwise this feature will be limited to simply monitoring the default host's certificate.

 

Comment by Alex Kalimulin [ 2021 Nov 10 ]

phoemix, yes, it does support SNI.

Comment by Gavin Hill [ 2022 Jan 28 ]

I'm confused as to how this agent2-based check would work.  If I have 2 sites I want to check (www.google.com, www.aws.com) how would I set this up in Zabbix?  I don't have agents running on those sites.  How would I add 2 checks (one for each site) to be run by a single agent?  Do I now need to stand up multiple VM's each running an agent to check each site's certificates?

Comment by Rodrigo Castro [ 2022 Mar 07 ]

Gavin you only need to add a host for each website, all monitored by the same agent2 deployed (in localhost or monitored by proxy). Change the template inherited macros of each host to monitor the websites.

Comment by dimir [ 2022 Oct 12 ]

highpeak You can install Zabbix server module https://github.com/i-ky/sheepskin and monitor these without an agent.





[ZBXNEXT-8271] Need the favicon rebranding feature Created: 2023 Feb 14  Updated: 2023 Jun 06

Status: Reopened
Project: ZABBIX FEATURE REQUESTS
Component/s: Frontend (F)
Affects Version/s: 6.2.7, 6.4.0rc1
Fix Version/s: None

Type: Change Request Priority: Low
Reporter: Ihor Romanyshyn Assignee: Valdis Murzins
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates ZBXNEXT-7585 Change icon/logo Open
is duplicated by ZBXNEXT-8475 Change favicon.ico via Rebranding Open

 Description   

Hi! Due to russian aggression against Ukraine and its symbol the letter Z, some people like me may want to rebrand the favicon too. For now, it is only possible to do this by changing files of installation and will be reverted on any update of Zabbix Frontend. So it would be nice to have the branding feature to change that letter while it is considered a modern swastika.



 Comments   
Comment by dimir [ 2023 Feb 15 ]

Duplicate of ZBXNEXT-7585

Comment by Ihor Romanyshyn [ 2023 Mar 13 ]

Sorry, but my ticket is not about the redesign. I like the logo to be redesigned. Maybe it's time to invent some mascot, I prefer some cyberpunk spider.

But I would like to have the Rebranding option to change the favicon logo by myself. I know it's much easier to do than doing all that work about rebranding a whole worldwide known product. It's sad, but in my country, this logo is not good anymore. Someone walking by can think I'm a supporter of the russian invasion just by seeing the icon in my browser window. And I will have a talk with our Security Service of Ukraine while they can work with real collaborators.





[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.






Generated at Fri Apr 26 21:08:25 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.