# -----------------------------------------------------------------------
#  Copyright 2003-2007 by Alex Peeters [alex.peeters@citap.be]
# -----------------------------------------------------------------------

# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Author       : Alex Peeters [alex.peeters@citap.be]
Latest update: 10 Juni 2007
Version      : 3.000.014


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# TODO  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# TODO CURRENT VERSION  - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# VERIFY  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

...


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ MOVE instead of INSERT and DELETE ...


+ archive.pl
  - opruimen van /nav/_loop_<remoteuser>_pagedir/* als deze ouder zijn dan een week!


+ runCommandOnDemand.pl

  - Proxy kiezen bij OnDemand.
    - Mogelijkheid om bij een OnDemand te kiezen welke proxy te gebruiken uit een lijst. 

  - I would like to have the possibility to download the dump files (html, xml, ...) for OnDemand tests
    - html debug files for on demand tests

    - Bij ondemands extra combobox met 2 mogelijkheden:
      - Debug naar scherm
      - Debug naar file en een link naar de httpdump file

  - OnDemand run icoontje naar de hamertjes & vraagtekens.

  - remove password from debug before putting into database!
    + ASNMTAP::Asnmtap::Plugins::WebTransact & runCmdOnDemand.pl

  - Welke plugin kan op welke servers draaien.

  - tunnelen of laten doorverwijzen naar de juiste server.

  - OnDemand versus Display
    OnDemand
      CRITICAL - WebService ... (Production): 500 read timeout - 200 OK - getVersion (...:9108): 4.20063.13 - 200 OK - ping (...:9110): OK - 200 OK - monitorControls (...:9110): OK - 200 OK - getVersion (...:9110): 4.20063.13 - ...: WARNING|'ping (...:8080)'=172ms;;;; 'monitorControls (...:8080)'=29682ms;;;; 'getVersion (...:8080)'=25ms;;;; 'ping (...:9108)'=25ms;;;; 'monitorControls (...:9108)'=30022ms;;;; 'getVersion (...:9108)'=24ms;;;; 'ping (...:9110)'=24ms;;;; 'monitorControls (...:9110)'=18898ms;;;; 'getVersion (...:9110)'=23ms;;;; Status=2;1;2;0;3 Compilation=1523ms;;;0; Trendline=79.039s;;;; Execution=80579ms;;;0; 
    Display: afkapping op 254 characters
      CRITICAL - WebService ... (Production): 500 read timeout - 200 OK - getVersion (...:9108): 4.20063.13 - 200 OK - ping (...:9110): OK - 200 OK - monitorControls (...:9110): OK - 200 OK - getVersion (...:9110): 4.20063.13 - ...

    Values in VARCHAR columns are variable-length strings.
    The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions.

    TEXT A string with a maximum length of 65535 characters, from a variable length types that store large amounts of data.
    Is similar to a larger version of VARCHAR. These types can store a large piece of data information, but is also processed much slower.

  - OnDemand tests automatisch uitvoeren op de juiste probe.
    - OnDemand voor testen op probes zoals RAS, DMZ, ...

    - Vanuit de centrale console bij een ondemand automatisch deze uitvoeren op de probe waar deze ook draait vanuit de collector.
      Default optie.
      En custom optie om de test uit te voeren op een andere probe om een lokaal probleem op te sporen.
      Bv test draait default op de 8 bij een on demand uitvoeren op de 8 maar ook de mogelijkheid om uit te voeren op de 7. 


+ use MEMORY tables instead od TEMP tables!

+ yyyymmdd-test-ukey.sql-LOAD-DATA-FAILED unless ($deleted eq '0' and $skipped eq '0' and $warnings eq '0')
  LOAD DATA LOW_PRIORITY LOCAL INFILE '$path/$filename' INTO TABLE events FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n'
  -> 'statusMessage' > 254 characters: 'statusMessage' varchar [254] & 'perfdata' blob, to solve this problem ofwel alleen wat voor '|' staat in database stockeren ?
  -> alle 'yyyymmdd-test-ukey.sql-LOAD-DATA-FAILED' opzoeken en weergeven, zodat oplossing kan worden gezocht voor het geval er nog andere problemen mochten zijn
  -> hoe perfdata aan Perfparse toevoegen van 'yyyymmdd-test-ukey.sql' en/of 'yyyymmdd-test-ukey.sql-LOAD-DATA-FAILED' data?

      if ($updateEntryDBI) {
        $updateString = 'UPDATE ' .$SERVERTABLEVENTS. ' SET uKey="' .$uniqueKey. '", test="' .$test. '", title="' .$title. '", status="' .$status. '", startDate="' .$startDate. '", startTime="' .$startTime.'", endDate="' .$endDate. '", endTime="' .$endTime. '", duration="' .$duration. '", statusMessage="' .$statusMessage. '", step="' .($interval*60). '", timeslot="' .get_timeslot ($currentDate). '", persistent="' .$persistent. '", downtime="' .$downtime. '", filename="' .$filename. '" where uKey = "' .$uniqueKey. '" and step <> "0" and timeslot = "' . get_timeslot ($currentDate) . '" order by id desc';
        $dbh->do ( $updateString )  or $rv = errorTrapDBI($currentDate, $uniqueKey, $test, $title, $status, $startDate, $startTime, $endDate, $endTime, $duration, $statusMessage, $interval, $filename, "Cannot dbh->do: $updateString");
      } elsif ($insertEntryDBI) {
        $insertString = 'INSERT INTO ' .$SERVERTABLEVENTS. ' SET uKey="' .$uniqueKey. '", test="' .$test. '", title="' .$title. '", status="' .$status. '", startDate="' .$startDate. '", startTime="' .$startTime.'", endDate="' .$endDate. '", endTime="' .$endTime. '", duration="' .$duration. '", statusMessage="' .$statusMessage. '", step="' .($interval*60). '", timeslot="' .get_timeslot ($currentDate). '", persistent="' .$persistent. '", downtime="' .$downtime. '", filename="' .$filename. '"';
        $dbh->do ( $insertString ) or $rv = errorTrapDBI($currentDate, $uniqueKey, $test, $title, $status, $startDate, $startTime, $endDate, $endTime, $duration, $statusMessage, $interval, $filename, "Cannot dbh->do: $insertString");
      }

+ Groeperen Mails bij 'Holliday Schedulings'
  - Automatische mails met hetzelfde bericht maar verschillende applicaties consolideren in een bericht. 

+ Report with compilation times
  - To be able to evaluate the load evolution on our monitoring probes it would be useful to have a report with the compilation time evolution (perfparse based).  

+ Soap testen webservices uitgebreid rapport.  
  - Uitgebreid rapport met detail testen. Lijn in de display is vaak te kort. 

+ collectorDaemonSchedulingReports.pl
  - I need the possibility to generate the 'collectorDaemonSchedulingReports' for another timestamp

+ Version 3.000.015, 2007/xx/xx, Makefile.PL
                               - NEW Bundle::CPANPLUS::Dependencies 0.03
                                 , 'Bundle::CPANPLUS::Dependencies' => '0.03

  Warning: prerequisite CPANPLUS 0.78 not found.

  Warning: prerequisite Bundle::DBD::mysql 4.001 not found. We have 2.9002.

  Warning: prerequisite Net::IMAP::Simple 1.16 not found. We have 1.14.

  Warning: prerequisite Crypt::OpenSSL::X509 0.4 not found.
  Warning: prerequisite Crypt::SSLeay 0.53 not found.
  Warning: prerequisite IO::Socket::SSL 1.04 not found.

+ To be able to evaluate the load evolution on our monitoring probes it would be useful to have a report with the compilation time evolution (perfparse based).

+ I need the possibility to generate the 'collectorDaemonSchedulingReports' for another timestamp.

+ It would be useful and less 'screen consuming' if the error summary at the bottom of the index screens apeared in collapsed form. 

+ verify 'startTime' and 'endTime' by initialization !
  my ($startTimeSeconds, $startTimeMicroseconds) = gettimeofday();
  $_[0]->{_pluginValues}->{startTime}  = $startTimeSeconds .'.'. $startTimeMicroseconds;
  $_[0]->{_pluginValues}->{endTime}    = $_[0]->{_pluginValues}->{startTime};

+ SNMP module
  - Read and process an SNMP trap from Net-SNMP's snmptrapd
    http://search.cpan.org/~tonvoon/SNMP-Trapinfo-1.0/

  - http://www.unix.org.ua/orelly/networking_2ndEd/snmp/index.htm

+ PDFs gaan over de marge heen en tabel in rapporten wordt afgekapt.
  - upgrade to HTMLDOC 1.8.27 and verify parameters

+ AutoInstall with CPANPLUS
  CPANPLUS
    export http_proxy=http://proxy.citap.be:8080
    export ftp_proxy=http://proxy.citap.be:8080

    perl -MCPANPLUS -e shell
    CPANPLUS::Shell::Default -- CPAN exploration and module installation (v0.076)
    ...
    CPAN Terminal> x --update_source


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# ASAP  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ Introduction to the DOM of IE/ Firefox
  - http://www.javascriptkit.com/javatutors/ns6update.shtml

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ sshfs om rsu-ync te vervangen
  - http://fuse.sourceforge.net/sshfs.html

+ na database server disconnect automatische reconnect naar database server

+ collectorDaemonSchedulingReports.pl?
  - je wil de datum en het uur kunnen opgeven, n of meerder collectoren kunnen selecteren, en om echt moeilijk
    te doen, een plugin selecteren, en hiervan de collectoren zien op een tijdstip in't verleden?
  - je zou dan ook nog kunnen zeggen dat als je op de basis monitoing view zit, en de trendline is overschreden, 
    dat je de overeenkomstige grafiek onmiddelijk kan lanceren om te debugen.

+ omwille van de netwerktrafiek, resultaten in groep doorgegeven aan de database!

+ su - asnmtap -c "cd /opt/asnmtap-3.000.xxx/applications/master; ./DisplayCT-test.sh restart"

+ ExtUtils::Autoconf
  - Perl interface to GNU autoconf
    - http://www.seul.org/docs/autotut/
    - http://www.gnu.org/software/autoconf/manual/html_node/index.html

  Macro: AC_SUBST (variable, [value]) 
  Create an output variable from a shell variable. Make AC_OUTPUT substitute the variable variable into output files (typically one or more `Makefile's). 
  This means that AC_OUTPUT will replace instances of `@variable@' in input files with the value that the shell variable variable has when AC_OUTPUT is called. 
  This value of variable should not contain literal newlines. 

+ dubbele definitie in nzelfde script van 'use lib'
  - BEGIN { if ( $ENV{ASNMTAP_PERL5LIB} ) { eval 'use lib ( "$ENV{ASNMTAP_PERL5LIB}" )'; } }
  - use lib qw(/opt/ChartDirector/lib/.);

+ rsync-wrapper-...
  # if ($CAPTUREOUTPUT) {
  #   use IO::CaptureOutput qw(capture_exec);
  #   ($stdout, $stderr) = capture_exec($command);
  # } else {
    system ($command); $stdout = $stderr = '';
  # }

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ http://www.perlcircus.org/

+ http://www.sun.com/bigadmin/content/submitted/solaris_logadm.html

+ http://www.nagiosexchange.org/AddOn_Projects.22.0.html?&tx_netnagext_pi1[p_view]=818&tx_netnagext_pi1[page]=10%3A10


# Reports - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ SQLite
  - http://www.sqlite.org/ 
  - http://search.cpan.org/~msergeant/DBD-SQLite-1.13/

Nu:                     Toekomst:
------------            --------------------------------------------------
Minute: */10   versus   Minute:      */10       & Offset: minuten staat op collector
Hour:   7-21   versus   Timeperiode: 7:30-21:30

