Polling Daemon

DVG polls the devices either by crontab (exec_rrd.pl) or by an experimental daemon (dvg_snmpd.pl). The problem is - if you use a large installation - the I/O load on the Server. Within a short time all rrd-files are updated and in the same time a lot of updates need to be written to the database.

new polling daemon

the new daemon should use multitasking (threads) to distribute the load over the time.

requirements / wishes

Other things the new daemon should do:

  • periodic check the database for new devices (and hosts, locations) (or some notification if someone changes the config, via front- or any back-end-program)
  • periodic check for changed parameter. (or some notification if someone changes a parameter, via front- or any back-end-program)
  • track the state of a host, at least it should know about following states: up, down, reboot/restart, reachable
  • track the state of a device, at least it should know about following states: up, down, shutdown
  • notification of the owner
  • alarm levels would be nice. if an interface shows some errors, has some unusual drops it would be nice if there are some alarms
  • it should be possible to add modules. so the program exec_rrd.pl [exec|modules] is not needed anymore.

are there more needs

Frameworks

Possible Libraries for the implementation: Perl_Object_Environment. Are there other possibilities?

Structures

is this a good separation of the different tasks?

  • one thread/POE::session to check the database?
  • create for each host a thread/POE::session?

open items:

  • what if the connection to the database is lost? (snmpd.pl needs to restart)
  • communication between the threads specially between the config reader and poller-threads?
design/snmpdaemon.txt · Last modified: 2009/02/16 22:08 by Ueli Heuer
Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0