[ZBX-11326] Web monitoring variables are not working after Update to 3.2.1 Created: 2016 Oct 06  Updated: 2017 May 30  Resolved: 2016 Oct 17

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Proxy (P), Server (S)
Affects Version/s: 3.2.0
Fix Version/s: 3.2.2rc1, 3.4.0alpha1

Type: Incident report Priority: Blocker
Reporter: Andreas Ziethen Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: variables, webmonitoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by ZBX-11363 Variables are not replaced in web mon... Closed

 Description   

Up to yesterday we used 3.0.x version. We have configured a lot of Web-Monitoring scenarios. Up to now we used a macro for domain configuration:

{domain}=http://www.myshop.com

and in the Steps we used that macro for the URLs:

{domain}/firstpage.html
{domain}/secondpage.html
and so on ...

So now after the update to 3.2.1 all Web-Monintoring scenarios do not work any longer. Error message is: "Step "Startpage" [1 of 4] failed: Couldn't resolve host name: Could not resolve host: {domain}"

So it looks as if the macro is not recognized any longer. I did replace the macro in the steps with the real domain name - and then it works. But as we do have up to hundred and more of such checks I would be thankful if I would not have to change alle the steps manually ... :-o

Can you help?
Andy



 Comments   
Comment by Alexander Vladishev [ 2016 Oct 06 ]

Thank you for reporting. I confirm the issue.

Comment by Alexander Vladishev [ 2016 Oct 06 ]

looks like broken in ZBXNEXT-1638.

Comment by Alexander Vladishev [ 2016 Oct 06 ]

v3.0 log file output:

 10800:20161006:174914.904 query [txnlev:0] [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<=1475765354 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)]
 10800:20161006:174914.905 In substitute_simple_macros() data:'{hostname}=www.zabbix.com'
 10800:20161006:174914.905 End substitute_simple_macros() data:'{hostname}=www.zabbix.com'
 10800:20161006:174914.905 In substitute_simple_macros() data:EMPTY
 10800:20161006:174914.905 In substitute_simple_macros() data:'Zabbix'
 10800:20161006:174914.905 In substitute_simple_macros() data:EMPTY
 10800:20161006:174914.905 In substitute_simple_macros() data:EMPTY
 10800:20161006:174914.905 In substitute_simple_macros() data:EMPTY
 10800:20161006:174914.905 In http_process_variables() variables:'{hostname}=www.zabbix.com'
 10800:20161006:174914.905 In httpmacro_append_pair() pkey:'{hostname}' pvalue:'www.zabbix.com'
 10800:20161006:174914.905 End of httpmacro_append_pair():SUCCEED macro:'{hostname}'='www.zabbix.com'
 10800:20161006:174914.905 End of http_process_variables():SUCCEED
 10800:20161006:174914.905 In process_httptest() httptestid:1 name:'web scenario'
 10800:20161006:174305.187 query [txnlev:0] [select httpstepid,no,name,url,timeout,posts,required,status_codes,variables,follow_redirects,retrieve_mode,headers from httpstep where httptestid=1 order by no]
 10800:20161006:174305.188 In substitute_simple_macros() data:'http://{hostname}/'
 10800:20161006:174305.188 End substitute_simple_macros() data:'http://{hostname}/'
 10800:20161006:174305.188 In substitute_simple_macros() data:EMPTY
 10800:20161006:174305.188 In substitute_simple_macros() data:'zabbix'
 10800:20161006:174305.188 In substitute_simple_macros() data:EMPTY
 10800:20161006:174305.188 In substitute_simple_macros() data:EMPTY
 10800:20161006:174305.188 In http_substitute_variables() data:'http://{hostname}/'
 10800:20161006:174305.188 End of http_substitute_variables() data:'http://www.zabbix.com/'
 10800:20161006:174305.188 In http_substitute_variables() data:''
 10800:20161006:174305.188 End of http_substitute_variables() data:''
 10800:20161006:174305.188 process_httptest() use step "step 1"
 10800:20161006:174305.188 In http_substitute_variables() data:''
 10800:20161006:174305.188 End of http_substitute_variables() data:''
 10800:20161006:174305.188 process_httptest() go to URL "http://www.zabbix.com/"

v3.2:

 10003:20161006:172845.749 query [txnlev:0] [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_cer
t_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<=1475764125 and mod(t.httptestid,1)=0 and t.status=0 and h.proxy_host
id is null and h.status=0 and (h.maintenance_status=0 or h.maintenance_type=0)]
 10003:20161006:172845.752 In substitute_simple_macros() data:'{hostname}=www.zabbix.com'
 10003:20161006:172845.752 In substitute_simple_macros() data:EMPTY
 10003:20161006:172845.752 In substitute_simple_macros() data:'Zabbix'
 10003:20161006:172845.752 In substitute_simple_macros() data:EMPTY
 10003:20161006:172845.753 In substitute_simple_macros() data:EMPTY
 10003:20161006:172845.753 In substitute_simple_macros() data:EMPTY
 10003:20161006:172845.753 In http_process_variables() variables:'{hostname}=www.zabbix.com'
 10003:20161006:172845.753 In httpmacro_append_pair() pkey:'{hostname}' pvalue:'www.zabbix.com'
 10003:20161006:172845.753 End of httpmacro_append_pair():SUCCEED macro:'(null)'='(null)'
 10003:20161006:172845.753 End of http_process_variables():SUCCEED
 10003:20161006:172845.753 In process_httptest() httptestid:2 name:'web scenario'
 10003:20161006:174253.723 query [txnlev:0] [select httpstepid,no,name,url,timeout,posts,required,status_codes,variables,follow_redirects,retrieve_mode,headers from httpstep where httptestid=2 order by 
no]
 10003:20161006:174253.723 In substitute_simple_macros() data:'http://{hostname}/'
 10003:20161006:174253.723 In substitute_simple_macros() data:EMPTY
 10003:20161006:174253.723 In substitute_simple_macros() data:'zabbix'
 10003:20161006:174253.723 In substitute_simple_macros() data:EMPTY
 10003:20161006:174253.723 In substitute_simple_macros() data:EMPTY
 10003:20161006:174253.723 In http_substitute_variables() data:'http://{hostname}/'
 10003:20161006:174253.723 End of http_substitute_variables() data:'http://{hostname}/'
 10003:20161006:174253.723 In http_substitute_variables() data:''
 10003:20161006:174253.723 End of http_substitute_variables() data:''
 10003:20161006:174253.723 process_httptest() use step "step 1"
 10003:20161006:174253.723 In http_substitute_variables() data:''
 10003:20161006:174253.723 End of http_substitute_variables() data:''
 10003:20161006:174253.723 process_httptest() go to URL "http://{hostname}/"
Comment by Andris Zeila [ 2016 Oct 07 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBX-11326

Comment by dimir [ 2016 Oct 13 ]

Why do we process regexes on scenario level in the first place? If we'd ignore them it would allow the following use case:

  • Scenario:
    {IDREGEX}=regex:my very important ID is ([0-9]+)
  • Step:
    {id}={IDREGEX}

This also currently doesn't work:

  • Scenario:
    {IDREGEX}=my very important ID is ([0-9]+)
  • Step:
    {id}=regex:{IDREGEX}

wiper We don't support variable substitution in variable definitions. So it would't work anyway.

<dimir> Yes, I understand, just an idea here.

Comment by Andris Zeila [ 2016 Oct 14 ]

Released in:

  • pre-3.2.2rc1 r63150
  • pre-3.3.0 r63151
Generated at Fri Apr 19 21:29:27 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.