# optimalisation database
  - `activated` tinyint(1) NOT NULL default '0',
  - `activated` enum('0', '1') NOT NULL default '0',

reports, deselecteren wat niet geselecteerd mag worden voor de datum keuze

mogelijkheid om bepaalde applicaties niet in de view te steken gedurende bepaalde uren. 

Statistics: Monthly Average <- ASAP

Ingeven downtimes, inetctrl, ..., die niet aangekondigd werden, ingeven op 
een later tijdstip.  Dit zou moeten mogelijk zijn om bv de statistieken te 
kunnen corrigeren.

Oproepen van voorgedefineerde stats:
-> http://asnmtap.citap.be/cgi-bin/detailedStatisticsReportGenerationAndCompareResponsetimeTrends.pl?pagedir=test&pageset=index&debug=F&CGISESSID=9d47b3a72238e67381c46df51b903baa&detailed=on&uKey1=DUMMY-T5&uKey2=none&uKey3=none&startDate=2005-12-31&endDate=&inputType=fromto&year=2005&week=52&month=12&quarter=4&statuspie=on&errorpie=off&bar=off&hourlyAvg=off&dailyAvg=off&details=off&topx=off&pf=off&htmlToPdf=1

Trendline Correction Reports (for the Collector):
- Steekproefgemiddelde berekenen
  - http://www.let.leidenuniv.nl/history/res/stat/html/les8.html
  - trendline email -> no automatically updates -> table plugins: field trendlineAutoUpdate []
