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

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

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

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

 Description   

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

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



 Comments   
Comment by Oleksii Zagorskyi [ 2012 Nov 22 ]

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

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

Comment by Oleksii Zagorskyi [ 2012 Nov 23 ]

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

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

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

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

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

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

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

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

Comment by Adrian Lewis [ 2013 Aug 23 ]

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

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

Comment by Oleksii Zagorskyi [ 2013 Aug 23 ]

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

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

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

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

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

Comment by Michael Brown [ 2013 Aug 23 ]

Screenshots of my configuration causing the issue

Comment by Adrian Lewis [ 2013 Aug 26 ]

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

Comment by Oleksii Zagorskyi [ 2013 Aug 27 ]

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

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

Comment by Michael Brown [ 2013 Aug 30 ]

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

Comment by Michael Brown [ 2013 Sep 13 ]

I see that Andris Zeila was assigned to this task.

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

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

Comment by Adrian Lewis [ 2013 Sep 13 ]

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

Comment by Andris Zeila [ 2013 Sep 16 ]

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

Comment by Andris Zeila [ 2013 Sep 16 ]

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

Comment by richlv [ 2013 Sep 16 ]

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

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

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

Comment by Alexei Vladishev [ 2013 Sep 18 ]

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

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

Comment by Andris Zeila [ 2013 Sep 18 ]

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

Comment by Michael Brown [ 2013 Sep 18 ]

Andris,

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

Comment by Michael Brown [ 2013 Sep 18 ]

Untested backport of ZBXNEXT-1267 to 2.0.8

Comment by Andris Zeila [ 2013 Sep 19 ]

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

Comment by Alexander Vladishev [ 2013 Sep 19 ]

Successfully tested!

Please review my changes in r38620.

Comment by Andris Zeila [ 2013 Sep 19 ]

Updated documentation, please review:

sasha CLOSED

Comment by Michael Brown [ 2013 Sep 19 ]

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

Comment by Adrian Lewis [ 2013 Sep 19 ]

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

Comment by Alexander Vladishev [ 2013 Sep 23 ]

Available in version pre-2.1.5 (trunk) r38622.

Comment by richlv [ 2014 Feb 03 ]

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

Generated at Sat Apr 20 07:03:49 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.