Community discussions

MikroTik App
 
prawira
Trainer
Trainer
Topic Author
Posts: 360
Joined: Fri Feb 10, 2006 5:11 am

dual redundant dude server configuration

Thu May 24, 2018 5:50 am

dear all,

the company i work for having about 30 bts to serve all the customers; both for PtP and PtMP.
we did try to use CCR for dude only but it seems that CCR is not strong enough as we detect every single link among bts's including the backups, for this problem we will try to migrate it to x86 machine.

the other problem is when the backbone link for this single dude having problem, than dude will report all nodes down. therefore we are thinking about another dude machine (using x86 as well) that will do the same function with additional condition.
+ if one of the bts down, both dude should detect the same problem than do the report. it can be by email, telegram and or text message to cellular phone.
+ if only one dude detect but not the other one, than dude should threat it as false alarm and does not need to report it. this is due to the possibility of link problem at one of the Dudes.

question...
+ is it possible to do the above scenario ?
+ if so, how to do that ?

thank you

Paul
 
User avatar
vecernik87
Forum Veteran
Forum Veteran
Posts: 882
Joined: Fri Nov 10, 2017 8:19 am

Re: dual redundant dude server configuration

Fri May 25, 2018 11:25 am

Firstly, maybe you dont have to do it complicated way: There is a "parents" field for each device, so if parent device is inaccessible, TheDude understands that rest of network behind parent might not be down and therefore it should report only the parent device down.

Secondly, as you asked, I would solve it with separate HTTP server which both Dudes will fetch. Then you can create any logic you want in any language.
I can imagine that something like this would work well:
database = {};
function update_status(server,device,status){
	if(typeof database[device] !== "object"){
		database[device] = {};
    }
	database[device][server] = status;
	var count = 0;
	Object.values(database[device]).forEach(function(status){
		if(status == "down"){
			count++;
		}
	});
	if(count >= 2){
		console.log(device + " unavailable from " + count + " Dudes");
	}
}
(thats just really quick sample in JS)

Who is online

Users browsing this forum: No registered users and 18 guests