Mon Feb 7 20:53:59 CET 2005
On Feb 7, 2005, at 7:32 PM, leo lencioni wrote:
Look at http://home.uninet.ee/~taavi/files/erlang/
contains port driver for ICMP ping (freebsd ping program was used as
> I am trying to write a very simple network monitoring tool. Not trying
> to replace any of the commercial products/open source, but as a nice
> example to try and learn about erlang features (concurrency and
> Mnesia) in a real scenario.
> Here are my requirements:
> - Approximately 200 tcp/ip hosts + routers/switches will be under
> control of the application.
> - I need to record UP/DOWN status for each device. The application
> will determine up status of a device if the device responds
> successfully to an ICMP ECHO.
> - Every host will be polled periodically every X minutes. The poll
> interval is a parameter for each host.
> - Result of every poll will be logged to mnesia database for report
> - There will be an operator interface. Status of device will be shown
> via operator interface interface (I have not make a decision if
> interface will be GS/WEB/TEXT). The application must support multiple
> users. Each user will decide which parts of the network he wants to
> see. For each host the operator interface will show up/down status, if
> device down, time of the last successful ping.
> - Maintenance interface, for adding/modifying/deleting hosts and users.
> - Reports for doing monthly and daily availability calculations.
> I thinked about using your shell solution and parsing the result of
> the os/ping command. But I have some concerns about scalability, since
> I will have a great number of hosts to ping, and I thought that I can
> have some performance problems for having to start a shell for each
> ping command. Probably this is a case of premature optimization. Thats
> the reason of my original question and my idea of building some kind
> of ping server, with a number of worker threads doing the actual ping.
> Thanks for your time.
More information about the erlang-questions