Welcome to the SNMAgent project page
Every environment needs good system maintenance, and the key is to have excellent tools for system monitoring, notification and trend analysis. In the open source marked the two tools I've found closest to the "excellent" mark is Nagios and Munin. Together they give all you need for the linux/unix servers. However win32 support is not natively supported by any of them. SNMAgent is an attempt to fill this gap.
About this document
This project is in the state of internal testing, and so this document is indented for developers of SNMAgent and selected test personnel at Linpro (Developers of Munin). Others may find the information useful.
Support
We cannot give any kind of support for the SNMAgent at this time. System spec and scope of the project will change drastically. Please do not put the SNMAgent in any kind of production environment.
Credits
- Nagios is a stand-alone enterprise-class monitoring solution. Nagios does not recognize SNMAgent as valid Nagios project. See www.nagios.org.
- Munin is a project driven by Linpro to give information of system performance/trends in graphs through a web interface. See munin.projects.linpro.no and SNMAgent documentation in the munin wiki.
- NSClient is a win32 NT service for Nagios. NSClient is recommended in the Nagios FAQ as a Nagios Add-on for Windows. The NSClient source code is used in full for the SNMAgent project. The source is modified to compile with Delphi 2006, and support for Munin is built on top of the already working Nagios implementation.
See http://nsclient.ready2run.nl.
Project status
Overview
Project is in the state of internal testing and proof-of-concept.
Nagios part of SNMAgent is working, there is not yet found any problems with the source modifications from the NSClient.
Munin part of SNMAgent is able to talk to the Munin server and give system status.
Some "Munin plugins" are supported by hard coded integration in the service.
Some plugins can be configured to some extent; some are only in proof-of-concept stage and only working on developer machine or identical hardware.
Plugins
SNMAgent now support to types of "plugins", Internal and PerfData.
SNMAgent enumers *.ini files in the plugins\ directory. Ini files specify the plugin to be internal or of type PerfData.
Internal
Internal plugins is hard-coded in the application, and now consists of two plugins.
df
cpu
- Support config or fetch command.
- SNMAgent will sample average cpu usage last 5 minutes and give percentage of total cpu usage for all cores last 5 minutes when invoked with fetch cpu
- Plugins needs etc\cpu.cfg for output of config cpu.
PerfData
PerfData uses the .ini file to read mappings to the Windows Performance Monitor. Users can create custom .ini files, and i theory graph all data
by using the Windows Performance Data Helper API (PDH). Some PDH plugins come pre-configured, with both .ini and matching etc\*.cfg files.
eth0
- Proof of concept support for config and fetch command.
- Lakes support for enumerating network hardware.
- SNMAgent will output current in/out data of Network Interface(NVIDIA nForce Networking Controller - Packet Scheduler Miniport) pr sec. This can be altered by configuring your plugins\eth0.ini file
- Plugins needs etc\eth0.cfg for output of config eth0.
memoio
- Support config or fetch command.
- Reports current memory pages/sec.
- Plugins needs etc\memoio.cfg for output of config memio.
memcommit
- Support config or fetch command.
- Reports current commit limit, commit bytes and page file size.
- Plugins needs etc\memcommit.cfg for output of config memcommit.
powerstate
- Support config or fetch command.
- Reports power state of CPU (C1, C2, C3).
- Plugins needs etc\powerstate.cfg for output of config powerstate.
procs
- Support config or fetch command.
- Reports number of running procs/threads.
- Plugins needs etc\procs.cfg for output of config procs.
handles
- Support config or fetch command.
- Reports number of active handles.
- Plugins needs etc\handles.cfg for output of config handles.
cpunew
- Support config or fetch command.
- Consept test of fetching cpu usage, divided in idle, user, processor and interrupt.
- Plugins needs etc\cpunew.cfg for output of config cpunew.
- When the plugins works better i can replace the cpu plugin.
Installation
note: The installer should take care of the above for you.
- NT Service can be installed by running "snma.exe /install". If Inno Setup installer is used, you should find a shortcut for this on your Start Menu.
- After installation the service can be started by running "net start snmagent", using windows gui or rebooting the computer.
Debugging
While debugging, please note that some information is logged to the Windows Events Log, under Application
Changelog
v 0.220
- Strips '.00' from PerfMon data, to deal with rrd tool not liking floats in combination with DERIVE || COUNTER. It's really a quick'n dirty fix, but should do the trick.
- Included several plugins from Moses Moore to graph MS Exchange Server. As with all the included plugins you should see them as samples that might need modification on your system.
v 0.210
- Removed old handels.ini and handles.cfg files from the installer.
- Redused output to the events log. (Removed much of the debug info)
- Included a page file usage plugin.
v 0.200
- Support for PerfData plugins.
- Support for some plugin configuration, and PerData mapping by using plugins\*.ini files. You can now graph custom data trough the PDH api.
- Removed Internal plugins for memio, eth0 and memcommit. Now replaced by PerfData plugins.
- New pre-configured plugins: procs, powerstate, handles and cpunew.
v 0.100
Download
Please read above information to understand what you are downloading, no support will be given. Project it not ready for production.