TODO: - HTML docs - convert all docs to online docs/, possibly a Wiki - create a FAQ rrdtool / no tcp/cpu/mem graph error: in main apache error log (not vdom error log): ERROR: unknown function 'LINE' the reason for this error is that RRDTool needs to be up to 1.2.x - architecture: - investigate moving to RRD perl modules - Net::SNMP need a way to determine whether an SNMP connection is valid; possibly just use timeouts (if a host has hit the timeout limit on checking the uptime, then consider the SNMP object not available). This will be good for updown = 'none' and others; might require moving to Net::SNMP, after all the SNMP_Session.pm clearly states to use other modules besides itself - protocols: - FTP - HTTP - HTTPS - SSH - NFS - Custom - need custom plugin architecture - etc/graph-styles.conf - possibly replace graph-colors.conf, or compliment to - be able to specify any group, or host of graphs; even be able to combine graphs if needed - elaborate on display_graph() pages (graphs 2-x), lasts, mins, maxes, - elaborate on all graphs - set std height x width, standard x/y grid labels - add in customizable thickness of lines, and connecting lines for the graphs - possibly integrate CSS stylesheets, themes - wireless plugin; graph all MAC addresses (traffic/power), will be able to tell how often it has connected - variable timeout option for updown (updown_timeout) in the future: - have a way to specify all interfaces (even ones that are down), possibly ranges - look into disk integer32 > 2TB limit for snmp ?? House keeping: Remove the following directories: remove dir unnoc/unnoc/unnoc/plugins/aironet remove dir unnoc/unnoc/unnoc/plugins/apc/load remove dir unnoc/unnoc/unnoc/plugins/apc/temp remove dir unnoc/unnoc/unnoc/plugins/apc remove dir unnoc/unnoc/unnoc/plugins/system-status remove dir unnoc/unnoc/unnoc/plugins/throughput remove dir unnoc/unnoc/unnoc/lib/throughput remove dir unnoc/unnoc/examples/mrtg/aironet-1 remove dir unnoc/unnoc/examples/mrtg/airport-1 remove dir unnoc/unnoc/examples/mrtg/apc remove dir unnoc/unnoc/examples/mrtg/environ1 remove dir unnoc/unnoc/examples/mrtg/netapp-1 Move the following files to the unnoc/unnoc/unnoc/plugins directory: unnoc/unnoc/unnoc/bin/check-aironets.pl unnoc/unnoc/unnoc/bin/check-airports.pl unnoc/unnoc/unnoc/bin/check-apcs.pl unnoc/unnoc/unnoc/bin/check-environ.pl unnoc/unnoc/unnoc/bin/check-netapp.pl Move these to unnoc/unnoc/unnoc/lib/plugins/wireless: unnoc/unnoc/unnoc/lib/plugins/aironet.php unnoc/unnoc/unnoc/lib/plugins/airport.php Move these to unnoc/unnoc/archive/bin: unnoc/unnoc/unnoc/bin/throughput.pl DONE: 2007-05-22 - DNS checking 2007-04-23 - MySQL - fix graphs - add response times - write docs for new MySQL plugin - OpenLDAP - change OpenLDAP plugin to not search whole thing - fix graphs - add in SSL, possibly even URL style access - add response times - get LDAP / MySQL graphs sorted out before they get added - write new protocol LDAP plugin - write docs for RRD LDAP plugin - PostgreSQL - PostgreSQL: http://www.postgresql.org/docs/current/static/monitoring-stats.html#MONITORING-STATS-VIEWS - select * from pg_stat_database; 2007-01-29 - funky bug, if a generic device goes down, then it will keep saying that it's down, then it's up after 2 tries, then down, then up after 2 tries, every two minues... something to look at. - remove 'switch' from README.config - changeable database name - test on windows, specifically interfaces (65539?). FIXED - latency per site (the millisecond response time from up/down), graph the latency - store the description of each host in the hosts table - add in ms response times for hosts ping/uptimes - specify on the main_*_page() why there is an alarm, maybe a mesg at the top? maybe... - add more details to netapp,uptime,temperature - remove ignore_hosts file, change to variable instead (ignore = 0) - look into aironet fix 4294967295 for numclients display. FIXED - possibly support APC PDU's (what would be monitored though?) - protocols: - add in a display box on the stats.php page for protocols that are monitored 2005-11-15 - new screenshots - for release: - remove protocol plugins (mysql openldap) - rm -f plugins/check-openldap.pl plugins/check-mysql.pl - rm -rf mrtg/ - run through doc/Changelog and TODO, update the WHATSNEW file - QA load averages and processes - fix: upgrade/* to work with the new config file structure - more example index.php files with new print_href() functions - write instructions for plugins-mrt2rrd.pl - display: hostname, location for APC's - make a 'description = snmp' option to pull from snmp - added print_href_* functions - removed firewall/router/switch for now, will add later if necessary - change print_links() function to have no plurals at all - add hostname specific prints for print_links() 2005-11-14 - workout all other options, interfaces_ vs *_interfaces, primary_interfaces etc - changed temp variable 'lumpy' to 'updown' - renamed nopage to page - renamed environ to em01 - double check the check_em01_* functions 2005-11-13 - update example unnoc.conf - updated documention - remove MRTG from README.* - write documentation (spec) - docs: - README.config - update README.config - add_hosts documentation - update docs putting stats vs hosts paging and alerting - procfix support (VERY DANGEROUS AND EXPERIMENTAL) - aironets (only tested on IOS), removed aironets.cgi - airports - apcs, (only Smart-UPS) - update docs putting stats vs hosts paging and alerting - update docs about the throughput plugin - update netapp - update throuhgput about how it's gone - update airport - updated README.addhosts - update aironet - update apcs - update environ - change uptime_type to uptime - change norrd to graph - update upgrade-config.pl to per host - leave in old code for old 1.0.5 style - updated the backend to account for fuzz 2005-11-12 - add protocol displays to host display page - fix "Plugins Statistics:" display for non-protocol-plugin hosts 2005-11-11 - move from MRTG to RRD: - routers / firewalls - fixed disks, emesg proper display now - make stats be the one say there's no response, get rid of pings + snmp (either or, not both) - possibly have stats report hosts down too ? combine hosts & stats to be more intuitive - fix interface graphs, properly remove them if they're down/up, from DB - each script takes care of it's own - php functions - update the stats.php, status() and check_host() 2005-11-10 - each script runs status(), calls host_is_up / host_is_down - all status is stored in the hosts table host, community, ping_no_response, snmp_no_response, uptime, uptime_desc, okay - functions.pl - &status (dbh => $dbh, $host => $host, community => $community, dtype => $dtype, type => $type) type is either ping or snmp (not both) - &host_is_down this will update the hosts table - &host_is_up this will update the hosts table - netapp - aironets - airports - apcs - stats - remove 'okay' and 'no_response' from stats table - environ 2005-11-09 - change cron_* vars to something else? - remove cron_uptime - removed throughput all together - interfaces, be able to specify interfaces explicitly - interval checking: - servers - aironets - airports - apcs - environ - hosts - netapp - remove MRTG - add firewalls, routers, switch to dtypes - make check-hosts run firewalls, routers and switches - set a default value for uptime_type - change stats to per host - change aironets to per host - change airports to per host - chagen apcs to per host - change environ to per host - change netapp to per host - update system status to per host - update unnoc-cron.pl to per host 2005-11-08 - more example index.php files with new print_links() functions - removed MRTG examples, updated unnoc.conf.example file, update index.php - added README.index - added update-graph-colors.pl, auto update from upgrade.sh - update update-config.pl to remove globals out of config file - README.procfix - display uptime for all aironets, airports, netapps, apcs - updated netapp docs - updated apcs docs - updated environ docs - updated airports docs - updated aironets docs - update docs about the throughput plugin 2005-11-07 - update apcs README file - updated throughput counters, accounted for reset counters (negative numbers) - added add_slashes/stripslashes for description and community for all functions 2005-11-06 - removed aironets.cgi - fixed throughput interfaces - fix autogenerated index.php's, combine them somehow - fix display.php all aironets/airports 2005-11-05 - add throughput interfaces to the interfaces table - possibly log throughput for all interfaces? - combined display.php?host= to search for a type of host to display - add a norrd array - finish noalert array - fix check_host() in stats.php - added APC's and EM01's to system status 2005-11-03 - added expereimental procfix support - added global remove_stale_disks function, each type cleans up after itself - added global remove_stale_interfaces function, each type cleans up after itself - fix system status plugin (uses disks table now for disks) - apcs - log battery capacity - number of battery packs - possibly have ap_type set in global variables (number instead of english word?) - airports plugin - get IP address from IP-MIB::ipNetToMediaPhysAddress - put in display='*' - new SNMP algorithm - integrate with 'wireless' table 2005-11-02 - add per client on aironets, use all native SNMP instead of Net::Telnet::Cisco - aironets - put the data in the db - format it on the web 2005-11-01 - went to new SNMP algorithm for check-apcs.pl - finish aironets perl script - get rid of "no response (try x)" until it comes back on 2005-10-30 - plugins to RRD aironets - mrtg2rrd.pl aironets - added Aironet RRD - switched stats, netapp, aironet to new snmp algorithm - switch it to use Net::SNMP for everything (get rid of BER and SNMP_Session)--possible speed increase? (no, switched algorithms though.. that was my speed increase) 2005-10-29 - mrtg2rrd.pl for environ - finished RRD environ plugin - mrtg2rrd.pl for airports - mrtg2rrd.pl for APC - finished RRD apc plugin 2005-10-28 - finished RRD netapp plugin - mrtg2rrd.pl netapp - standard way of printing graphs - put all disks into disk table, move from stats table 2005-10-27 - straighten out paths, always do full paths (other wwwroot's) 2005-10-23 - fixed mysql graph to work properly and do alerts - airport plugin done - fixed netapp php functions - standardize on a development architecture 2005-10-22 - place many global variables in unnoc.conf and functions.php 2005-10-21 - example snmpd.conf files, percentages 2005-10-20 - released 1.0.5 2005-10-20 - updated documentation about graph_colors.conf - update all README.* files for alternate port number / alternate SNMP version changes - update docs for no MRTG for servers, all RRDTool - migration tool from MRTG to RRD (started, in upgrade/) - migration tool for resizing the RRA's in the RRD's properly - find how to get full path name of a directory with unix cmd 2005-10-18 - change LDAP/ MySQL graphs to be more unnoc specific 2005-10-17 - better colors - fix system status plugin - fix LDAP / MySQL graph, proper display, one each - rrd_graphs / rrd_functions - think of a way to combine MRTG and unnoc, to where it will setup MRTG by itself if you add a host to the unnoc.conf, do things like cfgmaker & indexmaker and add in index.php file. OR make a regular index file but then put it in a std place and read in the index.html file with display.php... not sure 2005-10-15 - figure out how to do plugins for servers - styles / colors for all graphs: - centralize? - easy way to change colors 2005-10-14 - fix division by zero in memory code (if it doesn't exist in SQL yet) - also make interfaces appear not centered, but in line with other graphs (if there's only one interface monitored) - add interface monitoring somehow for servers, to replace MRTG - started migration from MRTG to RRD, for misc graphs on the display_stats page - remove all MRTG from servers only, replace with RRD (need some way to do some sort of cfgmaker, and not every time) (config file maybe ??) 2005-10-13 - changed all != 'NULL' occurences to IS NOT NULL, wrote SQL file to do this in the db - changed throughput plugin config syntax to be like the others port/version :: - added in SNMP v2 / port numbers for all hosts and stats and anything that is SNMP enabled - fixed check-environ.pl feature, added the alarm function back in - finished RRD zoom features, added all zoom functions to all RRD graphs 2005-10-20 - release 1.0.4 2005-10-05 - have check-stats.pl check hosts.host_down first, if it's down, don't bother - didn't do this one: have check-hosts.pl check stats.no_response, if it's not responding, don't bother there might be a condition where a server goes down and nobody gets notified 2005-09-24 - released 1.0.3 - finish the UPGRADE document - finish unnoc.1.0.3.conf differences 2004-09-23 - changed mrtg-cron.pl to unnoc-cron.pl, it calls everything now - added airports.php - fixed more airports functions, made them more robust 2005-09-22 - added apple airport MRTG example files - started implementation of airport plugin, first checkin - write README.unnoc.conf 2005-09-21 - added mrtg-cron.pl, a perl wrapper for calling mrtg from crontab - added mrtg variables to etc/unnoc.conf - added print_uptime() function to functions.php, display_server_stats() now displays uptime as well - removed description field from aironet plugin, have it pull from SNMP - added status_() functions, so that you can separately check disk usage, load average, processes and hosts; this is useful if you want to print this all out on index.php and have separate dots for stats and hosts, etc 2005-09-19 - centralize send_email functions to functions.pl 2005-09-16 - made read_config() search 6 levels up for etc/unnoc.conf, if it doesn't find it then it exits 2005-09-13 - implement humidity for APC plugin - implement temp and humidity checking for EM01 temp sensors - implement temp and load alerts for APC plugin 2005-09-12 - released 1.0.2 - added min/max values to uptime for 1.0.3-pre 2005-09-09 - set the uptime counter to actually mean something - ignore_hosts function - fixed system-status.pl 2005-09-08 new-stats branch: - update all the documentation for new methods - possibly set tab widths on all README files - make aironets.cgi be able to display html at the bottom on a per aironet basis, like it would replace the aironet1 MRTG index page for instance (ended up storing it in SQL instead and using php) - variable $no_response_tries in unnoc.conf that will determine how many times it tries to notify you of snmp{no_responses} (like flaky hardware) - added $wwwroot variable for relational paths - update the docs for /logos and paths - update check-netapp.pl to write to SQL and then implement the SQL calls for index.php - change check-apcs.pl to do an UPDATE / INSERT, rather than DELETE/INSERT - added display_server_stats ($host) function to functions.php, and all MRTG index files should have that function call them. Currently it's sitting in between the STATS tags, - wrote a migration tool to convert old style index.html files to new index.php style files 2005-09-06 new-stats branch: - update check-hosts.pl to write a okay=1 col - check-stats.pl; - change all of the mrtg/*/index.html files to mrtg/*/index.php, they will have three calls: check_load_average ('server'); check_disk_usage ('server'); check_processes ('server'); which will access the MYSQL database instead of writing index files directly 2005-09-03: new-stats branch: - write check-stats.pl to use more SELECT statements, less perl hashes (makes it more straightforward) this will require some major changes, will be much faster in the end - make check-stats.pl work without MRTG (have it create it's own index.html if it doesn't exist) 2005-09-01 - added some logos! 2005-08-31 - set versions on all plugins - set a version on unnoc somewhere 2005-08-30 - updated a few minor changes, release will be soon - document all of the separate plugins as separate plugins - separate network throughput, make it update to MySQL as well - updated throughput.pl to talk to the mysql db, no other files involved - updated config-parse.pl with two new variables for throughput - added throughput functions to functions.php - updated functions.pl, changed open_snmp_session to take a $port - minor update to check-apcs.pl, removed index_loc variable - documented - throughput - system status - aironets - APC load monitoring - temperature sensors (APC UPS temperatures) - separate everything that is the core system to it's own core - added a README.aironets - updated README, much more detailed 2005-08-29 - added a README.apc - added a README.netapp - updated aironets.cgi - added documentation for it (README.aironets) - centralized the variables to unnoc.conf (added 3 new variables to it) - increased the mysql table values to varchar(128) for most of them (for FQDN) - possibly a different way that check*.pl is run from /etc/crontab (no update_all.sh) - removed sql_do() functions from check-hosts and check-stats, moved it to lib/functions.pl - moved system-status.pl back to bin/ (it's only one file) - wrote check-apcs.pl, it will connect to a list of APC's and update their loads/temps to a db - updated unnoc.conf, it will read in all variables (everything is stored here) - added variables to config-parse.pl, so it will read them in - added example index.php file to examples/mrtg/apc/ - updated INSTALL documentation for check-apcs.pl - moved aironets.cgi back to bin/ (it's also only one file) - removed bin/update_all.sh, everything is called from crontab (like it should be) - added unnoc.log and system_status.log back to log/ - changed default community in mk_config to 'public' - removed apc and aironet from the plugins/ directory - updated plugins paths in the plugins/uptime/*.js files - added icons to plugins/uptime/icons/ directory - added index.php to unnoc/, it's basically index-1.php with temperature thrown into it - updated mysql_table file - updated crontab example file 2005-08-28 - set a plugin architecture, plugins/ directory, everything self contained - implemented system status, aironets, APC and network throughput as a plugin - documented system-status.pl stuff in the README file - updated check-*.pl to use new $unnoc_variable in unnoc.conf - set ignore_hosts as config file option - update system-status.pl to: * use mysql db only * check procs * check load averages * check disk usage - added 5 variables to unnoc.conf for system status 2005-08-27 - centralize red/green/yellow dots variables - updated throughput.pl and reset_throughput.pl, uses everything located in webroot instead of using hard coded /usr/local/var/db path - make a few other index.php examples, possibly remove the uptime counter - made throughput.pl update lib/throughput.html instead of directly updating index.php - set nopage option in config file - configurable option on which load averages to page/email on (load-1, load-5, load-15) 2005-08-26 - the adding process, mention add_device and add_file, created README.add_hosts - fixed some mysql code and hash functions that read in the mysql code (spec. removed 'id') - put all username/password combinations in the config file (so that bin/ dir is a dropin) - make sure everything is a drop in replacements, so nobody has to remove directories,etc to upgrade 2005-08-25 - find some way to have only one definition of $webroot, and that be in the config file ended up passing the main /var/www/unnoc/ dir to all executables.... could be better solution, but it works for now - put index.php functions into a functions.php library - put js stuff into it's own .js file - grey dots on the front page: - possibly have check-*.pl write to a mysql db if it's SUCCESSFULL also. just something short and to the point and check_host() in index.php can look at that db, anything not in there is considered grey - fix index.php, green dot/red dot/yellow dot code 2005-08-24 - removed meta txt files, have it pull all status from the mysql db - make noc.conf THE ONLY config file - set nested vars in noc.conf vim:tw=72:wm=1