NRD: Nagios Result Distributor

14
NRD Nagios Result Distributor

description

Short presentation about the motivations of implementing NRD in Perl

Transcript of NRD: Nagios Result Distributor

Page 1: NRD: Nagios Result Distributor

NRDNagios Result Distributor

Page 2: NRD: Nagios Result Distributor

NSCA resumed

Page 3: NRD: Nagios Result Distributor

But

• NSCA (Nagios Service Check Acceptor)

– Lots of limitations

• 63 char hostnames

• 127 char service names

• No multiline

• Result data limited too (512 bytes)

– In Opsview it was frustrating that “bigger” (distributed) instalations got limited features

Page 4: NRD: Nagios Result Distributor

Looked at NSCA code…

• Problems didn’t seem fixable in a backwardscompatible manner.– Reimplementation in a dynamic language seemed

easy (after all, just pushing results around a network)

• Is a dynamic language a problem?– I Think not

• Performance– Just do things right… Optimize later

• Flexibility– Prototype new functionality

Page 5: NRD: Nagios Result Distributor

Welcome Perl

• Fast (enough)

• Flexible

• Added value

– CPAN

Page 6: NRD: Nagios Result Distributor

Code reuse

• Net::Server

– Process model

– Config file

• JSON::XS

– Fast (blazingly fast)

• Crypt::CBC

– Free Crypt::XXX functionality

• Digest::XXX

Page 7: NRD: Nagios Result Distributor

So what did I do?

Just play around with the components

Idea,Implement, abstract, implement, abstract, idea, abstract, implement…

Did I say that there is a test suite?

Page 8: NRD: Nagios Result Distributor

So what did I do?

Just play around with the components

Idea,Implement, test, break, implement, test, abstract, idea, abstract, implement, test, abstract

, test…

Page 9: NRD: Nagios Result Distributor

Flexibility in development

• Fast changes

– SSH tunnel tests show that client can think that a packet was sent… but the server never recieves it

– commit packet implemented

• writers benefit from new “commit” functionality

Page 10: NRD: Nagios Result Distributor

New functionalities

• Serializers

– plain, crypt, digest

• Writers

– resultdir and cmdfile

Page 11: NRD: Nagios Result Distributor

Open up!

• googlecode project from the start

– Ton Voon (Opsview project starts testing NRD)

• Committing actively with really good results– NRD::Client

– SSH tunnel testing

– Documentation

– Help with writing to resultdir

Page 12: NRD: Nagios Result Distributor

And Perl added value?

• CPAN Testers!

Page 13: NRD: Nagios Result Distributor

Results

(Based on sending 2016 results in a single transaction over an SSH tunnel from a slave to a master. Times measured on the client.)

So in the end NRD is faster and less traffic consuming than NSCA

Page 14: NRD: Nagios Result Distributor

Get NRD

• https://code.google.com/p/nrd/