- De beste manier is volgens mij lineair te gaan interpoleren en te gaan kijken naar de richtingscofficint van de rechte.

generateCollectorCrontabSchedulingReport.pl, generateCollectorDaemonSchedulingReport.pl & generatePluginCrontabSchedulingReport.pl
- 'Problem regarding finding master or slave' in grafieken. Misschien beter in menu onderdukken.

collectorCrontabSchedulingReports.pl & collectorDaemonSchedulingReports.pl
- ipv alle collectors, deze laten kiezen waarvoor nodig!
- lijst laten zien van welke collectors we willen zien per probe!

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

+ distributed asnmtap plugins
  rsync-mirror-distributed-asnmtap-plugins-probe01.citap.be.sh
  rsync-mirror-distributed-asnmtap-plugins-probe01.citap.be.conf

+ echo $message | /bin/mailx -s "ASNMTAP Probe '`hostname`' alert regarding Start/Stop/Restart/Reload ..." asnmtap@citap.be

+ Makefile.PL
  - updaten van uid, path, ... in config files en scripts!

+ generateConfig.pl
  - bold voor master servers!

+ 500 SSL negotiation failed
  openssl s_client -connect www.citap.be:443 -state -debug
  http://www.securityfocus.com/infocus/1818
  http://tud.at/programm/apache-ssl-win32-howto.php3
  my $tries = 0; SSL: { if ( $response->status_line =~ /SSL negotiation failed/ ) { sleep 1; redo SSL unless $tries++ == 3; } }

