Home : Projects : Plink : Plink 2.0 Overview
Plink is an extensible, cross-platform network monitoring and management system. Its functionality falls into the following broad areas:
- Discovery of nodes on the network
- Monitoring of nodes and their services
- Automated node Management
- Notifications and Reports
- Administration of the system
The system is centered around a database of node data. Discovery and Monitoring keeps the repository up to date, adding and updating node records as required. As the data changes, notifications can be sent and active management tasks can be carried out by the system. The web interface provides reports (which can also be scheduled and delivered in a number of ways) and allows administration of the Plink system.
Discovery
Discovery involves scanning the network for new nodes, not known to Plink, and transient nodes which may come and go over time. In most Plink installations, discovery will be used in two ways:
- Running fairly intensive scans at the user's request
- Background scanning
Intensive scans are run quite quickly and might be used, for example, when Plink is being initially configured, to get a picture of what nodes are out on the network to start with. It's a good way to minimise the human effort involved in getting a good initial repository.
Once the system is up and running, background scanning allows nodes to be discovered if they are added to the network without being actively added to Plink at the time. For example, you might add a UPS with a web management interface to a computer room but not immediately remember to update the monitoring system with its existence; a slow, continuous background scan will eventually stumble on it and add it automatically.
Background scanning is also useful for spotting and noting the arrival of known nodes that may appear and disappear; for example, staff laptops with DHCP-assigned addresses that might move from site to site and change addresses quite frequently can have persistent records in the Plink repository. A background scan will often rediscover these nodes when they arrive back on the network.
Discovery is essentially a process of generating candidate nodes, which may or may not exist (for example, generating an IP address that is not assigned to a known host), testing them (for example, with an ICMP echo request), and then responding appropriately if they turn out to be live. When a node is discovered, Plink can carry out a quick investigation of the node, usually to establish whether the node is a known transient which needs to be associated with its existing record and, if not, to determine as much as possible about the nature of the node and decide how best to deal with it.
Much of Plink's discovery system is designed to be extended:
- Generation of candidate nodes
- Tests to see if a candidate node is live
- Information gathering when a live node is discovered
The obvious methods are included as standard modules, but adding extra methods is also easy and often useful. For example, generation of IPv4 addresses is a configurable standard module, but if your organisation uses a standard format for hostnames, a new module to generate potential hostnames based on your organisation's rules could be added to the candidate node generation mix. Use of ICMP echo requests (PING) packets to test candidate nodes will be a standard module, but again, there may be other useful tests to add. Gathering of information about a node is likely to benefit from some adaptation for a specific environment as well.
Sometimes intensive scans are also useful for picking up transient nodes; in an office, it might be the case that many transient nodes will arrive in the morning and leave in the evening. If most or all of these are likely to be present by a particular time of day (for example, at 09:30), a moderately intensive scan could be run at that time to more quickly associate these with their node records. A further more intensive scan could be run just after most or all can be presumed to have left, to make sure the repository is up to date at the end of the day.
Monitoring
Each node has some basic standard properties, and this set is extensible. If a particular extended node property's value can be determined automatically, additional code can be easily plugged into Plink to retrieve that value. Many standard properties and associated value retrieval code will be supplied with Plink, but there will often be special properties you would like to be able to check - whether a particular in-house software application is installed, for example, and its version and configuration details.
Properties can be rechecked by polling them for their new values. Different properties can be configured to be rechecked at different intervals or under different circumstances. Some properties can be regenerated based on other properties, when those other properties are updated.
From the perspective of the repository server itself, all updates to the data will be pushed in. Some of these will come from polling agents, but others may come from agents of various kinds installed on the monitored nodes, or listening for updates pushed by other means. For example, a system might send its Syslog messages to what it believes is a conventional Syslog server, but is in fact a Plink Syslog listener, which will then forward the messages to the repository. Further listener agents can be written to listen for other types of message or update pushed by your systems so that such messages can be directed into the Plink database.
Management
Sometimes, action needs to be taken to maintain nodes on the network. Plink can perform management tasks:
- At a user's request
- At scheduled times
- At certain intervals
- In response to events
If a management task can be carried out by some program, it can be plugged into Plink. A user might ask Plink to run its management tasks (for example, defragment all drives) against a single node or group of nodes immediately, or at a scheduled time (possibly repeated), at specified intervals (for example, weekly; a time of day can also be specified) or in response to changes (e.g. when drive fragmentation exceeds 10% for a node).
These reaction rules and tasks are extremely extensible and can make use of the Plink scheduler or hook into changes to values in the repository, which provides a flexible tool for eliminating repetitive and often forgotten administrative work. Plink's good support for transient nodes means that regular maintenance is easily automated even for machines that are not consistently present on the network at predictable times.
Notifications
As with most network monitoring systems, Plink will notify you of important events. Notifications, like reactive management tasks, are triggered by changes in the state of the nodes' records in the database. Notifications are very configurable, in terms of what sorts of change trigger them to be sent, what is included in the notification, and how and to whom it is sent.
When the data in the database is being updated, Plink checks notification rules to see if that change triggers a notification. For example, a notification might be triggered by ping packet loss exceeding a certain threshold on a node. When the poller agent updates the database, for example setting the loss percentage to 65% from 15%, the notification rule specifies that a notification must be sent.
The message itself is then generated; code generating its contents, recipient list, delivery methods and so on is also highly adaptable, allowing quite finely-tuned configurations to be built.
Finally, the notification is delivered. Standard, included modules will cover email and SMS, as well as delivery to the Plink overhead display and Panel/Systray clients.
Reports
The system will define a range of useful reports which can be parameterised and generated on demand using the web interface. The reporting mechanism will also be extensible, allowing different reports to be defined.
Reports can be translated into different target formats (e.g. text, HTML, PDF). Plink will support scheduled generation and delivery of reports, and will be able to deliver reports by email and directly to printers. It will also be possible to add translation to additional formats and delivery by additional methods.
Administration
Most administrative tasks will be carried out using the web interface. This allows nodes to be manually created, edited, grouped and acted upon using any of the standard or extended tools. It also allows ad-hoc reporting, discovery, and browsing of the contents of the database.
Basic administration of Plink's services will use native service administration features of the platform operating systems as far as possible.