+ imap4 => 'mailPR' uitbreiden voor lijst, zie proxy ...
  - _IMAP4            => { imap4 => 'mailPR', username => $username, password => $password },

    use Net::IMAP::Simple;
    $email = Net::IMAP::Simple->new ( $self->{_IMAP4}->{imap4}, port => $self->{_IMAP4}->{port}, timeout => $self->{_IMAP4}->{timeout} );

    unless ( defined $email ) {
      $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => "Cannot connect to IMAP4 server: $self->{_IMAP4}->{imap4}, $Net::IMAP::Simple::errstr" }, $TYPE{APPEND} );
      return ( $ERRORS{UNKNOWN} );
    }
 
    unless ( $email->login( $self->{_IMAP4}->{username}, $self->{_IMAP4}->{password} ) ){
      $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => "Cannot login to IMAP4 server: $self->{_IMAP4}->{imap4}, ". $email->errstr }, $TYPE{APPEND} );
      return ( $ERRORS{UNKNOWN} );
    }

    $numberOfMails = $email->select ( 'INBOX' );

    unless ( defined $numberOfMails ) {
      $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => "Cannot select my INBOX on IMAP4 server: $self->{_IMAP4}->{imap4}, ". $email->errstr }, $TYPE{APPEND} );
      return ( $ERRORS{UNKNOWN} );
    }

+ update version CheckDummy.pdf

+ select distinct test from plugins where activated = 0 and test not in (select distinct test from plugins where activated = 1)

+ Plugins Configurated <-> Plugins Uploaded
  - Plugin ... Message
  - check_ecommunities-search-download.pl controleer of deze zich bevinden in '_not_activated'

+ ASNMTAP::Asnmtap::Applications
  awstats icon onderdrukken dmv element in de config voorzien?

+ generateConfig.pl
  - edit, delete, duplicate and maintenance button for 'Plugin' and 'Help Plugin Filename'
    &amp;plugin=$plugin&amp;todo=delete
    &amp;plugin=$test&amp;todo=edit
    &amp;plugin=$test&amp;todo=maintenance

    &amp;helpPluginFilename=$helpPluginFilename&amp;todo=delete
    &amp;helpPluginFilename=$helpPluginFilename&amp;todo=duplicate
    &amp;helpPluginFilename=$helpPluginFilename&amp;todo=edit

  - fix rights regarding chmod 755 to fix rights for new CollectorCT-.*sh or DisplayCT-.*sh script

+ sortering bij up/down pijltjes omdraaien

+ select ukey, title, arguments from plugins
  where environment = 'P' and activated = 1
    and test not in (select test from plugins where environment = 'A' and activated = 1)
  order by title, uKey

+ validation error regarding URLs '&'
  URLs: replace '&' with '&amp;' because & is reserved character

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

? Makefile.pl -> Maken van backup van oude versie (de files die je wil overschrijven van de vorige installatie)
  heb momenteel nog geen idee hoe dit moet, kan hierover niets terugvinden

? INSTALL file op het einde van de installatie weergeven
  heb momenteel nog geen idee hoe dit moet, kan hierover niets terugvinden

? No problems but I was a little bit wary of the perl Makefile.PL wanting to create directories and copy files across at that stage.
? I suppose normally I wouldnt expect any changes apart from local directory changes until I do a make install.

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Menu voor Moderator, Admin en Sadmin aanpassen ingeval van Distributed Servers. Hier moeten sommige menuonderdelen onderdrukt worden.

Display & Collector startup script: hostname = Central FQDN Database Server by default. For a probe must this be the central database server

alias toevoegen bij servers.pl ?

Windows Internet Explorer 7.0 & Firefox
- ipv een nieuw window te openen, zou dit een nieuwe tabblad moeten zijn

perl /opt/asnmtap/applications/sbin/purge_table.pl -H dtbs.citap.be -D odbc -T 'qpasa-archive' -u asnmtap -p asnmtap --ago='-14 days'
- table 'snmptt_archive' and 'snmptt_unknown_archive': archivetime toevoegen
  Cannot dbh->do: DELETE FROM `snmptt_unknown_archive` WHERE archivetime < "1161727200"

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Makefile.pl -> SIGN 
  When true, perform the generation and addition to the MANIFEST of the SIGNATURE file in the distdir during 'make distdir', via 'cpansign -s'.
  Note that you need to install the Module::Signature module to perform this operation.
  Defaults to false.

updated ASNMTAP::Asnmtap::Plugins::NPTest v1.13
  all *.t scripts need to be modified, is now also object oriented!
 
# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

smoothline (spline layers) for trendline and bar statistics

update into all tables the numeric int where needed: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

database-purge-perfdata, archiver.pl, generateCollectorDaemonSchedulingReports.pl, generateReports.pl 
& holidayBundleSetDowntimes.pl laten uitvoeren door de enkelvoudig crontab script.

Rsync: KeyRsync kan verschillend zijn per server

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

set foreign_key_checks=0;
delete from perfdata_host where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service_bin where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service_metric where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
delete from perfdata_service_raw where host_name not in (select concat( LTRIM(SUBSTRING_INDEX(plugins.title, ']', -1)), ' (', environment.label, ')' ) as title from plugins, environment where plugins.environment=environment.environment and activated=1);
set foreign_key_checks=1;

# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

http://search.cpan.org/~dbrobins/Net-SSH2-0.09/
or
http://search.cpan.org/~cbarratt/File-RsyncP-0.52/lib/File/RsyncP.pm
or
http://www.cis.upenn.edu/~bcpierce/unison/


# BUGS  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

It's not a bug, it's a missing feature!

1) malformed header from script. Bad header=: generateChart-new.pl, referer: http://asnmtap.citap.be/cgi-bin/detailedStatisticsReportGenerationAndCompareResponsetimeTrends-new.pl

2) generateReports.sh: error undefined value wanneer er geen records zijn :)


# NEW VERSION 3.001.xxx - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ASNMTAP MySQL Injection bug prevention?
- SQL Injection is very critical.
  solution: dbh->quote($user)
  $sql = 'select * from users where username='. dbh->quote($user);

ASNMTAP Cross-site scripting (XSS) prevention?
- We need to verify that all strings are encoded( html_textencode() )


# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

fixRights.sh
- automatisch aanmaken
- launch script before restart daemon

http://asnmtap.citap.be/asnmtap/nav/index/reports-index.html 
- hier een url naar de plugin times plaatsen, is makkelijker om te onthouden 

Generate XML for monitoring by Nagios, ...


# Plugins - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Indien een mailtest offline is -> intresseert het resultaat ons niet, display offline, plugin toch draaien maar die mails deleten.
MAW bij plugin moet dit kunnen worden opgegeven als plugintype of iets dergelijks!!!

voor plugins, ook optie delete voorzien voor plugins dewelke door acrhiver na x maanden mogen opgekuist worden

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

http://search.cpan.org/~tonvoon/Nagios-Plugin-0.10

  Warning and Critical: checking threshold range format

  Performance Data: checking the expected format
  - 'label'=value[UOM];[warn];[crit];[min];[max]
  - /lib/Nagios/Plugin/Performance.pm


# Display - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Correcte werking van toggle button & environment switch.

Restart Collector and Display: Ledig geworden collector moet overal worden verwijderd !!!

multyoffline, status in database offline -> in display als nog te testen weergaven

offline door holiday of scheduling niet in condenced view

offline door comment in condenced view

proxy caching statische pagina's

.cache files                                                     <- sound

applications/custom/display.pm-orig                    <- custom function

Openen van 'Help en Commands' into new window!


# Applications  - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

chromeless function update for MSIE 7.0 en Firefox !!!

Algemeen: Navigatie A..Z en laten zoeken naar item mogelijk maken.

Email mailtemplates om mailboodschappen taalonafhangkelijk te maken
-> "Geachte, Cher,\n\n$header\n\n$CcommentData\n\n-- $APPLICATION\n$DEPARTMENT\n$BUSINESS\n"

Comments kunnen zetten op een groep testen via multiselect
# update comments set activationTime='hh:mm:ss', activationTimeslot='1149836400', suspentionDate='yyyy-mm-dd',  suspentionTimeslot='hh:mm:ss', suspentionTimeslot='1149854400', downtime=1 where entryDate='yyyy-mm-dd' and remoteUser='...'

rename uKey of andere key plus overal waar gebruikt en delete plugin, ... met alle dependencies,

delete user gaat niet omwille van de contrains met comments en events -> delete waarbij contrain tijdelijk afzetten!

In view.pl -> selecteer + groeptitle toevoegen

In view.pl -> omvormen naar multiselect 'Display Daemon'

sending email to moderator/admin/sadmin
- collector                       : $SENDEMAILTO
- display                         : $SENDEMAILTO
- contact                         : $SENDEMAILTO
- error_trap_DBI                  : $SENDEMAILTO
- check_nagios-comments-cleanup.pl: $SENDEMAILTO


# NEW VERSION 4.xxx.xxx - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Atom 1.0 feeds versus RSS 2.0 feeds
- http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared
- http://www.nimblecode.com/articles/2005/07/17/rss-as-an-error-reporting-mechanism

RSS feeds as an Error Reporting Mechanism, 0.91, 1.0 and 2.0
- cpan XML::RSS @ http://search.cpan.org/~abh/XML-RSS-1.20/
- rss4nagios-1.1.tar.gz @ http://altinity.blogs.com/dotorg/2006/07/lessons_in_rss.html


# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

depricate --httpdump & --dumphttp: tijdelijk voor backwards compatibiliteit !!!

icon environment, missing plugin parameters; omdat er niet meer informatie aanwezig is in de Display config file?

Implementation from 'HTML::HTMLDoc::PDF ' located at 'http://search.cpan.org/~mfrankl/HTML-HTMLDoc-0.10/'

http://search.cpan.org/~bmorrow/PerlInterp-0.03/Perl.pm

Innodb Tranasction, bij mislukking is csv bestand wegschrijven en via archiver.pl importeren.

user.pl
- Sending email for: Downtime Scheduling Generated Reports, nagaan of de gebruiker dit zelf moet kunnen aanpassen en/of zien?

Embedded Perl ASNMTAP ondersteuning aangaande de plugins, gebasseerd op EPN!
- ExtUtils::Embed, which is a collection of utilities for embedding perl

SNMP compatibility regarding the return status off the plugins

http://www.hswn.dk/hobbitsw/

Big Brother / Hobbit compatibility for easy addaptation off these plugins


# Applications  - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Debug files into glob field database.


# Collector - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

nieuwe crontab optie: seconds om een crontab te kunnen verschuiven

Debug file for UNKNOWN !!!

  
Sending 'Notifications'
-----------------------

plugins -> `timeperiod`, `notificationEnabled`, `notificationOptions`
users   -> `timeperiod`, `notificationEnabled`, `notificationOptions`, `notificationFormat`, `notificationWhen`,
                          [0|1]                   [1|2|3] or [W|C|U]    email to start ?      [n fails], after
                                          [WARNING|CRITICAL|UNKNOWN]    email, pager, sms     test fails n times
                         `notificationInterval`,                       `notificationRecovered`
                          [0|n min], 0 once                             [0|n|F], 
                          repeat every n min until problem solved       n: send notification when problem is solved after after n times ok, 
						                                                f: send notification when problem is solved using formule
                                                                           formule: min 3 <= (30 min / interval) <= max 9


Notification send where plugins->`notificationEnabled` is set
  to the users where users->`notificationEnabled` is set
  for the users->`pagedirs` into the range from plugins->`pagedirs`
    /<pagedir 1>/<pagedir 2>/<pagedir n>/ into the range from /<pagedir 1>/<pagedir 2>/<pagedir m>/
  for the plugins->`timeperiod` into the range from users->`timeperiod`


# /cgi-bin/admin/titles.pl  - - - - - - - - - - - - - - - - - - - - - - -
Webinterface to add, edit and delete titles


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Weetjes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Perl modules en SSL (ex. Crypt::OpenSSL::Random), Makefile.PL:
- replace
  'LIBS' => ['-lssl -lcrypto'],
- with
   my $INCLUDE = "/opt/asnmtap/ssl/include";
  'LIBS' => ['-L/opt/asnmtap/ssl/lib -lssl','-L/opt/asnmtap/ssl/lib -lcrypto'],
- or verify the the next can do the same?
  perl Makefile.PL INSTALL_BASE=/opt/asnmtap/cpan-shared/ INC=-I/opt/asnmtap/ssl/include LIBS=-L/opt/asnmtap/ssl/lib LDFLAGS='-lssl -lcrypto'

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Crypt::SSLeay is broken and this is the fix (version 0.51)

http://mail-archives.apache.org/mod_mbox/httpd-test-dev/200301.mbox/%3c5.2.0.9.2.20030130000312.028ea1b8@pop3.rowe-clan.net%3e

Turns out that there's a bug in the code, and a one-liner patch to SSLeay.xs fixes it. There's even an RT ticket on the matter. Grrr!

So, if you see the following warning in your build:

  SSLeay.xs:252: warning: passing arg 2 of `SSL_set_info_callback' from incompatible pointer type

... and the test dumps core, then patch the source as follows:

--- SSLeay.xs.orig   2002-08-01 17:43:22.000000000 -0400
+++ SSLeay.xs 2003-01-29 21:41:17.000000000 -0500
@@ -109,6 +109,7 @@
SSLeay_add_all_algorithms();
SSL_load_error_strings();        ERR_load_crypto_strings();
+       SSL_library_init();       bNotFirstTime =
1;    }  

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Here is patch to the Net_SSLeay.pm-1.30 that will allow the IO-Socket-SSL-1.01 to work with OpenSSL-0.9.8ab. 

It may not be needed with 0.9.8c.

--- SSLeay.xs_ORIG      2006-11-08 14:36:19.546828000 -0600
+++ SSLeay.xs   2006-11-08 14:36:58.538142000 -0600
@@ -815,7 +815,7 @@
 #endif
        if (strEQ(name, "OP_ALL"))
 #ifdef SSL_OP_ALL
-           return SSL_OP_ALL;
+           return (SSL_OP_ALL & ~SSL_OP_TLS_BLOCK_PADDING_BUG);
 #else
            goto not_there;
 #endif

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

crontab: eenmaal per dag

/opt/asnmtap/applications/archive.sh
/opt/asnmtap/applications/bin/generateCollectorDaemonSchedulingReports.sh

if [ -e /opt/asnmtap/log/perfparse-asmtap-all ]
then
  rm /opt/asnmtap/log/perfparse-asmtap-all
fi

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

