├── .gitignore ├── README ├── htdocs ├── RRDTOOL-SMI.txt ├── TORRUS-MIB.txt ├── Torrus-Swinog16.odp ├── Torrus-Swinog16.pdf ├── contrib │ └── sam_stickland_convert_mrtg_to_torrus.pl ├── devdoc │ └── index.html ├── index.html ├── logo │ ├── adtaq.png │ ├── binary_solutions.png │ ├── bluewin.png │ ├── cablecom.png │ ├── fibrenoire.png │ ├── gpstechnik.png │ ├── gsid.png │ ├── kfn.png │ ├── nexellent.png │ ├── prioritycolo.png │ ├── quicknet.png │ ├── sevenspace.png │ ├── syscovery.png │ └── torix.png ├── manpages │ └── index.html ├── plugins │ └── index.html ├── torrus-functional-overview.odp ├── torrus-functional-overview.pdf ├── torrusdoc.css └── upload.sh ├── plugins ├── cbqos │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── Collector │ │ ├── Cisco_cbQoS.pm │ │ └── Cisco_cbQoS_Params.pm │ ├── DevDiscover │ │ └── CiscoIOS_cbQoS.pm │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── cisco-cbqos-ddcfg.pl │ ├── cisco-cbqos-torruscfg.pl │ ├── cisco.ios.cbqos.xml │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ └── tp-cisco-cbqos.pod ├── dummy │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── DummyModule.pm │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ ├── missing │ │ └── mkinstalldirs │ ├── dummy-ddcfg.pl │ ├── dummy-torruscfg.pl │ ├── dummy-wrapper.sh │ ├── dummy.xml │ ├── dummyscript.in │ ├── dummytemplate.html │ ├── substvars.sh.in │ └── tp-dummy.pod ├── easytarget │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── EasyTarget.pm │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ ├── easytarget-config.pl │ ├── easytarget-siteconfig.pl │ ├── easytarget-wrapper.sh │ ├── easytarget.in │ ├── substvars.sh.in │ └── tp-easytarget.pod.in ├── httpcollector │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── Http.pm │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── apache.httpd.xml │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ ├── httpcollector-torruscfg.pl │ ├── localhost-apache1.xml │ ├── localhost-apache2.xml │ └── tp-httpcollector.pod ├── m-net │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── DevDiscover │ │ └── M_net.pm │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ ├── m-net-ddcfg.pl │ ├── m-net-monitors.xml │ └── tp-m-net.pod ├── overview │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ ├── missing │ │ └── mkinstalldirs │ ├── css │ │ ├── ov-mozilla.css │ │ ├── ov-printer.css │ │ ├── ov.css │ │ └── overview.css │ ├── menu │ │ ├── bg.jpg │ │ ├── credits.htm │ │ ├── menu.css │ │ ├── menu.gif │ │ ├── menu.js │ │ ├── menu.xsl.in │ │ ├── sampleMenu.xml │ │ ├── torrus.ico │ │ └── welcome.htm │ ├── ovDefaults.xml │ ├── ovExample.xml │ ├── ov_substvars.sh.in │ ├── overview-torruscfg.pl │ ├── overview │ │ ├── common.inc │ │ ├── overview.xsl.in │ │ └── sampleOverview.xml │ ├── templates │ │ ├── default-chooser.html │ │ ├── default-dir.html │ │ ├── default-recursivedir.html │ │ ├── default-tset.html │ │ ├── expanded-dir.html │ │ ├── html-incblocks.txt │ │ ├── item-rrd.html │ │ ├── overview-subleaves.html │ │ ├── sub-nodes-dir.html │ │ ├── tab-rrd.html │ │ └── tset-list.html │ ├── tp-overview.apache.conf.in │ ├── tp-overview.pod │ └── xtree │ │ ├── I.png │ │ ├── L.png │ │ ├── Lminus.png │ │ ├── Lplus.png │ │ ├── T.png │ │ ├── Tminus.png │ │ ├── Tplus.png │ │ ├── blank.png │ │ ├── file.png │ │ ├── foldericon.png │ │ ├── new.png │ │ ├── openfoldericon.png │ │ ├── xtree.css │ │ └── xtree.js.in ├── randomcollector │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── Random.pm │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ ├── genrandomcfg.in │ ├── genrandomcfg.xml │ ├── random.xml │ ├── randomcollector-torruscfg.pl │ ├── randomcollector-wrapper.sh │ ├── substvars.sh.in │ └── tp-randomcollector.pod ├── rawexport │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── RawExport.pm │ ├── RawExport_Params.pm │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ ├── rawexport-example.xml │ ├── rawexport-torruscfg.pl │ └── tp-rawexport.pod ├── rrdfit │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── configure.ac │ ├── conftools │ │ ├── config.guess │ │ ├── config.sub │ │ ├── install-sh │ │ └── missing │ ├── rrdfit-wrapper.sh │ ├── rrdfit.in │ ├── substvars.sh.in │ └── tp-rrdfit.pod.in └── siam │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── SIAM.pm │ ├── SIAMDD.pm │ ├── SIAMDD │ ├── APC_PowerNet.pm │ └── IFMIB.pm │ ├── SIAMLogger.pm │ ├── configure.ac │ ├── conftools │ ├── config.guess │ ├── config.sub │ ├── install-sh │ └── missing │ ├── siam-config.pl │ ├── siam-ddconfig.pl │ ├── siam-siteconfig.pl │ ├── siam-wrapper.sh │ ├── siam_genddx.in │ ├── siam_rebuild.in │ ├── siam_rrdfetch.in │ ├── substvars.sh.in │ └── tp-siam.pod.in └── src ├── AUTHORS ├── COPYING ├── ChangeLog ├── INSTALL ├── Makefile.am ├── NEWS ├── README ├── TODO ├── bin ├── Makefile.am ├── acledit.in ├── action_notify.in ├── action_printemail.in ├── action_snmptrap.in ├── action_snmpv1trap.in ├── buildsearchdb.in ├── cleanup.in ├── collector.in ├── compilexml.in ├── configinfo.in ├── configsnapshot.in ├── devdiscover.in ├── flushmonitors.in ├── gc.in ├── genddx.in ├── genlist.in ├── genreport.in ├── install_plugin.in ├── launcher.in ├── monitor.in ├── nodeid.in ├── rrddir2xml.in ├── schedulerinfo.in ├── snmpfailures.in ├── srvderive.in ├── torrus.fcgi.in ├── torrus.in └── ttproclist.in ├── configs ├── Makefile.am ├── devdiscover-config.pl ├── devdiscover-siteconfig.pl ├── email-siteconfig.pl ├── initscript.conf ├── notify-siteconfig.pl ├── snmptrap-siteconfig.pl ├── torrus-config.pl └── torrus-siteconfig.pl ├── configure.ac ├── conftools ├── config.guess ├── config.sub ├── install-sh └── missing ├── critic.profile ├── discovery └── README ├── doc ├── ABOUT ├── Makefile.am ├── devdoc │ ├── architecture.pod │ ├── devdiscover.pod │ ├── progstyle.pod │ └── v3_changes ├── headers ├── install.pod.in ├── manpages │ ├── Makefile.am │ ├── torrus.pod.in │ ├── torrus_acledit.pod.in │ ├── torrus_action_notify.pod.in │ ├── torrus_action_printemail.pod.in │ ├── torrus_action_snmptrap.pod.in │ ├── torrus_buildsearchdb.pod.in │ ├── torrus_cleanup.pod.in │ ├── torrus_clearcache.pod.in │ ├── torrus_collector.pod.in │ ├── torrus_compilexml.pod.in │ ├── torrus_configinfo.pod.in │ ├── torrus_configsnapshot.pod.in │ ├── torrus_devdiscover.pod.in │ ├── torrus_flushmonitors.pod.in │ ├── torrus_genddx.pod.in │ ├── torrus_genlist.pod.in │ ├── torrus_genreport.pod.in │ ├── torrus_install_plugin.pod.in │ ├── torrus_launcher.pod.in │ ├── torrus_monitor.pod.in │ ├── torrus_nodeid.pod.in │ ├── torrus_rrddir2xml.pod.in │ ├── torrus_schedulerinfo.pod.in │ ├── torrus_snmpfailures.pod.in │ ├── torrus_srvderive.pod.in │ └── torrus_ttproclist.pod.in ├── mkhtdocs.sh ├── nodeid_usage.pod.in ├── reporting_setup.pod.in ├── rpnexpr.pod.in ├── scalability.pod.in ├── snmpdiscovery.pod.in ├── stylingprofile.pod.in ├── torrus_rrdworld.xml ├── userguide.pod.in ├── vendorsupport.pod.in ├── webintf.pod.in └── xmlconfig.pod.in ├── examples ├── Makefile.am ├── README ├── onms.tmpl ├── onmsInterfaces.sh ├── setmonitor.xupdate.xml ├── torrus-siteconfig.powerbook.pl └── v3_perf │ ├── read.pl │ ├── results │ └── write.pl ├── init.d └── torrus.in ├── lib ├── Makefile.am └── Torrus │ ├── ACL.pm │ ├── ACL │ ├── AuthLocalMD5.pm │ ├── Edit.pm │ ├── Export.pm │ └── Import.pm │ ├── AgentConfig.pm │ ├── AgentScheduler.pm │ ├── CGI.pm │ ├── Collector.pm │ ├── Collector │ ├── CDef.pm │ ├── CDef_Params.pm │ ├── ExtDBI.pm │ ├── ExternalStorage.pm │ ├── RRDStorage.pm │ ├── SNMP.pm │ ├── SNMP_Params.pm │ ├── SNMP_TS.pm │ └── SNMP_TS_Params.pm │ ├── ConfigBuilder.pm │ ├── ConfigTree.pm │ ├── ConfigTree │ ├── Validator.pm │ ├── Writer.pm │ └── XMLCompiler.pm │ ├── DataAccess.pm │ ├── DevDiscover.pm │ ├── DevDiscover │ ├── ALU_Timetra.pm │ ├── APC_PowerNet.pm │ ├── ATMEL.pm │ ├── Actelis.pm │ ├── Albis_ULAF.pm │ ├── AlliedTelesyn_PBC18.pm │ ├── Alteon.pm │ ├── Apple_AE.pm │ ├── Arbor_E.pm │ ├── Arista.pm │ ├── AscendMax.pm │ ├── AxxessIT.pm │ ├── BetterNetworks.pm │ ├── CCOM.pm │ ├── CasaCMTS.pm │ ├── CiscoCatOS.pm │ ├── CiscoFirewall.pm │ ├── CiscoGeneric.pm │ ├── CiscoIOS.pm │ ├── CiscoIOS_Docsis.pm │ ├── CiscoIOS_MacAccounting.pm │ ├── CiscoIOS_SAA.pm │ ├── CiscoNCS2000.pm │ ├── CiscoSCE.pm │ ├── CiscoVDSL.pm │ ├── CiscoWLC.pm │ ├── CompaqCIM.pm │ ├── ComtechEFData.pm │ ├── Denkovi.pm │ ├── DevDetails.pm │ ├── EmpireSystemedge.pm │ ├── F5BigIp.pm │ ├── FTOS.pm │ ├── Fortinet.pm │ ├── Foundry.pm │ ├── IEEE8021_CFM_MIB.pm │ ├── Jacarta.pm │ ├── JunOS.pm │ ├── Liebert.pm │ ├── MEF_SOAM_PM_MIB.pm │ ├── MicrosoftWindows.pm │ ├── MotorolaBSR.pm │ ├── NetApp.pm │ ├── NetBotz.pm │ ├── NetScreen.pm │ ├── NexComm.pm │ ├── OracleDatabase.pm │ ├── Paradyne.pm │ ├── Patton.pm │ ├── RFC1628_UPS_MIB.pm │ ├── RFC1657_BGP4_MIB.pm │ ├── RFC1697_RDBMS.pm │ ├── RFC2011_IP_MIB.pm │ ├── RFC2662_ADSL_LINE.pm │ ├── RFC2670_DOCS_IF.pm │ ├── RFC2737_ENTITY_MIB.pm │ ├── RFC2790_HOST_RESOURCES.pm │ ├── RFC2863_IF_MIB.pm │ ├── RFC4293_IP_MIB.pm │ ├── RFC4319_HDSL2_SHDSL_LINE_MIB.pm │ ├── Symmetricom.pm │ ├── Thomson_xDSL.pm │ ├── UcdSnmp.pm │ └── Xylan.pm │ ├── Log.pm │ ├── Monitor.pm │ ├── RPN.pm │ ├── Redis.pm │ ├── Renderer.pm │ ├── Renderer │ ├── AdmInfo.pm │ ├── Frontpage.pm │ ├── HTML.pm │ ├── Health.pm │ ├── RPC.pm │ └── RRDtool.pm │ ├── ReportGenerator.pm │ ├── ReportGenerator │ └── MonthlySrvUsage.pm │ ├── ReportOutput.pm │ ├── ReportOutput │ ├── HTML.pm │ └── XLSX.pm │ ├── SNMP_Failures.pm │ ├── SQL.pm │ ├── SQL │ ├── ReportFields.pm │ ├── Reports.pm │ └── SrvExport.pm │ ├── Scheduler.pm │ ├── Scheduler │ └── PeriodicTask.pm │ ├── SchedulerInfo.pm │ ├── Search.pm │ ├── ServiceID.pm │ └── SiteConfig.pm ├── scripts ├── rrdup_notify.sh └── xml │ └── extract-skeleton.xsl ├── setup_tools ├── check_perlthreading.pl ├── configure_fhs ├── cpanm_install_modules.sh ├── mkvardir.sh.in ├── normalize-all-sources.pl └── substvars.sh.in ├── sup ├── Makefile.am ├── dtd │ ├── snmp-discovery.dtd │ └── torrus-config.dtd ├── mibs │ ├── RRDTOOL-SMI.txt │ └── TORRUS-MIB.txt ├── styling │ ├── ICONS │ ├── colornames.pl │ ├── critical.png │ ├── good.png │ ├── rainbow-schema.pl │ ├── torrus-schema.pl │ ├── unknown.png │ └── warning.png └── webplain │ ├── explain-rrdgraph.html │ ├── torrus-printer.css │ ├── torrus-report.css │ └── torrus.css ├── systemd ├── torrus.service.in └── torrus.tmpfile.in ├── templates ├── aclexport.xml ├── adminfo.html ├── default-chooser.html ├── default-dir.html ├── default-helptext.html ├── default-login.html ├── default-recursivedir.html ├── default-rrd.html ├── default-tset.html ├── email-alarm.txt ├── expanded-dir.html ├── globalsearch.html ├── html-incblocks.txt ├── iframe-rrd.html ├── overview-subleaves.html ├── report-index.html ├── report-monthly.html ├── report-serviceid.html ├── report-yearly.html ├── search.html └── tset-list.html └── xmlconfig ├── Makefile.am ├── cdef-collector-defs.xml ├── defaults.xml ├── examples ├── adsl-monitors.xml ├── apc-ups.xml ├── ascend.max.xml ├── docsis-monitors.xml ├── generic-netsnmp.xml ├── hpux.xml ├── monitors.xml ├── rainbow-schema.xml ├── servers.data └── servers.tmpl ├── generic ├── collector-periods.xml ├── mef-soam-pm-mib.xml ├── monitors.xml ├── rfc1628.ups.xml ├── rfc1697.rdbms.xml ├── rfc2662.adsl-line.xml ├── rfc2670.docsis-if.xml ├── rfc2790.host-resources.xml ├── rfc2863.if-mib.xml ├── rfc4293.ip-mib.xml └── rfc4319_hdsl2_shdsl_line.xml ├── old ├── cisco-mac-accounting-example.xml ├── cisco.generic.old-0.1.4.xml ├── cisco.ios.mac-accounting-0.1.8.xml ├── rfc1213.xml ├── rfc2670.docsis-if.old.0.1.5d-20040224.xml ├── rfc2670.docsis-if.old.1.0.4.xml ├── rfc2863.if-mib.old-0.1.4.xml ├── rfc2863.if-mib.old-0.1.7.xml └── snmp-defs.old-0.1.2.xml ├── site-global.xml ├── snmp-defs.xml └── vendor ├── albis-ulaf.xml ├── alteon.xml ├── alu-timetra.xml ├── apc.powernet.xml ├── apc.ups.xml ├── apple.ae.xml ├── arbor_e.xml ├── ascend.max.xml ├── atmel.xml ├── betternetworks.xml ├── casa-cmts.xml ├── cisco.firewall.xml ├── cisco.generic.xml ├── cisco.ios.docsis.xml ├── cisco.ios.mac-accounting.xml ├── cisco.ios.saa.xml ├── cisco.ios.xml ├── cisco.sce.xml ├── cisco.vdsl-line.xml ├── cisco.wlc.xml ├── compaq.cim.xml ├── comtechefdata.xml ├── denkovi.xml ├── empire.systemedge.ntregperf.xml ├── empire.systemedge.xml ├── f5.bigip.xml ├── fortinet.xml ├── foundry.xml ├── ftos.xml ├── hp.hpux.xml ├── hp.procurve.xml ├── jacarta.xml ├── junos.xml ├── liebert.xml ├── microsoft.windows.xml ├── motorola.bsr.xml ├── netapp.filer.xml ├── netbotz.xml ├── netscreen.xml ├── oracle.database.xml ├── paradyne.xdsl.xml ├── smokeping.xml ├── symmetricom.xml ├── ucd.ucd-snmp.diskio.xml └── ucd.ucd-snmp.xml /README: -------------------------------------------------------------------------------- 1 | Torrus.org source code 2 | 3 | 4 | Donations 5 | --------- 6 | BTC: 18hG6hfnocrvr2Jn1TvSQRFywt6psxTEjM 7 | ETH: 0x6BF743E7F92DCa5CDf5C7F36BDe4cf76896336aB 8 | -------------------------------------------------------------------------------- /htdocs/RRDTOOL-SMI.txt: -------------------------------------------------------------------------------- 1 | RRDTOOL-SMI DEFINITIONS ::= BEGIN 2 | 3 | IMPORTS 4 | MODULE-IDENTITY, 5 | OBJECT-IDENTITY, 6 | enterprises 7 | FROM SNMPv2-SMI; 8 | 9 | rrdtool MODULE-IDENTITY 10 | LAST-UPDATED "200209150000Z" 11 | ORGANIZATION "RRD Tool" 12 | CONTACT-INFO 13 | " Tobi Oetiker 14 | 15 | Postal: ETZ J97, ETH 16 | 8092 Zurich 17 | Switzerland 18 | 19 | Telephone: +41 1 632-5286 20 | E-mail: oetiker@ee.ethz.ch 21 | 22 | RRD Tool Information: 23 | http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ 24 | " 25 | DESCRIPTION 26 | "The Structure of RRDTool fellow projects" 27 | ::= { enterprises 14697 } -- assigned by IANA 28 | 29 | torrus OBJECT-IDENTITY 30 | STATUS current 31 | DESCRIPTION 32 | "Round Robin Database Framework. 33 | http://torrus.sourceforge.net/ 34 | " 35 | ::= { rrdtool 1 } 36 | 37 | -- more to come if necessary. 38 | 39 | END 40 | -------------------------------------------------------------------------------- /htdocs/Torrus-Swinog16.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/Torrus-Swinog16.odp -------------------------------------------------------------------------------- /htdocs/Torrus-Swinog16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/Torrus-Swinog16.pdf -------------------------------------------------------------------------------- /htdocs/devdoc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Torrus Developer's Documentation 4 | 5 | 6 | 7 | 8 | 9 |

Torrus Developer's Documentation

10 | 11 |

Manuals

12 | 13 | 22 | 23 | 24 |

Design Documentation

25 | 26 | 40 | 41 |

Working Drafts

42 | 43 | 65 | 66 |
67 |

Copyright © 2002-2010 Stanislav Sinyagin 68 | <ssinyagin@yahoo.com>

69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /htdocs/logo/adtaq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/adtaq.png -------------------------------------------------------------------------------- /htdocs/logo/binary_solutions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/binary_solutions.png -------------------------------------------------------------------------------- /htdocs/logo/bluewin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/bluewin.png -------------------------------------------------------------------------------- /htdocs/logo/cablecom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/cablecom.png -------------------------------------------------------------------------------- /htdocs/logo/fibrenoire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/fibrenoire.png -------------------------------------------------------------------------------- /htdocs/logo/gpstechnik.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/gpstechnik.png -------------------------------------------------------------------------------- /htdocs/logo/gsid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/gsid.png -------------------------------------------------------------------------------- /htdocs/logo/kfn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/kfn.png -------------------------------------------------------------------------------- /htdocs/logo/nexellent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/nexellent.png -------------------------------------------------------------------------------- /htdocs/logo/prioritycolo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/prioritycolo.png -------------------------------------------------------------------------------- /htdocs/logo/quicknet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/quicknet.png -------------------------------------------------------------------------------- /htdocs/logo/sevenspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/sevenspace.png -------------------------------------------------------------------------------- /htdocs/logo/syscovery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/syscovery.png -------------------------------------------------------------------------------- /htdocs/logo/torix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/logo/torix.png -------------------------------------------------------------------------------- /htdocs/manpages/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Torrus man pages 4 | 5 | 6 | 7 | 8 | 9 |

Torrus man pages

10 | 11 | 12 | 79 | 80 |
81 |

Copyright © 2002-2005 Stanislav Sinyagin 82 | <ssinyagin@yahoo.com>

83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /htdocs/torrus-functional-overview.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/torrus-functional-overview.odp -------------------------------------------------------------------------------- /htdocs/torrus-functional-overview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/htdocs/torrus-functional-overview.pdf -------------------------------------------------------------------------------- /htdocs/torrusdoc.css: -------------------------------------------------------------------------------- 1 | /* 2 | RRFW Documentation stylesheet. 3 | Copyrigt (c) 2003 Stanislav Sinyagin 4 | 5 | $Id$ 6 | */ 7 | 8 | BODY { 9 | font-family : verdana, arial, helvetica, sans-serif; 10 | font-size: 10pt; 11 | line-height: 1.2; 12 | text-align: justify; 13 | margin-left: 10%; 14 | margin-right: 10%; 15 | } 16 | 17 | BLOCKQUOTE { 18 | margin: 10pt; 19 | } 20 | 21 | LI { 22 | margin-bottom: 0.8ex; 23 | } 24 | 25 | LI P { 26 | margin-top: 0.1ex; 27 | } 28 | 29 | PRE { 30 | font-size: 10pt; 31 | } 32 | 33 | H1, H2, A, CODE, EM { 34 | color: #336699; 35 | } 36 | 37 | A[name] { 38 | color: inherit; 39 | } 40 | 41 | H1 { 42 | font-weight: 600; 43 | text-decoration: none; 44 | font-size: 16pt; 45 | } 46 | 47 | H2 { 48 | font-weight: 500; 49 | text-decoration: none; 50 | font-size: 14pt; 51 | margin-top: 3ex; 52 | } 53 | 54 | H2 CODE { 55 | font-weight: 800; 56 | } 57 | 58 | H3 { 59 | font-weight: 600; 60 | text-decoration: none; 61 | font-size: 11pt; 62 | } 63 | 64 | DL { 65 | font-weight: normal; 66 | text-decoration: none; 67 | color: #333333; 68 | font-size: 10pt; 69 | } 70 | 71 | 72 | DIV.Custlogos { 73 | } 74 | 75 | IMG.Custlogo { 76 | border: 0; 77 | background-color: #ffffff; 78 | margin: 10px; 79 | vertical-align: bottom; 80 | } 81 | -------------------------------------------------------------------------------- /htdocs/upload.sh: -------------------------------------------------------------------------------- 1 | 2 | DEST="ssinyagin@web.sourceforge.net:/home/project-web/torrus/htdocs" 3 | 4 | rsync -rv . $DEST 5 | 6 | -------------------------------------------------------------------------------- /plugins/cbqos/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | Senior System Engineer, CCIE #5478 4 | 5 | GPS-Technik AG 6 | Zuercherstrasse 139 7 | 8952 Schlieren 8 | Switzerland 9 | 10 | Tel. +41 1 732 99 77 11 | Fax +41 1 731 18 40 12 | 13 | ssinyagin@k-open.com 14 | http://sinyagin.pp.ru 15 | ************************************************** 16 | 17 | -------------------------------------------------------------------------------- /plugins/cbqos/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # Torrus plugin Automake script 22 | 23 | 24 | ##### Perl modules ##### 25 | myperlmoddiscdir = $(perllibdir)/Torrus/DevDiscover 26 | dist_myperlmoddisc_DATA = DevDiscover/CiscoIOS_cbQoS.pm 27 | 28 | myperlmodcoldir = $(perllibdir)/Torrus/Collector 29 | dist_myperlmodcol_DATA = \ 30 | Collector/Cisco_cbQoS.pm \ 31 | Collector/Cisco_cbQoS_Params.pm 32 | 33 | 34 | ##### Perl configuration files ##### 35 | torruscfgdir = $(plugtorruscfgdir) 36 | dist_torruscfg_DATA = cisco-cbqos-torruscfg.pl 37 | devdisccfgdir = $(plugdevdisccfgdir) 38 | dist_devdisccfg_DATA = cisco-cbqos-ddcfg.pl 39 | 40 | 41 | 42 | ##### XML configuration ##### 43 | myxmldir = $(distxmldir)/vendor 44 | dist_myxml_DATA = cisco.ios.cbqos.xml 45 | 46 | 47 | ##### Documentation files ##### 48 | pkgdocdir = @pkgdocdir@ 49 | dist_pkgdoc_DATA = tp-cisco-cbqos.txt tp-cisco-cbqos.pod 50 | SUFFIXES = .pod .txt 51 | .pod.txt: 52 | pod2text $< $@ 53 | 54 | 55 | htdocs: 56 | for f in *.pod; do \ 57 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 58 | done 59 | 60 | UPLOADPATH = \ 61 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 62 | 63 | upload: dist 64 | scp $(distdir).tar.gz $(UPLOADPATH) 65 | -------------------------------------------------------------------------------- /plugins/cbqos/NEWS: -------------------------------------------------------------------------------- 1 | 27-OCT-2014: Release 2.08.02 2 | 3 | Bugfix to work properly with Torrus 2.08 4 | 5 | 02-OCT-2014: Release 2.08.01 6 | 7 | Minor bugfixes and improvements 8 | 9 | 29-APR-2013: Release 2.07.01 10 | 11 | Bugfix: sometimes QoS statistics stop collecting with the log message 12 | "Cannot create blocking objects when non-blocking objects exist" 13 | 14 | 15-FEB-2013: Release 2.06.01 15 | 16 | Bugfix: unreachable devices could block the QoS collector from 17 | initialization. 18 | 19 | 20-MAR-2012: Release 2.02.02 20 | 21 | A minor fix for Cisco 7600 compatibility. Also some minor cosmetic changes. 22 | 23 | 04-SEP-2011: Release 2.01.01 24 | 25 | The new release fixes a few Cisco compatibility issues, and also enables 26 | the compatibility with Torrus 2.01 features. 27 | 28 | 05-AUG-2008: Release 1.6 29 | 30 | The new release fixes an old bug in RRD file naming, thus all the 31 | QoS-related RRD files would have to be renamed or started from scratch. 32 | 33 | 25-JAN-2007: Release 1.5 34 | 35 | Synchronizes with new features in Torrus release 1.0.6 36 | 37 | 25-JAN-2007: Release 1.4 38 | 39 | Synchronizes with new features in Torrus release 1.0.5 40 | 41 | 28-JUL-2005: Release 1.2 42 | 43 | Synchronizes with new features in Torrus release 1.0.2 44 | 45 | 21-JUN-2005: Release 1.1 46 | 47 | Synchronizes with new features in Torrus release 1.0.1 48 | 49 | 10-JUN-2005: Release 1.0 50 | 51 | This is the production release with some critical bugs fixed -------------------------------------------------------------------------------- /plugins/cbqos/README: -------------------------------------------------------------------------------- 1 | Torrus Plugin for Cisco Class-based QoS monitoring 2 | 3 | See cisco-cbqos.txt or cisco-cbqos.pod for more details. 4 | 5 | See http://torrus.sourceforge.net for Torrus project documentation 6 | 7 | (C) 2004, Stanislav Sinyagin 8 | -------------------------------------------------------------------------------- /plugins/cbqos/cisco-cbqos-ddcfg.pl: -------------------------------------------------------------------------------- 1 | push( @Torrus::DevDiscover::loadModules, 2 | 'Torrus::DevDiscover::CiscoIOS_cbQoS' ); 3 | 4 | # List of default DSCP values to be monitored for RED statistics. 5 | # May be redefined in devdiscover-siteconfig.pl, or in DDX parameter: 6 | # 7 | 8 | @Torrus::DevDiscover::CiscoIOS_cbQoS::RedDscpValues = 9 | qw(0 AF21 AF22 AF31 AF32 AF41 AF42 EF); 10 | 11 | 12 | $Torrus::ConfigBuilder::pluginTemplateRegistry{1000} = 13 | { 14 | 'CiscoIOS_cbQoS::cisco-cbqos-subtree' => { 15 | 'name' => 'cisco-cbqos-subtree', 16 | 'source' => 'vendor/cisco.ios.cbqos.xml', 17 | }, 18 | 19 | 'CiscoIOS_cbQoS::cisco-cbqos-policymap-subtree' => { 20 | 'name' => 'cisco-cbqos-policymap-subtree', 21 | 'source' => 'vendor/cisco.ios.cbqos.xml', 22 | }, 23 | 24 | 'CiscoIOS_cbQoS::cisco-cbqos-classmap-meters' => { 25 | 'name' => 'cisco-cbqos-classmap-meters', 26 | 'source' => 'vendor/cisco.ios.cbqos.xml', 27 | }, 28 | 29 | 30 | 'CiscoIOS_cbQoS::cisco-cbqos-match-stmt-meters' => { 31 | 'name' => 'cisco-cbqos-match-stmt-meters', 32 | 'source' => 'vendor/cisco.ios.cbqos.xml', 33 | }, 34 | 35 | 36 | 'CiscoIOS_cbQoS::cisco-cbqos-police-meters' => { 37 | 'name' => 'cisco-cbqos-police-meters', 38 | 'source' => 'vendor/cisco.ios.cbqos.xml', 39 | }, 40 | 41 | 42 | 'CiscoIOS_cbQoS::cisco-cbqos-queueing-meters' => { 43 | 'name' => 'cisco-cbqos-queueing-meters', 44 | 'source' => 'vendor/cisco.ios.cbqos.xml', 45 | }, 46 | 47 | 'CiscoIOS_cbQoS::cisco-cbqos-shaping-meters' => { 48 | 'name' => 'cisco-cbqos-shaping-meters', 49 | 'source' => 'vendor/cisco.ios.cbqos.xml', 50 | }, 51 | 52 | 'CiscoIOS_cbQoS::cisco-cbqos-red-subtree' => { 53 | 'name' => 'cisco-cbqos-red-subtree', 54 | 'source' => 'vendor/cisco.ios.cbqos.xml', 55 | }, 56 | 57 | 'CiscoIOS_cbQoS::cisco-cbqos-red-meters' => { 58 | 'name' => 'cisco-cbqos-red-meters', 59 | 'source' => 'vendor/cisco.ios.cbqos.xml', 60 | }, 61 | }; 62 | 63 | 1; 64 | -------------------------------------------------------------------------------- /plugins/cbqos/cisco-cbqos-torruscfg.pl: -------------------------------------------------------------------------------- 1 | push( @Torrus::Collector::loadModules, 2 | 'Torrus::Collector::Cisco_cbQoS' ); 3 | 4 | push( @Torrus::Validator::loadLeafValidators, 5 | 'Torrus::Collector::Cisco_cbQoS_Params' ); 6 | 7 | 1; 8 | -------------------------------------------------------------------------------- /plugins/dummy/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | Senior System Engineer, CCIE #5478 4 | 5 | Xicom AG 6 | Stettbachstr. 10 7 | CH-8600 Duebendorf 8 | Switzerland 9 | 10 | Tel. +41 1 824 47 60 11 | Fax +41 1 824 47 99 12 | 13 | ssinyagin@k-open.com 14 | http://sinyagin.pp.ru 15 | ************************************************** 16 | -------------------------------------------------------------------------------- /plugins/dummy/ChangeLog: -------------------------------------------------------------------------------- 1 | 2007-01-25 Stanislav Sinyagin 2 | 3 | * NEWS: Plugin Release 1.1 4 | 5 | 2003-03-01 Stanislav Sinyagin 6 | 7 | * First incarnation of the Dummy plugin 8 | 9 | -------------------------------------------------------------------------------- /plugins/dummy/DummyModule.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2002 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | package Torrus::DummyModule; 20 | 21 | 22 | 1; 23 | 24 | 25 | # Local Variables: 26 | # mode: perl 27 | # indent-tabs-mode: nil 28 | # perl-indent-level: 4 29 | # End: 30 | -------------------------------------------------------------------------------- /plugins/dummy/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # Dummy Torrus plugin Automake script 22 | 23 | SUBST = @abs_top_builddir@/substvars.sh 24 | 25 | noinst_SCRIPTS = substvars.sh 26 | 27 | 28 | ##### Perl modules ##### 29 | myperlmoddir = $(perllibdir)/Torrus 30 | dist_myperlmod_DATA = DummyModule.pm 31 | 32 | ##### Perl configuration files ##### 33 | torruscfgdir = $(plugtorruscfgdir) 34 | dist_torruscfg_DATA = dummy-torruscfg.pl 35 | devdisccfgdir = $(plugdevdisccfgdir) 36 | dist_devdisccfg_DATA = dummy-ddcfg.pl 37 | 38 | ##### CLI wrapper ##### 39 | wrapperdir = $(plugwrapperdir) 40 | dist_wrapper_DATA = dummy-wrapper.sh 41 | 42 | 43 | ##### XML configuration ##### 44 | myxmldir = $(distxmldir) 45 | dist_myxml_DATA = dummy.xml 46 | 47 | 48 | ##### Executable scripts ##### 49 | pkgbindir = @pkgbindir@ 50 | pkgbin_SCRIPTS = dummyscript 51 | EXTRA_DIST = dummyscript.in 52 | dummyscript: dummyscript.in 53 | $(SUBST) dummyscript.in > dummyscript 54 | 55 | 56 | ##### Documentation files ##### 57 | pkgdocdir = @pkgdocdir@ 58 | dist_pkgdoc_DATA = tp-dummy.txt tp-dummy.pod 59 | SUFFIXES = .pod .txt 60 | .pod.txt: 61 | pod2text $< $@ 62 | 63 | 64 | ##### HTML and text Templates ##### 65 | tmpldir = @tmpldir@ 66 | dist_tmpl_DATA = dummytemplate.html 67 | 68 | ##### What you do not need after "make clean" ##### 69 | CLEANFILES = $(pkgbin_SCRIPTS) 70 | 71 | 72 | UPLOADPATH = \ 73 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 74 | 75 | upload: dist 76 | scp $(distdir).tar.gz $(UPLOADPATH) 77 | -------------------------------------------------------------------------------- /plugins/dummy/NEWS: -------------------------------------------------------------------------------- 1 | 25-JAN-2007: Synchronized with Torrus 1.0.5 2 | 3 | 1-03-2003: Dummy plugin created 4 | 5 | -------------------------------------------------------------------------------- /plugins/dummy/README: -------------------------------------------------------------------------------- 1 | Dummy plugin for Torrus 2 | 3 | This package is only a template for real plugins. 4 | 5 | Use the follwing command for plugin installation: 6 | 7 | torrus install_plugin 8 | 9 | See http://torrus.org for more details 10 | 11 | (C) 2003, 2004 Stanislav Sinyagin -------------------------------------------------------------------------------- /plugins/dummy/conftools/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | errstatus=0 8 | dirmode="" 9 | 10 | usage="\ 11 | Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." 12 | 13 | # process command line arguments 14 | while test $# -gt 0 ; do 15 | case $1 in 16 | -h | --help | --h*) # -h for help 17 | echo "$usage" 1>&2 18 | exit 0 19 | ;; 20 | -m) # -m PERM arg 21 | shift 22 | test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } 23 | dirmode=$1 24 | shift 25 | ;; 26 | --) # stop option processing 27 | shift 28 | break 29 | ;; 30 | -*) # unknown option 31 | echo "$usage" 1>&2 32 | exit 1 33 | ;; 34 | *) # first non-opt arg 35 | break 36 | ;; 37 | esac 38 | done 39 | 40 | for file 41 | do 42 | if test -d "$file"; then 43 | shift 44 | else 45 | break 46 | fi 47 | done 48 | 49 | case $# in 50 | 0) exit 0 ;; 51 | esac 52 | 53 | case $dirmode in 54 | '') 55 | if mkdir -p -- . 2>/dev/null; then 56 | echo "mkdir -p -- $*" 57 | exec mkdir -p -- "$@" 58 | fi 59 | ;; 60 | *) 61 | if mkdir -m "$dirmode" -p -- . 2>/dev/null; then 62 | echo "mkdir -m $dirmode -p -- $*" 63 | exec mkdir -m "$dirmode" -p -- "$@" 64 | fi 65 | ;; 66 | esac 67 | 68 | for file 69 | do 70 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 71 | shift 72 | 73 | pathcomp= 74 | for d 75 | do 76 | pathcomp="$pathcomp$d" 77 | case $pathcomp in 78 | -*) pathcomp=./$pathcomp ;; 79 | esac 80 | 81 | if test ! -d "$pathcomp"; then 82 | echo "mkdir $pathcomp" 83 | 84 | mkdir "$pathcomp" || lasterr=$? 85 | 86 | if test ! -d "$pathcomp"; then 87 | errstatus=$lasterr 88 | else 89 | if test ! -z "$dirmode"; then 90 | echo "chmod $dirmode $pathcomp" 91 | lasterr="" 92 | chmod "$dirmode" "$pathcomp" || lasterr=$? 93 | 94 | if test ! -z "$lasterr"; then 95 | errstatus=$lasterr 96 | fi 97 | fi 98 | fi 99 | fi 100 | 101 | pathcomp="$pathcomp/" 102 | done 103 | done 104 | 105 | exit $errstatus 106 | 107 | # Local Variables: 108 | # mode: shell-script 109 | # sh-indentation: 2 110 | # End: 111 | # mkinstalldirs ends here 112 | -------------------------------------------------------------------------------- /plugins/dummy/dummy-ddcfg.pl: -------------------------------------------------------------------------------- 1 | # Dummy Torrus devdiscover plugin configuration 2 | 3 | # do nothing 4 | 5 | 1; 6 | -------------------------------------------------------------------------------- /plugins/dummy/dummy-torruscfg.pl: -------------------------------------------------------------------------------- 1 | # Dummy Torrus plugin configuration 2 | 3 | # do nothing 4 | 5 | 1; 6 | -------------------------------------------------------------------------------- /plugins/dummy/dummy-wrapper.sh: -------------------------------------------------------------------------------- 1 | # Dummy Torrus commandline wrapper configuration 2 | 3 | commands="${commands} dummy=dummyscript" 4 | 5 | -------------------------------------------------------------------------------- /plugins/dummy/dummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /plugins/dummy/dummyscript.in: -------------------------------------------------------------------------------- 1 | #!@PERL@ 2 | 3 | BEGIN { require '@torrus_config_pl@'; } 4 | 5 | print "This is a dummy script\n"; 6 | 7 | exit 1; 8 | -------------------------------------------------------------------------------- /plugins/dummy/dummytemplate.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% thepath=path(token) %] 3 | [% INCLUDE htmlstart title=thepath %] 4 | 5 |

Dummy template output

6 | 7 |

Current path: [% splitUrls(token) %]

8 | 9 | [% INCLUDE bottomline %] 10 | [% INCLUDE htmlend %] 11 | -------------------------------------------------------------------------------- /plugins/dummy/tp-dummy.pod: -------------------------------------------------------------------------------- 1 | =head1 Dummy documentation file 2 | 3 | there's nothing interesting here 4 | -------------------------------------------------------------------------------- /plugins/easytarget/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | Senior System Engineer, CCIE #5478 4 | 5 | Tel. +41 44 732 99 53 6 | 7 | ssinyagin@k-open.com 8 | http://sinyagin.pp.ru 9 | ************************************************** 10 | -------------------------------------------------------------------------------- /plugins/easytarget/ChangeLog: -------------------------------------------------------------------------------- 1 | 2011-09-04 Stanislav Sinyagin 2 | 3 | * NEWS: Plugin release 2.01.01 4 | 5 | 2011-05-08 Stanislav Sinyagin 6 | 7 | * easytarget-config.pl: Added "nodeid" derived from "easytarget-node" 8 | 9 | * EasyTarget.pm: new parameter: easytarget-node 10 | 11 | 2007-01-25 Stanislav Sinyagin 12 | 13 | * NEWS: Plugin Release 1.0 14 | 15 | -------------------------------------------------------------------------------- /plugins/easytarget/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2007 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # Torrus plugin Automake script 22 | 23 | SUBST = @abs_top_builddir@/substvars.sh 24 | 25 | noinst_SCRIPTS = substvars.sh 26 | EXTRA_DIST = easytarget.in easytarget-config.pl easytarget-siteconfig.pl 27 | 28 | 29 | ##### Perl modules ##### 30 | myperlmoddir = $(perllibdir)/Torrus 31 | dist_myperlmod_DATA = EasyTarget.pm 32 | 33 | 34 | ##### CLI wrapper ##### 35 | wrapperdir = $(plugwrapperdir) 36 | dist_wrapper_DATA = easytarget-wrapper.sh 37 | 38 | 39 | ##### Executable scripts ##### 40 | pkgbindir = @pkgbindir@ 41 | pkgbin_SCRIPTS = easytarget 42 | easytarget: easytarget.in 43 | $(SUBST) easytarget.in > easytarget 44 | 45 | 46 | ##### Documentation files ##### 47 | pkgdocdir = @pkgdocdir@ 48 | dist_pkgdoc_DATA = tp-easytarget.txt tp-easytarget.pod.in 49 | SUFFIXES = .pod.in .pod .txt 50 | .pod.in.pod: 51 | $(SUBST) $< > $@ 52 | .pod.txt: 53 | pod2text $< $@ 54 | 55 | 56 | install-data-local: 57 | $(mkinstalldirs) $(DESTDIR)$(sitedir)/easytarget 58 | for f in easytarget-config.pl; do \ 59 | $(SUBST) $$f > \ 60 | $(DESTDIR)$(cfgdefdir)/$$f; \ 61 | done 62 | for f in easytarget-siteconfig.pl; do \ 63 | if test ! -r $(DESTDIR)$(siteconfdir)/$$f; then \ 64 | $(INSTALL_DATA) $$f $(DESTDIR)$(siteconfdir)/$$f; \ 65 | fi \ 66 | done 67 | 68 | 69 | 70 | ##### What you do not need after "make clean" ##### 71 | CLEANFILES = $(pkgbin_SCRIPTS) 72 | 73 | htdocs: tp-easytarget.pod 74 | for f in *.pod; do \ 75 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 76 | done 77 | 78 | UPLOADPATH = \ 79 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 80 | 81 | upload: dist 82 | scp $(distdir).tar.gz $(UPLOADPATH) 83 | -------------------------------------------------------------------------------- /plugins/easytarget/NEWS: -------------------------------------------------------------------------------- 1 | 04-SEP-2011: Plugin release 2.01.01 2 | 3 | Version compatibility with Torrus 2.01 4 | 5 | 15-MAY-2011: Plugin Release 1.1 6 | 7 | This release adds support for "nodeid" parameter". 8 | 9 | 10 | 25-JAN-2007: Plugin Release 1.0 11 | -------------------------------------------------------------------------------- /plugins/easytarget/README: -------------------------------------------------------------------------------- 1 | Dummy plugin for Torrus 2 | 3 | This package is only a template for real plugins. 4 | 5 | Use the follwing command for plugin installation: 6 | 7 | torrus install_plugin 8 | 9 | See http://torrus.org for more details 10 | 11 | (C) 2003, 2004 Stanislav Sinyagin -------------------------------------------------------------------------------- /plugins/easytarget/easytarget-config.pl: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2003 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | 20 | # DO NOT EDIT THIS FILE! 21 | 22 | # Torrus EasyTarget default configuration 23 | # Put all your local settings into easytarget-siteconfig.pl 24 | 25 | use lib(@perllibdirs@); 26 | 27 | $Torrus::EasyTarget::version = '@VERSION@'; 28 | $Torrus::EasyTarget::easytargetDir = '@sitedir@/easytarget/'; 29 | $Torrus::EasyTarget::siteXmlDir = '@sitexmldir@'; 30 | 31 | @Torrus::EasyTarget::defaultIncludes = ('snmp-defs.xml'); 32 | @Torrus::EasyTarget::defaultTemplates = ('snmp-defaults'); 33 | 34 | %Torrus::EasyTarget::defaultParams = 35 | ('data-dir' => '@defrrddir@', 36 | 'data-file' => '%system-id%.easytarget.rrd', 37 | 'snmp-version' => '2c', 38 | 'snmp-port' => 161, 39 | 'rrd-create-dstype' => 'COUNTER', 40 | 'nodeid' => 'et//%easytarget-node%'); 41 | 42 | 43 | 44 | 45 | 46 | require '@easytarget_siteconfig_pl@'; 47 | 48 | 1; 49 | -------------------------------------------------------------------------------- /plugins/easytarget/easytarget-siteconfig.pl: -------------------------------------------------------------------------------- 1 | # Torrus EasyTarget Site config. Put all your site specifics here. 2 | 3 | 4 | 1; 5 | -------------------------------------------------------------------------------- /plugins/easytarget/easytarget-wrapper.sh: -------------------------------------------------------------------------------- 1 | # Torrus commandline wrapper configuration 2 | 3 | commands="${commands} easytarget=easytarget et=easytarget" 4 | 5 | -------------------------------------------------------------------------------- /plugins/httpcollector/AUTHORS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/httpcollector/AUTHORS -------------------------------------------------------------------------------- /plugins/httpcollector/ChangeLog: -------------------------------------------------------------------------------- 1 | 2004-09-30 Stanislav Sinyagin 2 | 3 | * localhost-apache2.xml: New examples for Apache stats 4 | 5 | * apache.httpd.xml: New templates for Apache stats 6 | 7 | 2003-03-01 Stanislav Sinyagin 8 | * First incarnation of the Dummy plugin 9 | 10 | 2003-07-03 Christia Schnidrig 11 | 12 | First draft of HTTP plugin -------------------------------------------------------------------------------- /plugins/httpcollector/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2003 Christian Schnidrig 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Christian Schnidrig 19 | # 20 | 21 | # HTTP Torrus plugin Automake script 22 | 23 | 24 | ##### Perl modules ##### 25 | myperlmoddir = $(perllibdir)/Torrus/Collector 26 | dist_myperlmod_DATA = Http.pm 27 | 28 | ##### Perl configuration files ##### 29 | torruscfgdir = $(plugtorruscfgdir) 30 | dist_torruscfg_DATA = httpcollector-torruscfg.pl 31 | 32 | ##### XML configuration ##### 33 | vendorxmldir = $(distxmldir)/vendor 34 | dist_vendorxml_DATA = apache.httpd.xml 35 | 36 | xmpxmldir = $(distxmldir)/examples 37 | dist_xmpxml_DATA = localhost-apache2.xml localhost-apache1.xml 38 | 39 | 40 | ##### Documentation files ##### 41 | pkgdocdir = @pkgdocdir@ 42 | dist_pkgdoc_DATA = tp-httpcollector.txt tp-httpcollector.pod 43 | SUFFIXES = .pod .txt 44 | .pod.txt: 45 | pod2text $< $@ 46 | 47 | htdocs: 48 | for f in *.pod; do \ 49 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 50 | done 51 | 52 | UPLOADPATH = \ 53 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 54 | 55 | upload: dist 56 | scp $(distdir).tar.gz $(UPLOADPATH) 57 | -------------------------------------------------------------------------------- /plugins/httpcollector/NEWS: -------------------------------------------------------------------------------- 1 | 03.07.2003: Http plugin created 2 | 3 | -------------------------------------------------------------------------------- /plugins/httpcollector/README: -------------------------------------------------------------------------------- 1 | Http Collector plugin for Torrus 2 | 3 | See httpcollector.pod or httpcollector.txt for more details. 4 | 5 | See http://torrus.sourceforge.net for Torrus project documentation 6 | 7 | (C) 2003, Stanislav Sinyagin 8 | (C) 2003, Christian Schnidrig 9 | -------------------------------------------------------------------------------- /plugins/httpcollector/httpcollector-torruscfg.pl: -------------------------------------------------------------------------------- 1 | # HTTP Collector Torrus plugin configuration 2 | 3 | push( @Torrus::Collector::loadModules, 'Torrus::Collector::Http' ); 4 | push( @Torrus::Validator::loadLeafValidators, 'Torrus::Collector::Http' ); 5 | 6 | 1; 7 | -------------------------------------------------------------------------------- /plugins/httpcollector/localhost-apache1.xml: -------------------------------------------------------------------------------- 1 | 2 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /plugins/httpcollector/localhost-apache2.xml: -------------------------------------------------------------------------------- 1 | 2 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /plugins/m-net/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | ssinyagin@k-open.com 4 | ************************************************** 5 | 6 | -------------------------------------------------------------------------------- /plugins/m-net/ChangeLog: -------------------------------------------------------------------------------- 1 | 2011-12-04 Stanislav Sinyagin 2 | 3 | * DevDiscover/M_net.pm: aligned with the recent changes in 4 | RFC2863_IF_MIB discovery module 5 | 6 | 2011-09-04 Stanislav Sinyagin 7 | 8 | * NEWS: Plugin release 2.01.01 9 | 10 | 2010-09-29 Stanislav Sinyagin 11 | 12 | * DevDiscover/M_net.pm (checkdevtype): the discovery parameter 13 | M_net::manage is required to be "yes". M_net::skip-host is removed. 14 | 15 | 2010-08-07 Stanislav Sinyagin 16 | 17 | * DevDiscover/M_net.pm (discover): 18 | New discovery parameter: M_net::nodeid-prefix-key 19 | 20 | -------------------------------------------------------------------------------- /plugins/m-net/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2010 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # Torrus plugin Automake script 22 | 23 | 24 | ##### Perl modules ##### 25 | myperlmoddiscdir = $(perllibdir)/Torrus/DevDiscover 26 | dist_myperlmoddisc_DATA = DevDiscover/M_net.pm 27 | 28 | 29 | ##### Perl configuration files ##### 30 | devdisccfgdir = $(plugdevdisccfgdir) 31 | dist_devdisccfg_DATA = m-net-ddcfg.pl 32 | 33 | 34 | 35 | ##### XML configuration ##### 36 | myxmldir = $(distxmldir)/m-net 37 | dist_myxml_DATA = m-net-monitors.xml 38 | 39 | 40 | ##### Documentation files ##### 41 | pkgdocdir = @pkgdocdir@ 42 | dist_pkgdoc_DATA = tp-m-net.txt tp-m-net.pod 43 | SUFFIXES = .pod .txt 44 | .pod.txt: 45 | pod2text $< $@ 46 | 47 | 48 | htdocs: 49 | for f in *.pod; do \ 50 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 51 | done 52 | 53 | UPLOADPATH = \ 54 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 55 | 56 | upload: dist 57 | scp $(distdir).tar.gz $(UPLOADPATH) 58 | -------------------------------------------------------------------------------- /plugins/m-net/NEWS: -------------------------------------------------------------------------------- 1 | 04-SEP-2011: Plugin release 2.01.01 2 | 3 | -------------------------------------------------------------------------------- /plugins/m-net/README: -------------------------------------------------------------------------------- 1 | Torrus Plugin for site-specific automation at M-Net.de 2 | 3 | See tp-m-net.txt or tp-m-net.pod for more details. 4 | 5 | See http://torrus.sourceforge.net for Torrus project documentation 6 | 7 | (C) 2010, Stanislav Sinyagin 8 | -------------------------------------------------------------------------------- /plugins/m-net/m-net-ddcfg.pl: -------------------------------------------------------------------------------- 1 | push( @Torrus::DevDiscover::loadModules, 2 | 'Torrus::DevDiscover::M_net' ); 3 | 4 | 5 | 1; 6 | -------------------------------------------------------------------------------- /plugins/overview/AUTHORS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/AUTHORS -------------------------------------------------------------------------------- /plugins/overview/ChangeLog: -------------------------------------------------------------------------------- 1 | 2003-10-07 Christian Schnidrig 2 | 3 | First draft of Overview plugin -------------------------------------------------------------------------------- /plugins/overview/NEWS: -------------------------------------------------------------------------------- 1 | 7.10.2003: Release 0.0.1 2 | First public release. The plugin should work fine with any 3 | torrus version released so far. 4 | 5 | -------------------------------------------------------------------------------- /plugins/overview/README: -------------------------------------------------------------------------------- 1 | Overview plugin for Torrus 2 | 3 | See overview.pod or overview.txt for more details. 4 | 5 | See http://torrus.sourceforge.net for Torrus project documentation 6 | 7 | (C) 2003, Stanislav Sinyagin 8 | (C) 2003, Christian Schnidrig 9 | -------------------------------------------------------------------------------- /plugins/overview/conftools/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | errstatus=0 8 | dirmode="" 9 | 10 | usage="\ 11 | Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." 12 | 13 | # process command line arguments 14 | while test $# -gt 0 ; do 15 | case $1 in 16 | -h | --help | --h*) # -h for help 17 | echo "$usage" 1>&2 18 | exit 0 19 | ;; 20 | -m) # -m PERM arg 21 | shift 22 | test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } 23 | dirmode=$1 24 | shift 25 | ;; 26 | --) # stop option processing 27 | shift 28 | break 29 | ;; 30 | -*) # unknown option 31 | echo "$usage" 1>&2 32 | exit 1 33 | ;; 34 | *) # first non-opt arg 35 | break 36 | ;; 37 | esac 38 | done 39 | 40 | for file 41 | do 42 | if test -d "$file"; then 43 | shift 44 | else 45 | break 46 | fi 47 | done 48 | 49 | case $# in 50 | 0) exit 0 ;; 51 | esac 52 | 53 | case $dirmode in 54 | '') 55 | if mkdir -p -- . 2>/dev/null; then 56 | echo "mkdir -p -- $*" 57 | exec mkdir -p -- "$@" 58 | fi 59 | ;; 60 | *) 61 | if mkdir -m "$dirmode" -p -- . 2>/dev/null; then 62 | echo "mkdir -m $dirmode -p -- $*" 63 | exec mkdir -m "$dirmode" -p -- "$@" 64 | fi 65 | ;; 66 | esac 67 | 68 | for file 69 | do 70 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 71 | shift 72 | 73 | pathcomp= 74 | for d 75 | do 76 | pathcomp="$pathcomp$d" 77 | case $pathcomp in 78 | -*) pathcomp=./$pathcomp ;; 79 | esac 80 | 81 | if test ! -d "$pathcomp"; then 82 | echo "mkdir $pathcomp" 83 | 84 | mkdir "$pathcomp" || lasterr=$? 85 | 86 | if test ! -d "$pathcomp"; then 87 | errstatus=$lasterr 88 | else 89 | if test ! -z "$dirmode"; then 90 | echo "chmod $dirmode $pathcomp" 91 | lasterr="" 92 | chmod "$dirmode" "$pathcomp" || lasterr=$? 93 | 94 | if test ! -z "$lasterr"; then 95 | errstatus=$lasterr 96 | fi 97 | fi 98 | fi 99 | fi 100 | 101 | pathcomp="$pathcomp/" 102 | done 103 | done 104 | 105 | exit $errstatus 106 | 107 | # Local Variables: 108 | # mode: shell-script 109 | # sh-indentation: 2 110 | # End: 111 | # mkinstalldirs ends here 112 | -------------------------------------------------------------------------------- /plugins/overview/css/ov-mozilla.css: -------------------------------------------------------------------------------- 1 | /* 2 | Torrus Overview plugin stylesheet. 3 | Designed by Christian Schnidrig 4 | 5 | $Id$ 6 | */ 7 | .page { display:block; float:left; } 8 | .chapterGroup { display:block; } 9 | .chapter { display:block; float:left; margin-top:20px; } 10 | .sectionGroup { display:block; } 11 | .section { display:block; float:left; padding-top:20px; padding-left:1px; padding-right:1px; } 12 | .group { display:block; float:left; } 13 | .graph { display:block; float:left; } 14 | ._graph:after { display:block; clear:both; content:'A';} 15 | -------------------------------------------------------------------------------- /plugins/overview/css/overview.css: -------------------------------------------------------------------------------- 1 | /* 2 | Torrus Overview plugin stylesheet. 3 | Designed by Christian Schnidrig 4 | 5 | $Id$ 6 | */ 7 | 8 | body { 9 | text-align:center; 10 | font-family:times; 11 | font-size:12px; 12 | background-color: transparent; 13 | margin:0; 14 | padding:0; 15 | } 16 | .chapterLegend { display:block; background:red; color:white; margin:20px,0px,10px,0px; font-size:25px; font-family:arial; font-weight:bold; } 17 | .sectionLegend { display:block; background:blue; color:white; margin:0px,0px,0px,0px; font-size:20px; font-family:arial; font-weight:bold; } 18 | .graphLegend { display:block; font-size:15px; font-family:arial;} 19 | 20 | .header { display:block; clear:both; padding:10px,0px,20px,0px} 21 | .chapterIntro { display:block; clear:both; padding:10px,0px,0px,0px} 22 | .sectionIntro { display:block; clear:both; padding:10px,0px,10px,0px} 23 | .footer { display:block; clear:both; padding:10px,0px,0px,0px} 24 | 25 | 26 | .chapterLink {text-decoration: none;} 27 | .sectionLink {text-decoration: none;} 28 | .graphLink {text-decoration: none;} 29 | 30 | .chapterIndex {line-height:30px; clear:right; margin-left:5px; margin-right:5px;} 31 | .sectionIndex {line-height:30px; clear:right; margin-left:5px; margin-right:5px;} 32 | 33 | 34 | .page { display:inline-block; } 35 | .chapterGroup { display:block; } 36 | .chapter { display:inline-block; margin-top:20px; } 37 | .sectionGroup { display:block; } 38 | .section { display:inline-block; padding-top:20px; padding-left:1px; padding-right:1px; } 39 | .group { display:inline-block; } 40 | .graph { display:inline-block; vertical-align:text-top;} 41 | .image { border:0;} -------------------------------------------------------------------------------- /plugins/overview/menu/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/menu/bg.jpg -------------------------------------------------------------------------------- /plugins/overview/menu/menu.css: -------------------------------------------------------------------------------- 1 | /* 2 | Torrus Overview plugin stylesheet. 3 | Designed by Christian Schnidrig 4 | 5 | $Id$ 6 | */ 7 | 8 | body { 9 | margin-top:0; margin-left:0; margin-right:0; margin-bottom:0; 10 | padding-top:0; 11 | } 12 | 13 | .doc { display:block; height:100%; float:right; padding-left:10px} 14 | form { 15 | margin-top:0; margin-left:0; margin-right:0; margin-bottom:0; 16 | } 17 | .topRow { display:block; width:100%; margin:0;padding:0} 18 | .windowPickerField { display:block; float:left; padding-left:195px; margin:0} 19 | .cfPickerField { display:block; float:left; padding-left:10px; } 20 | .datePickerField { display:block; float:left; padding-left:20px; } 21 | .showHiddenField { display:block; float:left; padding-left:20px; } 22 | .autoScaleField { display:block; float:left; padding-left:10px; } 23 | .widthField { display:block; float:left; padding-left:10px; } 24 | .paddingField { display:block; float:right; padding-left:10px;} 25 | .creditsField { display:block; position:absolute; bottom:15px; left:10px} 26 | a { text-decoration:none;} 27 | a:hover { text-decoration:underline;} 28 | 29 | .displayFrame { position:absolute; top: 25px; left:200px; right:0px; bottom:0px; 30 | overflow-x:hidden; 31 | height: expression(document.documentElement.clientHeight-25); 32 | width: expression(document.body.clientWidth-200); 33 | } 34 | .menuFrame { 35 | position: absolute; 36 | float:left; 37 | width: 190px; top: 0px; left: 0px; bottom: 0px; 38 | height: expression(document.documentElement.clientHeight-10); 39 | padding: 5px; 40 | overflow: auto; 41 | } 42 | 43 | -------------------------------------------------------------------------------- /plugins/overview/menu/menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/menu/menu.gif -------------------------------------------------------------------------------- /plugins/overview/menu/torrus.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/menu/torrus.ico -------------------------------------------------------------------------------- /plugins/overview/menu/welcome.htm: -------------------------------------------------------------------------------- 1 | 4 | 25 | 26 | 27 | Torrus Overview Plugin 28 | 29 | 30 | 31 |

Torrus Overview Plugin

32 | 33 | 34 | Edit this file (/usr/local/torrus/sup/webplain/menu/welcome.htm) as 35 | needed. It will not be overwritten by future plugin updates. 36 | 37 | 38 | -------------------------------------------------------------------------------- /plugins/overview/ov_substvars.sh.in: -------------------------------------------------------------------------------- 1 | #!@SHELL@ 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | prefix=@prefix@ 22 | datarootdir=@datarootdir@ 23 | pkghome=@pkghome@ 24 | supdir=@supdir@ 25 | varprefix=@varprefix@ 26 | 27 | rendererUrl=@rendererUrl@ 28 | 29 | @SED@ \ 30 | -e "s,\@webplaindir\@,@webplaindir@,g" \ 31 | -e "s,\@webscriptsdir\@,@webscriptsdir@,g" \ 32 | -e "s,\@rendererUrl\@,${rendererUrl},g" \ 33 | -e "s,\@plainUrl\@,@plainUrl@,g" \ 34 | -e "s,\@aspglobal\@,@aspglobal@,g" \ 35 | $1 36 | 37 | # Local Variables: 38 | # mode: shell-script 39 | # indent-tabs-mode: nil 40 | # perl-indent-level: 4 41 | # End: 42 | -------------------------------------------------------------------------------- /plugins/overview/overview-torruscfg.pl: -------------------------------------------------------------------------------- 1 | # Overview Torrus plugin configuration 2 | 3 | $Torrus::Renderer::styling{'default'}{'ovStylesheet'} = 'ov.css'; 4 | $Torrus::Renderer::styling{'printer'}{'ovStylesheet'} = 'ov-printer.css'; 5 | $Torrus::Renderer::Chooser::template = 'ov/default-chooser.html'; 6 | 7 | 1; 8 | -------------------------------------------------------------------------------- /plugins/overview/overview/common.inc: -------------------------------------------------------------------------------- 1 | 2 | NOW=<%= $Request->Params('NOW') %>&SHOWHIDDEN=<%= $Request->Params('SHOWHIDDEN') %>&AUTOSCALE=<%= $Request->Params('AUTOSCALE') %>&WINDOW=<%= $Request->Params('WINDOW') %>&CF=<%= $Request->Params('CF') %>&STRETCH=<%= $Request->Params('STRETCH') %> 3 | <%= $Request->Params('WINDOW') %><%= $Request->Params('AUTOSCALE')? 'Auto' : '' %> 4 | -------------------------------------------------------------------------------- /plugins/overview/templates/default-chooser.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Torrus Top: " _ companyName 4 | contentClass="SingleColumnContent" 5 | noTopMenu=1 %] 6 | 7 |

Choose the datasource tree

8 | 9 |
10 | [% counter = 0; 11 | evenRow = 0; 12 | 13 | FOREACH tree = treeNames(); 14 | 15 | IF not userAuth or mayDisplayTree(tree); 16 | counter = counter + 1; 17 | 18 | IF counter % 2 == 0; 19 | evenRow = 1; 20 | ELSE; 21 | evenRow = 0; 22 | END; 23 | %] 24 | 25 |
26 | [% tree %] 27 | [% xmlnorm(treeDescr(tree)) %] 28 |
29 | [% END %] 30 | [% END %] 31 |
32 | 33 | 40 | 41 | [% INCLUDE htmlend %] 42 | -------------------------------------------------------------------------------- /plugins/overview/templates/default-recursivedir.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% thepath=path(token) %] 3 | [% INCLUDE htmlstart title=thepath printpath=1 %] 4 | 5 |

[% xmlnorm(nodeParam(token,'comment')) %]

6 | 7 | [% INCLUDE legend %] 8 | 9 | [%# ########### Recursively print the children ################ %] 10 | 11 | [% BLOCK recursiveChildren; 12 | FOREACH child = sortTokens(children(token)); 13 | hidden = 0; 14 | IF nodeParam(child,'hidden') == 'yes'; 15 | hidden = 1; 16 | END; 17 | IF isAlias(child); 18 | thisIsAlias = 1; 19 | urlTitle = 'Symbolic link to ' _ path(isAlias(child)); 20 | ELSE; 21 | urlTitle = nodeParam(child,'comment',1); 22 | END; 23 | IF not hidden or variables.SHOWHIDDEN; %] 24 |
25 | 26 | [% thisIsAlias ? '':''; 27 | hidden ? '':'' %] 28 | [% nodeName(path(child)) %] 30 | [% hidden ? '':''; thisIsAlias ? '':''; %] 31 | 32 | [% INCLUDE recursiveChildren token=child %] 33 |
34 | [% END; 35 | END; 36 | END %] 37 | 38 | 39 |

Directories you can jump to:

40 |
41 | [% INCLUDE recursiveChildren token=token %] 42 |
43 | 44 |
45 | [% INCLUDE shortcut url=url(token) text="Default view" 46 | title="Restore default subtree view"; 47 | INCLUDE overviewShortcuts 48 | %] 49 |
50 | 51 | [% INCLUDE bottomline %] 52 | [% INCLUDE htmlend %] 53 | -------------------------------------------------------------------------------- /plugins/overview/templates/default-tset.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% comment = xmlnorm(param(token, 'comment')) %] 3 | [% INCLUDE htmlstart title=comment contentClass="SingleColumnContent" %] 4 | 5 |

[% comment %]

6 | 7 | [% INCLUDE treename %] 8 | 9 | [% INCLUDE variables %] 10 | 11 | [% SET pos = 1; SET global.hwpredict = 0 %] 12 | [% FOREACH node = sortTokens(tsetMembers(token)) %] 13 |
14 | [% IF pos == 1 %] 15 |
16 | [% ELSE %] 17 |
18 | [% END %] 19 | [% nodename=nodeParam(node,'descriptive-nickname'); 20 | IF nodename==''; 21 | nodename=path(node); 22 | END; 23 | INCLUDE tsgraph 24 | token=node 25 | nodename=nodename 26 | comment=nodeParam(parent(node),'comment',1) 27 | %] 28 |
29 |
30 | [% IF pos == 1 %] 31 | [% SET pos = 2 %] 32 | [% ELSE %] 33 | [% SET pos = 1 %] 34 | [% END %] 35 | [% END %] 36 | 37 |
38 | [% 39 | IF global.hwpredict; 40 | IF variables.NOHW; 41 | INCLUDE shortcut url=url(token, view, 'NOHW', '') 42 | text="Enable Holt-Winters" 43 | title="Switch Holt-Winters prediction boundaries"; 44 | ELSE; 45 | INCLUDE shortcut url=url(token, view, 'NOHW', 1) 46 | text="Disable Holt-Winters" 47 | title="Switch Holt-Winters prediction boundaries"; 48 | END; 49 | END 50 | %] 51 | 52 | [% INCLUDE shortcut url=url('SS') text="Back to tokensets list" 53 | title="List of non-empty tokensets"%] 54 |
55 | 56 | [% INCLUDE tsetbottomline %] 57 | [% INCLUDE htmlend %] 58 | -------------------------------------------------------------------------------- /plugins/overview/templates/expanded-dir.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% thepath=path(token) %] 3 | [% INCLUDE htmlstart title=thepath printpath=1 %] 4 | 5 |

[% xmlnorm(nodeParam(token,'comment')) %]

6 | 7 | [% INCLUDE variables %] 8 | 9 | [% INCLUDE legend %] 10 | 11 |

Leaf nodes:

12 | [% 13 | FOREACH child = sortTokens(children(token)); 14 | IF isLeaf(child); 15 | INCLUDE overviewgraph 16 | token=child 17 | nodename=nodeName(path(child)) 18 | comment=nodeParam(child,'comment',1); 19 | ELSIF isAlias(child); 20 | atoken=isAlias(child); 21 | IF isLeaf(atoken); 22 | INCLUDE shortgraph 23 | token=atoken 24 | nodename=nodeName(path(atoken)) 25 | comment=path(atoken); 26 | END; 27 | END; 28 | END; 29 | %] 30 | 31 |
32 | [% 33 | IF global.hwpredict; 34 | IF variables.NOHW; 35 | INCLUDE shortcut url=url(token, view, 'NOHW', '') 36 | text="Enable Holt-Winters" 37 | title="Switch Holt-Winters prediction boundaries"; 38 | ELSE; 39 | INCLUDE shortcut url=url(token, view, 'NOHW', 1) 40 | text="Disable Holt-Winters" 41 | title="Switch Holt-Winters prediction boundaries"; 42 | END; 43 | END 44 | %] 45 | 46 | [% INCLUDE shortcut url=url(token) text="Default view" 47 | title="Restore default subtree view" %] 48 |
49 | 50 | [% INCLUDE bottomline %] 51 | [% INCLUDE htmlend %] 52 | -------------------------------------------------------------------------------- /plugins/overview/templates/overview-subleaves.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% ovs=variables.OVS; clearVar('OVS'); global.bookmarkVars=['OVS',ovs]; 3 | thepath=path(token) %] 4 | [% INCLUDE htmlstart title=thepath printpath=1 %] 5 | 6 |

[% p = 'overview-page-title-' _ ovs; nodeParam(token, p, 1) %]

7 | 8 | [% INCLUDE variables %] 9 | 10 | [% INCLUDE legend %] 11 | 12 | [% 13 | FOREACH child = sortTokens(children(token)); 14 | childpath = path(child); 15 | p = 'overview-subleave-name-' _ ovs; 16 | ovwpath = childpath _ nodeParam(token, p,1); 17 | IF nodeExists(ovwpath); 18 | ovwtoken = pathToken(ovwpath); 19 | 20 | urltoken = ovwtoken; 21 | p = 'overview-direct-link-' _ ovs; 22 | IF nodeParam(token, p, 1) == 'yes'; 23 | urltoken = child; 24 | p = 'overview-direct-link-view-' _ ovs; 25 | urlview = nodeParam(token, p, 1); 26 | END; 27 | 28 | INCLUDE overviewgraph 29 | token=ovwtoken 30 | urltoken=urltoken 31 | urlview=urlview 32 | nodename=nodeName(path(child)) 33 | comment=nodeParam(child,'comment',1); 34 | END; 35 | END 36 | %] 37 | 38 |
39 | [% INCLUDE shortcut url=url(token) text="Default view" 40 | title="Restore default subtree view" %] 41 |
42 | 43 | [% INCLUDE bottomline %] 44 | [% INCLUDE htmlend %] 45 | -------------------------------------------------------------------------------- /plugins/overview/templates/sub-nodes-dir.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% thepath=path(token) %] 3 | [% INCLUDE htmlstart title=thepath printpath=1 %] 4 | 5 |

[% xmlnorm(nodeParam(token,'comment')) %]

6 | 7 | [% INCLUDE variables %] 8 | 9 | [% INCLUDE legend %] 10 | 11 |

Leaf nodes:

12 | [% 13 | FOREACH child = sortTokens(children(token)); 14 | IF isLeaf(child); 15 | INCLUDE overviewgraph 16 | token=child 17 | nodename=nodeName(path(child)) 18 | comment=nodeParam(child,'comment',1); 19 | ELSE; 20 | FOREACH child2 = sortTokens(children(child)); 21 | IF isLeaf(child2); 22 | INCLUDE overviewgraph 23 | token=child2 24 | nodeparent=nodeName(path(child)) 25 | nodename=nodeName(path(child2)) 26 | comment=nodeParam(child,'comment',1); 27 | END; 28 | END; 29 | END; 30 | END; 31 | %] 32 | 33 |
34 | [% 35 | IF global.hwpredict; 36 | IF variables.NOHW; 37 | INCLUDE shortcut url=url(token, view, 'NOHW', '') 38 | text="Enable Holt-Winters" 39 | title="Switch Holt-Winters prediction boundaries"; 40 | ELSE; 41 | INCLUDE shortcut url=url(token, view, 'NOHW', 1) 42 | text="Disable Holt-Winters" 43 | title="Switch Holt-Winters prediction boundaries"; 44 | END; 45 | END 46 | %] 47 | 48 | [% INCLUDE shortcut url=url(token) text="Default view" 49 | title="Restore default subtree view" %] 50 |
51 | 52 | [% INCLUDE bottomline %] 53 | [% INCLUDE htmlend %] 54 | -------------------------------------------------------------------------------- /plugins/overview/templates/tset-list.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'ov/html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Non-empty tokensets" 4 | contentClass="SingleColumnContent" %] 5 | 6 |

Non-empty tokensets

7 | 8 | [% INCLUDE treename %] 9 | 10 |
11 | [% counter = 0; 12 | evenRow = 0; 13 | 14 | FOREACH tset = tsetList(); 15 | sz = tsetMembers(tset).size; 16 | 17 | IF sz > 0; 18 | 19 | counter = counter + 1; 20 | 21 | IF counter % 2 == 0; 22 | evenRow = 1; 23 | ELSE; 24 | evenRow = 0; 25 | END; 26 | %] 27 |
28 | 29 | [% xmlnorm(param(tset, 'comment')) %] 30 | ([% sz %]) 31 | 32 |
33 | [% END %] 34 | [% END %] 35 |
36 | 37 | [% INCLUDE tsetbottomline %] 38 | [% INCLUDE htmlend %] 39 | -------------------------------------------------------------------------------- /plugins/overview/tp-overview.apache.conf.in: -------------------------------------------------------------------------------- 1 | ScriptAlias /menu/ "@webplaindir@/menu/" 2 | ScriptAlias /overviews/ "@webplaindir@/overviews/" 3 | 4 | PerlModule Apache::ASP 5 | 6 | 7 | Allow from all 8 | SetHandler perl-script 9 | PerlHandler Apache::ASP 10 | PerlSetVar Global @aspglobal@ 11 | PerlSetVar NoState 1 12 | #PerlSetVar XSLTParser XML::Sablotron 13 | PerlSetVar XSLTParser XML::LibXSLT 14 | PerlSetVar XSLTMatch xml$ 15 | PerlSetVar XSLT @webscriptsdir@/tp-overview/menu.xsl 16 | PerlSetVar RequestParams 1 17 | 18 | 19 | 20 | SetHandler perl-script 21 | PerlHandler Apache::ASP 22 | PerlSetVar Global @aspglobal@ 23 | PerlSetVar NoState 1 24 | #PerlSetVar XSLTParser XML::Sablotron 25 | PerlSetVar XSLTParser XML::LibXSLT 26 | PerlSetVar XSLTMatch xml$ 27 | PerlSetVar XSLT @webscriptsdir@/tp-overview/overview.xsl 28 | PerlSetVar RequestParams 1 29 | 30 | 31 | -------------------------------------------------------------------------------- /plugins/overview/xtree/I.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/I.png -------------------------------------------------------------------------------- /plugins/overview/xtree/L.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/L.png -------------------------------------------------------------------------------- /plugins/overview/xtree/Lminus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/Lminus.png -------------------------------------------------------------------------------- /plugins/overview/xtree/Lplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/Lplus.png -------------------------------------------------------------------------------- /plugins/overview/xtree/T.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/T.png -------------------------------------------------------------------------------- /plugins/overview/xtree/Tminus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/Tminus.png -------------------------------------------------------------------------------- /plugins/overview/xtree/Tplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/Tplus.png -------------------------------------------------------------------------------- /plugins/overview/xtree/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/blank.png -------------------------------------------------------------------------------- /plugins/overview/xtree/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/file.png -------------------------------------------------------------------------------- /plugins/overview/xtree/foldericon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/foldericon.png -------------------------------------------------------------------------------- /plugins/overview/xtree/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/new.png -------------------------------------------------------------------------------- /plugins/overview/xtree/openfoldericon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/plugins/overview/xtree/openfoldericon.png -------------------------------------------------------------------------------- /plugins/overview/xtree/xtree.css: -------------------------------------------------------------------------------- 1 | .webfx-tree-container { 2 | margin: 0px; 3 | padding: 0px; 4 | font: icon; 5 | white-space: nowrap; 6 | } 7 | 8 | .webfx-tree-item { 9 | padding: 0px; 10 | margin: 0px; 11 | font: icon; 12 | color: black; 13 | white-space: nowrap; 14 | } 15 | 16 | .webfx-tree-item a, .webfx-tree-item a:active, .webfx-tree-item a:hover { 17 | margin-left: 3px; 18 | padding: 1px 2px 1px 2px; 19 | } 20 | 21 | .webfx-tree-item a { 22 | color: black; 23 | text-decoration: none; 24 | } 25 | 26 | .webfx-tree-item a:hover { 27 | color: blue; 28 | text-decoration: underline; 29 | } 30 | 31 | .webfx-tree-item a:active { 32 | background: highlight; 33 | color: highlighttext; 34 | text-decoration: none; 35 | } 36 | 37 | .webfx-tree-item img { 38 | vertical-align: middle; 39 | border: 0px; 40 | } 41 | 42 | .webfx-tree-icon { 43 | width: 20px; 44 | height: 20px; 45 | } 46 | .webfx-tree-item a.selected { 47 | color: selectedtext; 48 | background: selected; 49 | } 50 | 51 | .webfx-tree-item a.selected-inactive { 52 | color: windowtext; 53 | background: buttonface; 54 | } -------------------------------------------------------------------------------- /plugins/randomcollector/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | Senior System Engineer, CCIE #5478 4 | 5 | GPS-Technik AG 6 | Zuercherstrasse 139 7 | 8952 Schlieren 8 | Switzerland 9 | 10 | Tel. +41 1 732 99 77 11 | Fax +41 1 731 18 40 12 | 13 | ssinyagin@k-open.com 14 | http://sinyagin.pp.ru 15 | ************************************************** 16 | 17 | -------------------------------------------------------------------------------- /plugins/randomcollector/ChangeLog: -------------------------------------------------------------------------------- 1 | 2003-03-01 Stanislav Sinyagin 2 | 3 | * First incarnation of the Dummy plugin 4 | 5 | -------------------------------------------------------------------------------- /plugins/randomcollector/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # Random Collector Torrus plugin Automake script 22 | 23 | SUBST = @abs_top_builddir@/substvars.sh 24 | 25 | noinst_SCRIPTS = substvars.sh 26 | 27 | 28 | ##### Perl modules ##### 29 | myperlmoddir = $(perllibdir)/Torrus/Collector 30 | dist_myperlmod_DATA = Random.pm 31 | 32 | 33 | ##### Perl configuration files ##### 34 | torruscfgdir = $(plugtorruscfgdir) 35 | dist_torruscfg_DATA = randomcollector-torruscfg.pl 36 | 37 | ##### CLI wrapper ##### 38 | wrapperdir = $(plugwrapperdir) 39 | dist_wrapper_DATA = randomcollector-wrapper.sh 40 | 41 | ##### XML configuration ##### 42 | myxmldir = $(distxmldir)/examples 43 | dist_myxml_DATA = random.xml 44 | 45 | 46 | ##### Executable scripts ##### 47 | pkgbindir = @pkgbindir@ 48 | pkgbin_SCRIPTS = genrandomcfg 49 | EXTRA_DIST = genrandomcfg.in 50 | genrandomcfg: genrandomcfg.in 51 | $(SUBST) genrandomcfg.in > genrandomcfg 52 | 53 | 54 | ##### HTML and text Templates ##### 55 | tmpldir = @tmpldir@ 56 | dist_tmpl_DATA = genrandomcfg.xml 57 | 58 | 59 | ##### Documentation files ##### 60 | pkgdocdir = @pkgdocdir@ 61 | dist_pkgdoc_DATA = tp-randomcollector.txt tp-randomcollector.pod 62 | SUFFIXES = .pod .txt 63 | .pod.txt: 64 | pod2text $< $@ 65 | 66 | 67 | 68 | htdocs: 69 | for f in *.pod; do \ 70 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 71 | done 72 | 73 | UPLOADPATH = \ 74 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 75 | 76 | upload: dist 77 | scp $(distdir).tar.gz $(UPLOADPATH) 78 | -------------------------------------------------------------------------------- /plugins/randomcollector/NEWS: -------------------------------------------------------------------------------- 1 | 1-03-2003: Dummy plugin created 2 | 3 | -------------------------------------------------------------------------------- /plugins/randomcollector/README: -------------------------------------------------------------------------------- 1 | Random Collector plugin for Torrus 2 | 3 | See randomcollector.pod or randomcollector.txt for more details. 4 | 5 | See http://torrus.sourceforge.net for Torrus project documentation 6 | 7 | (C) 2003, Stanislav Sinyagin 8 | -------------------------------------------------------------------------------- /plugins/randomcollector/randomcollector-torruscfg.pl: -------------------------------------------------------------------------------- 1 | # HTTP Collector Torrus plugin configuration 2 | 3 | push( @Torrus::Collector::loadModules, 'Torrus::Collector::Random' ); 4 | push( @Torrus::Validator::loadLeafValidators, 'Torrus::Collector::Random' ); 5 | 6 | 1; 7 | -------------------------------------------------------------------------------- /plugins/randomcollector/randomcollector-wrapper.sh: -------------------------------------------------------------------------------- 1 | # Torrus commandline wrapper configuration 2 | 3 | commands="${commands} genrandomcfg=genrandomcfg" 4 | 5 | -------------------------------------------------------------------------------- /plugins/rawexport/AUTHORS: -------------------------------------------------------------------------------- 1 | Stanislav Sinyagin 2 | Senior System Engineer, CCIE #5478 3 | K-Open GmbH 4 | Switzerland 5 | Tel. +41 79 407 0224 6 | 7 | ssinyagin@k-open.com 8 | http://www.k-open.com 9 | -------------------------------------------------------------------------------- /plugins/rawexport/ChangeLog: -------------------------------------------------------------------------------- 1 | 2012-06-08 Stanislav Sinyagin 2 | 3 | * NEWS: Release 2.03.01 4 | 5 | * RawExport.pm (initTarget): must return a true value 6 | 7 | 2009-04-05 Stanislav Sinyagin 8 | 9 | * NEWS: Release 1.2 10 | 11 | 2008-08-05 Stanislav Sinyagin 12 | 13 | * NEWS: Release 1.0 14 | 15 | 2008-03-17 Stanislav Sinyagin 16 | 17 | First pre-release snapshot 18 | 19 | 20 | -------------------------------------------------------------------------------- /plugins/rawexport/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2008 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Christian Schnidrig 19 | # 20 | 21 | # HTTP Torrus plugin Automake script 22 | 23 | 24 | ##### Perl modules ##### 25 | myperlmoddir = $(perllibdir)/Torrus/Collector 26 | dist_myperlmod_DATA = RawExport.pm RawExport_Params.pm 27 | 28 | ##### Perl configuration files ##### 29 | torruscfgdir = $(plugtorruscfgdir) 30 | dist_torruscfg_DATA = rawexport-torruscfg.pl 31 | 32 | xmpxmldir = $(distxmldir)/examples 33 | dist_xmpxml_DATA = rawexport-example.xml 34 | 35 | 36 | ##### Documentation files ##### 37 | pkgdocdir = @pkgdocdir@ 38 | dist_pkgdoc_DATA = tp-rawexport.txt tp-rawexport.pod 39 | SUFFIXES = .pod .txt 40 | .pod.txt: 41 | pod2text $< $@ 42 | 43 | htdocs: 44 | for f in *.pod; do \ 45 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 46 | done 47 | 48 | UPLOADPATH = \ 49 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 50 | 51 | upload: dist 52 | scp $(distdir).tar.gz $(UPLOADPATH) 53 | -------------------------------------------------------------------------------- /plugins/rawexport/NEWS: -------------------------------------------------------------------------------- 1 | 09-JUN-2012: Release 2.03.01 2 | 3 | Bugfix for torrus-2.03 compatibility 4 | 5 | 05-APR-2008: Release 1.2 6 | 7 | Some bugfixes and minor improvements 8 | 9 | 05-AUG-2008: Release 1.0 -------------------------------------------------------------------------------- /plugins/rawexport/README: -------------------------------------------------------------------------------- 1 | Raw Export Collector plugin for Torrus 2 | 3 | See tp-rawexport.pod for more details. 4 | 5 | See http://torrus.sourceforge.net for Torrus project documentation 6 | 7 | Copyright (C) 2008, Stanislav Sinyagin 8 | -------------------------------------------------------------------------------- /plugins/rawexport/RawExport_Params.pm: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2008 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | 19 | 20 | 21 | package Torrus::Collector::RawExport_Params; 22 | 23 | use strict; 24 | 25 | ### Initialize the configuration validator with module-specific parameters 26 | 27 | my $validatorLeafParams = { 28 | 'raw-datadir' => undef, 29 | 'raw-file' => undef, 30 | 'raw-field-separator' => undef, 31 | 'raw-timestamp-format' => undef, 32 | 'raw-rowid' => undef, 33 | '+raw-counter-base' => { 34 | '32' => undef, 35 | '64' => undef, 36 | }, 37 | '+raw-counter-maxrate' => undef, 38 | }; 39 | 40 | sub initValidatorLeafParams 41 | { 42 | my $hashref = shift; 43 | 44 | $hashref->{'ds-type'}{'collector'}{'@storage-type'}{'raw'} = 45 | $validatorLeafParams; 46 | return; 47 | } 48 | 49 | 50 | 51 | 1; 52 | 53 | -------------------------------------------------------------------------------- /plugins/rawexport/rawexport-example.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 25 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /plugins/rawexport/rawexport-torruscfg.pl: -------------------------------------------------------------------------------- 1 | # HTTP Collector Torrus plugin configuration 2 | 3 | push( @Torrus::Collector::loadModules, 'Torrus::Collector::RawExport' ); 4 | push( @Torrus::Validator::loadLeafValidators, 5 | 'Torrus::Collector::RawExport_Params' ); 6 | 7 | 8 | # Limit of the export queue, in number of export files 9 | $Torrus::Collector::RawExport::thrQueueLimit = 10000; 10 | 11 | 12 | 13 | 1; 14 | -------------------------------------------------------------------------------- /plugins/rrdfit/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | CCIE #5478 4 | Tel. +41 44 732 99 53 5 | ssinyagin@k-open.com 6 | ************************************************** 7 | -------------------------------------------------------------------------------- /plugins/rrdfit/ChangeLog: -------------------------------------------------------------------------------- 1 | 2012-07-04 Stanislav Sinyagin 2 | 3 | * NEWS: tp-rrdfit release 2.03.01 4 | 5 | -------------------------------------------------------------------------------- /plugins/rrdfit/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2007 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # Torrus plugin Automake script 22 | 23 | SUBST = @abs_top_builddir@/substvars.sh 24 | 25 | noinst_SCRIPTS = substvars.sh 26 | EXTRA_DIST = rrdfit.in 27 | 28 | 29 | 30 | ##### CLI wrapper ##### 31 | wrapperdir = $(plugwrapperdir) 32 | dist_wrapper_DATA = rrdfit-wrapper.sh 33 | 34 | 35 | ##### Executable scripts ##### 36 | pkgbindir = @pkgbindir@ 37 | pkgbin_SCRIPTS = rrdfit 38 | rrdfit: rrdfit.in 39 | $(SUBST) rrdfit.in > rrdfit 40 | 41 | 42 | ##### Documentation files ##### 43 | pkgdocdir = @pkgdocdir@ 44 | dist_pkgdoc_DATA = tp-rrdfit.txt tp-rrdfit.pod.in 45 | SUFFIXES = .pod.in .pod .txt 46 | .pod.in.pod: 47 | $(SUBST) $< > $@ 48 | .pod.txt: 49 | pod2text $< $@ 50 | 51 | 52 | 53 | 54 | ##### What you do not need after "make clean" ##### 55 | CLEANFILES = $(pkgbin_SCRIPTS) 56 | 57 | htdocs: tp-rrdfit.pod 58 | for f in *.pod; do \ 59 | pod2html -css=../torrusdoc.css $$f > ../../htdocs/plugins/$$f.html; \ 60 | done 61 | 62 | UPLOADPATH = \ 63 | ssinyagin,torrus@web.sourceforge.net:/home/groups/t/to/torrus/htdocs/devel 64 | 65 | upload: dist 66 | scp $(distdir).tar.gz $(UPLOADPATH) 67 | -------------------------------------------------------------------------------- /plugins/rrdfit/NEWS: -------------------------------------------------------------------------------- 1 | 04-JUL-2012: Plugin release 2.03.01 2 | -------------------------------------------------------------------------------- /plugins/rrdfit/README: -------------------------------------------------------------------------------- 1 | Dummy plugin for Torrus 2 | 3 | This package is only a template for real plugins. 4 | 5 | Use the follwing command for plugin installation: 6 | 7 | torrus install_plugin 8 | 9 | See http://torrus.org for more details 10 | 11 | (C) 2003, 2004 Stanislav Sinyagin -------------------------------------------------------------------------------- /plugins/rrdfit/rrdfit-wrapper.sh: -------------------------------------------------------------------------------- 1 | # Torrus commandline wrapper configuration 2 | 3 | commands="${commands} rrdfit=rrdfit" 4 | 5 | -------------------------------------------------------------------------------- /plugins/siam/AUTHORS: -------------------------------------------------------------------------------- 1 | ************************************************** 2 | Stanislav Sinyagin 3 | CCIE #5478 4 | Tel. +41 44 732 99 53 5 | ssinyagin@k-open.com 6 | ************************************************** 7 | -------------------------------------------------------------------------------- /plugins/siam/ChangeLog: -------------------------------------------------------------------------------- 1 | 2017-12-01 Stanislav Sinyagin 2 | 3 | * siam_rebuild.in: run GIT garbage collector only once 4 | 5 | 2016-03-14 Stanislav Sinyagin 6 | 7 | * Removed siam_genxml as incompatible with SIAM v1.x data model 8 | 9 | 2014-05-30 Stanislav Sinyagin 10 | 11 | * Merged branch SIAM_v1.x into master 12 | 13 | 2012-03-20 Stanislav Sinyagin 14 | 15 | * NEWS: tp-siam plugin release 2.02.01 16 | 17 | 2012-03-07 Stanislav Sinyagin 18 | 19 | * siam_rrdfetch.in: new command-line utility 20 | 21 | 2012-02-08 Stanislav Sinyagin 22 | 23 | * split siam.in into siam_genddx.in, siam_genxml.in 24 | 25 | 2011-12-29 Stanislav Sinyagin 26 | 27 | * siam.in: aggregate traffic graphs 28 | 29 | 2011-09-11 Stanislav Sinyagin 30 | 31 | * SIAMDD.pm (checkdevtype): Improved error handling 32 | 33 | 2011-09-04 Stanislav Sinyagin 34 | 35 | * NEWS: Plugin release 2.01.01 36 | 37 | -------------------------------------------------------------------------------- /plugins/siam/NEWS: -------------------------------------------------------------------------------- 1 | 20-MAR-2012: Plugin release 2.02.01 2 | 3 | The "siam" command is split into siam_genddx and siam_genxml. Also a new 4 | command: siam_rrdfetch 5 | 6 | 04-SEP-2011: Plugin release 2.01.01 7 | -------------------------------------------------------------------------------- /plugins/siam/README: -------------------------------------------------------------------------------- 1 | Dummy plugin for Torrus 2 | 3 | This package is only a template for real plugins. 4 | 5 | Use the follwing command for plugin installation: 6 | 7 | torrus install_plugin 8 | 9 | See http://torrus.org for more details 10 | 11 | (C) 2003, 2004 Stanislav Sinyagin -------------------------------------------------------------------------------- /plugins/siam/SIAM.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2011 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 | 17 | 18 | # Stanislav Sinyagin 19 | 20 | # This module is an interface to SIAM API 21 | 22 | package Torrus::SIAM; 23 | 24 | use strict; 25 | use warnings; 26 | 27 | use SIAM; 28 | use YAML; 29 | 30 | use Torrus::Log; 31 | use Torrus::SIAMLogger; 32 | 33 | 34 | # Variables should be initialised in siam-siteconfig.pl 35 | our $siam_config; 36 | 37 | 38 | 39 | 40 | # Creates a SIAM object, connects and returns it. 41 | sub open 42 | { 43 | my $class = shift; 44 | 45 | my $siamcfg = eval { YAML::LoadFile($siam_config) }; 46 | if( $@ ) 47 | { 48 | Error("Cannot load YAML data from ${siam_config}: $@"); 49 | return undef; 50 | } 51 | 52 | $siamcfg->{'Logger'} = new Torrus::SIAMLogger; 53 | 54 | my $siam = new SIAM($siamcfg); 55 | if( not defined($siam) ) 56 | { 57 | Error('Failed to load SIAM'); 58 | return undef; 59 | } 60 | 61 | if( not $siam->connect() ) 62 | { 63 | Error('Failed connecting to SIAM'); 64 | return undef; 65 | } 66 | 67 | return $siam; 68 | } 69 | 70 | 71 | 72 | 73 | 74 | 1; 75 | 76 | 77 | # Local Variables: 78 | # mode: perl 79 | # indent-tabs-mode: nil 80 | # perl-indent-level: 4 81 | # End: 82 | -------------------------------------------------------------------------------- /plugins/siam/SIAMLogger.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2011 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | # Wrapper around Torrus logger to work for SIAM notifications 20 | 21 | package Torrus::SIAMLogger; 22 | 23 | use strict; 24 | use warnings; 25 | 26 | use Torrus::Log; 27 | 28 | 29 | sub new 30 | { 31 | my $self = {}; 32 | my $class = shift; 33 | bless $self, $class; 34 | 35 | return $self; 36 | } 37 | 38 | 39 | sub debug 40 | { 41 | my $self = shift; 42 | my $msg = shift; 43 | Debug($msg); 44 | } 45 | 46 | 47 | sub info 48 | { 49 | my $self = shift; 50 | my $msg = shift; 51 | Info($msg); 52 | } 53 | 54 | sub warn 55 | { 56 | my $self = shift; 57 | my $msg = shift; 58 | Warn($msg); 59 | } 60 | 61 | 62 | sub error 63 | { 64 | my $self = shift; 65 | my $msg = shift; 66 | Error($msg); 67 | } 68 | 69 | 70 | 71 | 1; 72 | 73 | 74 | # Local Variables: 75 | # mode: perl 76 | # indent-tabs-mode: nil 77 | # perl-indent-level: 4 78 | # End: 79 | -------------------------------------------------------------------------------- /plugins/siam/siam-ddconfig.pl: -------------------------------------------------------------------------------- 1 | 2 | require '@siam_config_pl@'; 3 | 4 | push( @Torrus::DevDiscover::loadModules, 5 | 'Torrus::DevDiscover::SIAMDD' ); 6 | 7 | 8 | 1; 9 | -------------------------------------------------------------------------------- /plugins/siam/siam-siteconfig.pl: -------------------------------------------------------------------------------- 1 | # Torrus SIAM plugin site config. Put all your site specifics here. 2 | 3 | 4 | # Specify the location of SIAM configuration file. 5 | $Torrus::SIAM::siam_config = '/opt/pm/etc/SIAM/mysite.yaml'; 6 | 7 | 1; 8 | -------------------------------------------------------------------------------- /plugins/siam/siam-wrapper.sh: -------------------------------------------------------------------------------- 1 | # Torrus commandline wrapper configuration 2 | 3 | commands="${commands} siam_genddx=siam_genddx \ 4 | siam_rrdfetch=siam_rrdfetch siam_rebuild=siam_rebuild" 5 | 6 | -------------------------------------------------------------------------------- /src/AUTHORS: -------------------------------------------------------------------------------- 1 | *************************************************** 2 | Stanislav Sinyagin 3 | Senior System Engineer, CCIE #5478 4 | K-Open GmbH 5 | Switzerland 6 | Tel. +41 79 407 0224 7 | 8 | ssinyagin@k-open.com 9 | http://www.k-open.com 10 | *************************************************** 11 | 12 | CREDITS: 13 | 14 | Chris Amley 15 | Xylan switches SNMP discovery 16 | 17 | Scott Brooks 18 | Atmel wireless devices SNMP discovery 19 | 20 | Aaron Bush 21 | APC and HP vendor templates. 22 | 23 | Shawn Ferry 24 | Many contributions in various parts. 25 | 26 | Marc Haber 27 | Lots of bug reports and architecture ideas. 28 | 29 | Roman Hochuli 30 | Bug reports and new feature ideas. 31 | Vendor templates for Ascend and DOCSIS. 32 | 33 | Ian Holsman http://holsman.net 34 | Adapted the bluerobot.com HTML layout design for Torrus. 35 | 36 | Gord Philpott 37 | Numerous bug reports. 38 | 39 | Christian Schnidrig 40 | Architecture ideas, interface improvements, other contributions. 41 | 42 | Jurij Smakov 43 | Contributed in manpages creation. Maintainer of Debian port. 44 | 45 | Jon Nistor 46 | Bug reports and contributions for JunOS, Cisco SCE and other 47 | vendors discovery. 48 | -------------------------------------------------------------------------------- /src/README: -------------------------------------------------------------------------------- 1 | Torrus project 2 | 3 | http://sourceforge.net/projects/torrus 4 | http://torrus.org 5 | http://sourceforge.net/apps/mediawiki/torrus/ 6 | 7 | For installation instructions, see doc/install.txt or convert doc/install.pod 8 | into a format of your preference. 9 | 10 | 11 | (C) 2002-2010, Stanislav Sinyagin 12 | -------------------------------------------------------------------------------- /src/TODO: -------------------------------------------------------------------------------- 1 | Torrus to-do list 2 | 3 | -------------------------------------------------------------------------------- /src/bin/cleanup.in: -------------------------------------------------------------------------------- 1 | #!@SHELL@ 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # disable Perl::Critic because this is not a Perl script 22 | ## no critic 23 | 24 | # How soon the sessions expire 25 | EXPIRE=60 26 | 27 | @FIND@ @sesstordir@ -type f -mtime +$EXPIRE -exec @RM@ '{}' ';' 28 | @FIND@ @seslockdir@ -type f -mtime +$EXPIRE -exec @RM@ '{}' ';' 29 | 30 | # Local Variables: 31 | # mode: shell-script 32 | # indent-tabs-mode: nil 33 | # perl-indent-level: 4 34 | # End: 35 | -------------------------------------------------------------------------------- /src/bin/gc.in: -------------------------------------------------------------------------------- 1 | #!@SHELL@ 2 | # Copyright (C) 2017 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # disable Perl::Critic because this is not a Perl script 22 | ## no critic 23 | 24 | # Garbage collector is needed because of this: 25 | # https://github.com/libgit2/libgit2/issues/4093 26 | 27 | 28 | cd @gitrepodir@ 29 | 30 | if [ $? -ne 0 ]; then 31 | echo "Could not find directory: @gitrepodir@" 1>&2 32 | exit 1 33 | fi 34 | 35 | @GIT@ gc 36 | 37 | if [ $? -ne 0 ]; then 38 | echo "git gc retuirned error" 1>&2 39 | exit 1 40 | fi 41 | 42 | @GIT@ update-server-info 43 | 44 | if [ $? -ne 0 ]; then 45 | echo "git update-server-info retuirned error" 1>&2 46 | exit 1 47 | fi 48 | 49 | exit 0 50 | 51 | # Local Variables: 52 | # mode: shell-script 53 | # indent-tabs-mode: nil 54 | # perl-indent-level: 4 55 | # End: 56 | -------------------------------------------------------------------------------- /src/bin/install_plugin.in: -------------------------------------------------------------------------------- 1 | #!@SHELL@ 2 | # Copyright (C) 2004 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | # disable Perl::Critic because this is not a Perl script 22 | ## no critic 23 | 24 | # Torrus plugin installation utility 25 | 26 | plugin=$1 27 | shift 28 | 29 | if test -z "$plugin"; then 30 | echo "Usage: $0 plugin_dir [options...]" 1>&2 31 | exit 1 32 | fi 33 | 34 | if test ! -d $plugin; then 35 | echo "No such directory: $plugin" 1>&2 36 | exit 1 37 | fi 38 | 39 | echo Installing Torrus plugin from $plugin 40 | 41 | cd $plugin 42 | eval './configure '`cat @cfgdefdir@/instvars`' '$@ || exit 1 43 | make || exit 1 44 | make install || exit 1 45 | 46 | echo Plugin installation finished 47 | 48 | 49 | # Local Variables: 50 | # mode: shell-script 51 | # indent-tabs-mode: nil 52 | # perl-indent-level: 4 53 | # End: 54 | -------------------------------------------------------------------------------- /src/bin/torrus.fcgi.in: -------------------------------------------------------------------------------- 1 | #!@PERL@ -w 2 | # Copyright (C) 2010 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | 20 | # FastCGI handler 21 | # Can be used as alternative to mod_perl in Apache 22 | # Can also be used with lighttpd 23 | 24 | 25 | use strict; 26 | use warnings; 27 | BEGIN { require '@torrus_config_pl@'; } 28 | 29 | use CGI::Fast; 30 | use Torrus::Log; 31 | use Torrus::CGI; 32 | 33 | 34 | if( $Torrus::Renderer::globalDebug ) 35 | { 36 | &Torrus::Log::setLevel('debug'); 37 | } 38 | 39 | 40 | # The FCGI handler process exits after a while and lets FCGI re-spawn 41 | # the process. The limits are randomized, so that multiple FCGI 42 | # processes don't stop at the same time 43 | 44 | my $max_req_count = $Torrus::FCGI::maxRequests + 45 | rand($Torrus::FCGI::maxRequestsRandomFactor); 46 | 47 | my $max_time = time() + $Torrus::FCGI::maxLifetime + 48 | rand($Torrus::FCGI::maxLifetimeRandomFactor); 49 | 50 | my $req_count = 0; 51 | while( my $q = new CGI::Fast ) 52 | { 53 | Torrus::CGI->process($q); 54 | $req_count++; 55 | 56 | if( $req_count > $max_req_count or 57 | time() > $max_time ) 58 | { 59 | exit(0); 60 | } 61 | } 62 | 63 | 64 | # Local Variables: 65 | # mode: perl 66 | # indent-tabs-mode: nil 67 | # perl-indent-level: 4 68 | # End: 69 | -------------------------------------------------------------------------------- /src/configs/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2004 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | EXTRA_DIST = \ 22 | devdiscover-config.pl \ 23 | devdiscover-siteconfig.pl \ 24 | email-siteconfig.pl \ 25 | initscript.conf \ 26 | notify-siteconfig.pl \ 27 | snmptrap-siteconfig.pl \ 28 | torrus-config.pl \ 29 | torrus-siteconfig.pl 30 | 31 | DISTCLEANFILES = instvars 32 | 33 | instvarsdir = $(cfgdefdir) 34 | nodist_instvars_DATA = instvars 35 | 36 | install-data-local: 37 | $(mkinstalldirs) $(DESTDIR)$(cfgdefdir) $(DESTDIR)$(siteconfdir) 38 | for f in initscript.conf devdiscover-config.pl torrus-config.pl; do \ 39 | @abs_top_builddir@/setup_tools/substvars.sh $$f > \ 40 | $(DESTDIR)$(cfgdefdir)/$$f; \ 41 | done 42 | for f in devdiscover-siteconfig.pl email-siteconfig.pl \ 43 | notify-siteconfig.pl \ 44 | snmptrap-siteconfig.pl torrus-siteconfig.pl; do \ 45 | if test ! -r $(DESTDIR)$(siteconfdir)/$$f; then \ 46 | $(INSTALL_DATA) $$f $(DESTDIR)$(siteconfdir)/$$f; \ 47 | fi \ 48 | done 49 | -------------------------------------------------------------------------------- /src/configs/devdiscover-siteconfig.pl: -------------------------------------------------------------------------------- 1 | # Torrus Device Discovery Site config. Put all your site specifics here. 2 | 3 | 4 | 1; 5 | -------------------------------------------------------------------------------- /src/configs/email-siteconfig.pl: -------------------------------------------------------------------------------- 1 | # Torrus Email notifications configuration. Put all your site specifics here. 2 | 3 | # The URL where the user can browse the datasources 4 | $Torrus::Email::url = 'http://localhost/torrus'; 5 | 6 | # Filename within templates directory which will be used 7 | # for e-mail notification 8 | $Torrus::Email::template = 'email-alarm.txt'; 9 | 10 | 1; 11 | 12 | # Local Variables: 13 | # mode: perl 14 | # indent-tabs-mode: nil 15 | # perl-indent-level: 4 16 | # End: 17 | -------------------------------------------------------------------------------- /src/configs/initscript.conf: -------------------------------------------------------------------------------- 1 | # Torrus init script configuration 2 | # You can override any value in @siteconfdir@/initscript.siteconf 3 | 4 | # setuid to this user before launching the daemons 5 | TORRUS_USER=@torrus_user@ 6 | 7 | 8 | 9 | 10 | # Local Variables: 11 | # mode: shell-script 12 | # indent-tabs-mode: nil 13 | # perl-indent-level: 4 14 | # End: 15 | -------------------------------------------------------------------------------- /src/configs/notify-siteconfig.pl: -------------------------------------------------------------------------------- 1 | 2 | %Torrus::Notify::programs = 3 | ( 4 | 'mailto' => '$TORRUS_BIN/action_printemail | /usr/bin/mail $ARG1', 5 | 'page' => '/usr/bin/echo $TORRUS_NODEPATH:$TORRUS_MONITOR ' . 6 | '>> /tmp/monitor.$ARG1.log' 7 | ); 8 | 9 | %Torrus::Notify::policies = 10 | ( 11 | 'CUST_A' => { 12 | 'match' => sub { $ENV{'TORRUS_P_notify_policy'} eq 'A' }, 13 | 'severity' => { 14 | '3' => [ 'mailto:aaa@domain.com', 15 | 'mailto:bbb@domain.com' ], 16 | '5' => [ 'page:1234', 'mailto:boss@domain.com' ] } } ); 17 | 18 | 19 | 20 | 21 | # Torrus::Log::setLevel('debug'); 22 | 23 | 24 | 25 | 1; 26 | 27 | # Local Variables: 28 | # mode: perl 29 | # indent-tabs-mode: nil 30 | # perl-indent-level: 4 31 | # End: 32 | -------------------------------------------------------------------------------- /src/configs/snmptrap-siteconfig.pl: -------------------------------------------------------------------------------- 1 | # Torrus SNMP Trap configuration. Put all your site specifics here. 2 | 3 | # Hosts that will receive traps 4 | @Torrus::Snmptrap::hosts = qw( localhost ); 5 | 6 | # SNMP community for trap sending 7 | $Torrus::Snmptrap::community = 'public'; 8 | 9 | # SNMP trap port. 10 | $Torrus::Snmptrap::port = 162; 11 | 12 | 13 | 1; 14 | 15 | # Local Variables: 16 | # mode: perl 17 | # indent-tabs-mode: nil 18 | # perl-indent-level: 4 19 | # End: 20 | -------------------------------------------------------------------------------- /src/configs/torrus-siteconfig.pl: -------------------------------------------------------------------------------- 1 | # Torrus Site config. Put all your site specifics here. 2 | # You need to stop and start Apache server every time you change this file. 3 | 4 | use Sys::Hostname qw(hostname); 5 | 6 | @Torrus::Global::xmlAlwaysIncludeFirst = ( 'defaults.xml', 'site-global.xml' ); 7 | 8 | %Torrus::Global::treeConfig = 9 | ( 10 | 'main' => { 11 | 'description' => 'The main tree', 12 | 'info' => 'some tree', 13 | 'xmlfiles' => [qw(routers.xml)], 14 | 'run' => { 'collector' => 1, 'monitor' => 0 } } 15 | ); 16 | 17 | # Customizable look in the HTML page top 18 | # $Torrus::Renderer::companyName = 'Your company name'; 19 | # $Torrus::Renderer::companyURL = 'http://torrus.sf.net'; 20 | # $Torrus::Renderer::siteInfo = hostname(); 21 | 22 | 23 | 1; 24 | -------------------------------------------------------------------------------- /src/critic.profile: -------------------------------------------------------------------------------- 1 | # This is the Torrus-specific profile for Perl::Critic 2 | # The defaults are sometimes too demanding and require too much effort to fix, 3 | # so this profile proposes a certain compromise. 4 | 5 | severity = 3 6 | 7 | # Package vars are used a lot in torrus 8 | [Variables::ProhibitPackageVars] 9 | severity = 1 10 | 11 | # Complexity is fine as long as it's designed properly :) 12 | [Modules::ProhibitExcessMainComplexity] 13 | severity = 1 14 | 15 | [Subroutines::ProhibitExcessComplexity] 16 | severity = 1 17 | 18 | [ControlStructures::ProhibitDeepNests] 19 | severity = 1 20 | 21 | 22 | # there is a lot of whitespace garbage, but removing all of it will make 23 | # the code unmanageable 24 | [CodeLayout::ProhibitTrailingWhitespace] 25 | severity = 1 26 | 27 | # Tabs are bad 28 | [CodeLayout::ProhibitHardTabs] 29 | severity = 5 30 | 31 | # torrus-coonfig.pl is explicitly require'd 32 | [Modules::RequireBarewordIncludes] 33 | severity = 1 34 | 35 | # new Object() is used everywhere 36 | [Objects::ProhibitIndirectSyntax] 37 | severity = 1 38 | 39 | 40 | # if-elsif-elsif-elsif are used in a couple of files 41 | [ControlStructures::ProhibitCascadingIfElse] 42 | severity = 1 43 | 44 | 45 | # they tell to use /x in every regexp, but we don't 46 | [RegularExpressions::RequireExtendedFormatting] 47 | severity = 1 48 | 49 | 50 | # we use "my %options = @_;" in new() constructors, probably need to 51 | # change that later 52 | [Subroutines::RequireArgUnpacking] 53 | severity = 2 54 | 55 | # We use return undef very often as an indication that the value is undefined. 56 | [Subroutines::ProhibitExplicitReturnUndef] 57 | severity = 1 58 | 59 | # string eval is used rarely and in places where we really need it 60 | [BuiltinFunctions::ProhibitStringyEval] 61 | severity = 1 62 | 63 | # using oct(664) is just odd. Everyone knows what leading zero means 64 | [ValuesAndExpressions::ProhibitLeadingZeros] 65 | severity = 1 66 | 67 | # global signal handling is critical for correct BerkeleyDB functioning 68 | # also $0 is needed to set the process status 69 | [Variables::RequireLocalizedPunctuationVars] 70 | allow = %SIG $0 71 | 72 | # we've got a few subroutines with too many arguments 73 | [Subroutines::ProhibitManyArgs] 74 | max_arguments = 7 75 | 76 | # maybe I should change it later 77 | [ErrorHandling::RequireCarping] 78 | severity = 1 79 | 80 | -------------------------------------------------------------------------------- /src/discovery/README: -------------------------------------------------------------------------------- 1 | This directory is a typical place for SNMP device discovery instruction 2 | files. 3 | 4 | The discovery instruction files may be generated by "genddx" utility. 5 | They are used as the input for "devdiscover" utility. 6 | -------------------------------------------------------------------------------- /src/doc/ABOUT: -------------------------------------------------------------------------------- 1 | Round Robin Database Framework will be the universal 2 | framework, or a frontend for Round-Robin Database (RRDtool). 3 | Unlike the other frontends, it will prioritize the following 4 | features: 5 | 6 | -- Have flexible hierarchical configuration (like Cricket) 7 | -- Wildcards in configuration for grouping the databases 8 | (or regexp'ed filenames?) 9 | -- Arbitrary DS naming (Cricket understands only ds0, ds1...) 10 | -- Monitor the RRDs according to specified rules, and automatically 11 | create the summary page with the graphs of the RRDs showing 12 | troubles (like Cricket's threshold monitoring. But it only creates 13 | a list of DSes, and you have to go and see them by yourself). 14 | -- Browse the available RRDs in a hierarchical manner (like Cricket, 15 | but able to handle newly-created databases, like RRGrapher) 16 | -- no data collection at all. just monitoring and displaying the data 17 | collected by someone else. 18 | 19 | In more details, the first requirements draft is available at: 20 | http://carrierin.sourceforge.net/rrframework.html 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/doc/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | SUBDIRS = . manpages 22 | 23 | SUBST = @abs_top_builddir@/setup_tools/substvars.sh 24 | 25 | CLEANFILES = $(POD_FILES) $(nodist_pkgdoc_DATA) 26 | EXTRA_DIST = $(SRCPOD) 27 | 28 | SRCPOD = \ 29 | install.pod.in \ 30 | nodeid_usage.pod.in \ 31 | reporting_setup.pod.in \ 32 | rpnexpr.pod.in \ 33 | scalability.pod.in \ 34 | snmpdiscovery.pod.in \ 35 | stylingprofile.pod.in \ 36 | userguide.pod.in \ 37 | vendorsupport.pod.in \ 38 | webintf.pod.in \ 39 | xmlconfig.pod.in 40 | 41 | POD_FILES = \ 42 | install.pod \ 43 | nodeid_usage.pod \ 44 | reporting_setup.pod \ 45 | rpnexpr.pod \ 46 | scalability.pod \ 47 | snmpdiscovery.pod \ 48 | stylingprofile.pod \ 49 | userguide.pod \ 50 | vendorsupport.pod \ 51 | webintf.pod \ 52 | xmlconfig.pod 53 | 54 | 55 | pkgdocdir = @pkgdocdir@ 56 | 57 | if POD2TEXT_PRESENT 58 | nodist_pkgdoc_DATA = \ 59 | install.txt \ 60 | nodeid_usage.txt \ 61 | reporting_setup.txt \ 62 | rpnexpr.txt \ 63 | scalability.txt \ 64 | snmpdiscovery.txt \ 65 | stylingprofile.txt \ 66 | userguide.txt \ 67 | vendorsupport.txt \ 68 | webintf.txt \ 69 | xmlconfig.txt 70 | endif 71 | 72 | devdocdir = $(pkgdocdir)/devdoc 73 | 74 | dist_devdoc_DATA = \ 75 | devdoc/architecture.pod \ 76 | devdoc/devdiscover.pod \ 77 | devdoc/progstyle.pod 78 | 79 | SUFFIXES = .pod.in .pod .txt 80 | 81 | .PRECIOUS: $(POD_FILES) 82 | 83 | .pod.in.pod: 84 | $(SUBST) $< > $@ 85 | 86 | if POD2TEXT_PRESENT 87 | .pod.txt: 88 | $(POD2TEXT) $< > $@ 89 | endif 90 | 91 | htdocs: $(POD_FILES) 92 | cd manpages; make pods 93 | HTMLDIR=@abs_top_builddir@/../htdocs $(SHELL) mkhtdocs.sh 94 | 95 | -------------------------------------------------------------------------------- /src/doc/devdoc/v3_changes: -------------------------------------------------------------------------------- 1 | configure.ac 2 | ============ 3 | 4 | Perl threads are required (they were optional for v2). 5 | 6 | Renamed "perllib" to "lib". 7 | 8 | Perl version 5.8.9 or higher. 9 | 10 | New perl modules required: 11 | Redis::Fast 12 | Git::Raw (version 0.72 or higher) 13 | Git::ObjectStore (version 0.005 or higher) 14 | Digest::SHA 15 | Cache::Ref 16 | FCGI 17 | 18 | Perl modules not needed: 19 | BerkeleyDB 20 | 21 | Removed variables: 22 | perlithreads 23 | cachedir 24 | dbhome 25 | 26 | New variable: 27 | gitrepodir 28 | 29 | New software daemon required: 30 | redis 31 | 32 | 33 | Variables var_user, var_group, var_mode are set in configure script 34 | 35 | Apache mod_perl handlers are removed 36 | 37 | 38 | torrus-config.pl 39 | ================ 40 | 41 | Removed config: 42 | $Torrus::Global::threadsEnabled 43 | $Torrus::Collector::RRDStorage::useThreads 44 | $Torrus::Global::cacheDir 45 | $Torrus::Renderer::cacheMaxAge 46 | $Torrus::Global::dbHome 47 | $Torrus::DB::dbSub 48 | $Torrus::Global::ConfigReadyTimeout 49 | $Torrus::Global::ConfigReadyRetryPeriod 50 | $Torrus::Global::ConfigReadersWaitPeriod 51 | $Torrus::Collector::exclusiveStartupLock 52 | 53 | Changed defaults: 54 | $Torrus::Collector::fastCycles = 0; 55 | 56 | New config: 57 | $Torrus::Global::redisServer 58 | $Torrus::Global::redisPrefix 59 | $Torrus::ConfigTree::objCacheSize 60 | $Torrus::Global::RRDCachedSock 61 | 62 | Torrus::ConfigTree 63 | ================== 64 | 65 | Aliases are no longer supported 66 | 67 | 68 | Default parameters changed: 69 | 70 | last24h-small,last24h,lastweek,lastmonth,lastyear 71 | 72 | 73 | 74 | 75 | Systemd service: 76 | cp systemd/torrus.service /lib/systemd/system/ 77 | cp systemd/torrus.tmpfile /usr/lib/tmpfiles.d/torrus.conf 78 | systemctl enable torrus 79 | 80 | 81 | -------------------------------------------------------------------------------- /src/doc/headers: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | # 21 | 22 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_buildsearchdb.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2007 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | buildsearchdb - Build the search database 24 | 25 | =head1 SYNOPSIS 26 | 27 | B I 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command indexes the Torrus configuration objects and builds the 32 | search index database. One of the three options B<--tree>, B<--all> or 33 | B<--global> is required. 34 | 35 | =head1 OPTIONS 36 | 37 | =over 4 38 | 39 | =item B<--tree>=I 40 | 41 | Build the indexes for a given tree. 42 | 43 | =item B<--all> 44 | 45 | Builds the tree indexes for all trees. 46 | 47 | =item B<--nogc> 48 | 49 | Normally the Git garbage collector is launched after the search database 50 | is updated. This option makes the builder skip the GC run. 51 | 52 | =item B<--verbose> 53 | 54 | Prints extra information 55 | 56 | =item B<--debug> 57 | 58 | Prints debugging information 59 | 60 | =item B<--help> 61 | 62 | Displays a help message. 63 | 64 | =back 65 | 66 | =head1 SEE ALSO 67 | 68 | L 69 | 70 | =head1 NOTES 71 | 72 | See more documentation at Torrus home page: http://torrus.org 73 | 74 | =head1 AUTHOR 75 | 76 | Stanislav Sinyagin Essinyagin@k-open.comE 77 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_cleanup.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2004 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | cleanup - Cleans up Torrus web session data. 24 | 25 | =head1 SYNOPSIS 26 | 27 | B 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command cleans out the expired (older than 2 days) Torrus web interface 32 | session data. 33 | 34 | =head1 FILES 35 | 36 | =over 4 37 | 38 | =item F<@sesstordir@> 39 | 40 | Torrus session data storage directory. 41 | 42 | =item F<@seslockdir@> 43 | 44 | Torrus session data lock directory. 45 | 46 | =back 47 | 48 | =head1 SEE ALSO 49 | 50 | L 51 | 52 | =head1 NOTES 53 | 54 | See more documentation at Torrus home page: http://torrus.org 55 | 56 | =head1 AUTHOR 57 | 58 | Stanislav Sinyagin Essinyagin@k-open.comE 59 | 60 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_clearcache.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2004 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | clearcache - Clears the Torrus Renderer's cache. 24 | 25 | =head1 SYNOPSIS 26 | 27 | B 28 | 29 | =head1 DESCRIPTION 30 | 31 | This program clears Torrus Renderer's cache. It is intended for debugging 32 | purposes only. 33 | 34 | =head1 SEE ALSO 35 | 36 | L 37 | 38 | =head1 NOTES 39 | 40 | See more documentation at Torrus home page: http://torrus.org 41 | 42 | 43 | =head1 AUTHOR 44 | 45 | Stanislav Sinyagin Essinyagin@k-open.comE 46 | 47 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_configinfo.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2004 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | configinfo - Displays useful statistics for all Torrus trees. 24 | 25 | =head1 SYNOPSIS 26 | 27 | B 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command displays information on all available Torrus trees, including 32 | the names of the trees, counts of leaves, subtrees, views, monitors and 33 | actions, and other information. 34 | 35 | =head1 SEE ALSO 36 | 37 | L 38 | 39 | =head1 NOTES 40 | 41 | See more documentation at Torrus home page: http://torrus.org 42 | 43 | =head1 AUTHOR 44 | 45 | Stanislav Sinyagin Essinyagin@k-open.comE 46 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_flushmonitors.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2010 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | flushmonitors - Flush monitor alarms and tokenset members 24 | 25 | =head1 SYNOPSIS 26 | 27 | B --tree=I [I] 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command flushes the state of all monitor alarms for a given tree, 32 | and also the tokenset members which were originated by the monitor alarms. 33 | 34 | =head1 OPTIONS 35 | 36 | =over 4 37 | 38 | =item B<--all> 39 | 40 | Instructs to flush all trees. 41 | 42 | =item B<--debug> 43 | 44 | Sets the log level to debug. 45 | 46 | =item B<--verbose> 47 | 48 | Sets the debug level to info. 49 | 50 | =item B<--help> 51 | 52 | Displays a help message. 53 | 54 | =back 55 | 56 | =head1 SEE ALSO 57 | 58 | L 59 | 60 | =head1 NOTES 61 | 62 | See more documentation at Torrus home page: http://torrus.org 63 | 64 | 65 | =head1 AUTHOR 66 | 67 | Stanislav Sinyagin Essinyagin@k-open.comE 68 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_genlist.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2004 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | genlist - Lists Torrus objects 24 | 25 | =head1 SYNOPSIS 26 | 27 | B --tree=I [I] 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command generates a listing of objects in Torrus 32 | configuration tree I. Currently it lists the RRD files only. 33 | 34 | =head1 OPTIONS 35 | 36 | =over 4 37 | 38 | =item B<--path>=I 39 | 40 | Sets the subtree path to I. Default values is "/". 41 | 42 | =item B<--what>=I 43 | 44 | Includes items I in the listing. Currently only "rrdfiles" is 45 | a supported item. 46 | 47 | =item B<--type>=I 48 | 49 | Sets selection type. Currently supported values are "collector" (Collector 50 | leaves), "readonly" (read-only leaves) and "all" (this also happens to be 51 | default value). 52 | 53 | =item B<--help> 54 | 55 | Displays a help message. 56 | 57 | =back 58 | 59 | =head1 SEE ALSO 60 | 61 | L 62 | 63 | =head1 NOTES 64 | 65 | See more documentation at Torrus home page: http://torrus.org 66 | 67 | =head1 AUTHOR 68 | 69 | Stanislav Sinyagin Essinyagin@k-open.comE 70 | 71 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_install_plugin.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2007 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | install_plugin - Installs the Torrus plugin 24 | 25 | =head1 SYNOPSIS 26 | 27 | B I 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command installs a Torrus plugin. Prior to executing this command, 32 | unpack the plugin package into some directory, and then point 33 | C to the path of the unpacked plugin distribution. 34 | 35 | The command would launch the C<./configure> script for the plugin 36 | and supply all options that specify the current Torrus installation paths. 37 | Then it would execute C and C. 38 | 39 | =head1 SEE ALSO 40 | 41 | L 42 | 43 | =head1 NOTES 44 | 45 | See more documentation at Torrus home page: http://torrus.org 46 | 47 | =head1 AUTHOR 48 | 49 | Stanislav Sinyagin Essinyagin@k-open.comE 50 | 51 | -------------------------------------------------------------------------------- /src/doc/manpages/torrus_monitor.pod.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2004 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | # 19 | # 20 | 21 | =head1 NAME 22 | 23 | monitor - Torrus Monitor. 24 | 25 | =head1 SYNOPSIS 26 | 27 | B --tree=I [I] 28 | 29 | =head1 DESCRIPTION 30 | 31 | This command starts the Monitor process for the tree I. By 32 | default it forks into a daemon, and sleeps until the next cycle in its 33 | schedule. 34 | 35 | =head1 OPTIONS 36 | 37 | =over 4 38 | 39 | =item B<--nodaemon> 40 | 41 | Prevents the process from becoming a daemon and sets the log to STDERR. 42 | 43 | =item B<--runonce> 44 | 45 | Instructs the script to run once and exit. Implies B<--nodaemon>. 46 | 47 | =item B<--delay=N> 48 | 49 | Makes the daemon sleep for N minutes before starting the first cycle. 50 | This would happen on the daemon startup and also after each configuration 51 | recompilation. 52 | For example, when monitor and collector start simultaneously, the collector 53 | needs some time to retrieve the data being monitored. 54 | 55 | =item B<--debug> 56 | 57 | Sets the log level to debug. 58 | 59 | =item B<--verbose> 60 | 61 | Sets the debug level to info. 62 | 63 | =item B<--help> 64 | 65 | Displays a help message. 66 | 67 | =back 68 | 69 | =head1 FILES 70 | 71 | =over 4 72 | 73 | =item F<@siteconfdir@/torrus-siteconfig.pl> 74 | 75 | Torrus site configuration script. 76 | 77 | =back 78 | 79 | =head1 SEE ALSO 80 | 81 | L 82 | 83 | =head1 NOTES 84 | 85 | See more documentation at Torrus home page: http://torrus.org 86 | 87 | =head1 AUTHOR 88 | 89 | Stanislav Sinyagin Essinyagin@k-open.comE 90 | -------------------------------------------------------------------------------- /src/doc/mkhtdocs.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Generate HTML files out of POD 3 | # 4 | # Stanislav Sinyagin 5 | # 6 | 7 | gen_html () { 8 | in=$1 9 | opt=$2 10 | out=${HTMLDIR}/${in}.html 11 | css=torrusdoc.css 12 | 13 | if ( echo ${in} | grep '/' > /dev/null ); then 14 | css='../'${css} 15 | fi 16 | 17 | if test ! -f ${out} -o ${in} -nt ${out}; then 18 | echo Updating ${in} 19 | pod2html -css=${css} --infile=${in} --outfile=${out} ${opt} 20 | fi 21 | } 22 | 23 | if test x${HTMLDIR} = x; then 24 | echo HTMLDIR environment variable not defined 1>&2 25 | exit 1 26 | fi 27 | 28 | for f in *.pod devdoc/*.pod; do 29 | gen_html $f 30 | done 31 | for f in manpages/*.pod; do 32 | gen_html $f --noindex 33 | done 34 | 35 | # Local Variables: 36 | # mode: shell-script 37 | # sh-shell: sh 38 | # indent-tabs-mode: nil 39 | # sh-basic-offset: 4 40 | # End: 41 | -------------------------------------------------------------------------------- /src/doc/torrus_rrdworld.xml: -------------------------------------------------------------------------------- 1 | 2 | Torrus 3 | Stanislav Sinyagin 4 | 5 | A robust and flexible framework for data collection and processing. 6 | Includes a modular SNMP discovery engine, SNMP collector, threshold monitor, 7 | hierarchical web interface. 8 | 9 | http://torrus.org/ 10 | 20056 11 | GPL 12 | ssinyagin@k-open.com 13 | 14 | -------------------------------------------------------------------------------- /src/examples/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | examplesdir = $(exmpdir) 22 | dist_examples_DATA = \ 23 | README \ 24 | onms.tmpl \ 25 | onmsInterfaces.sh \ 26 | torrus-siteconfig.powerbook.pl \ 27 | setmonitor.xupdate.xml 28 | 29 | -------------------------------------------------------------------------------- /src/examples/README: -------------------------------------------------------------------------------- 1 | Some useful exmples of Torrus configuration and usage. 2 | 3 | XML configuration examples reside in xmlconfig/examples. 4 | 5 | *.xupdate.xml files are examples of XUpdate usage to modify the XML files 6 | generated by devdiscover. See also: 7 | Torrus User Guide 8 | XUpdate specification: http://www.xmldb.org/xupdate/ 9 | XUpdate implementation in Perl by Petr Pajas: XML::XUpdate::LibXML 10 | XML Editing shell by Petr Pajas: http://xsh.sourceforge.net/ 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/examples/onms.tmpl: -------------------------------------------------------------------------------- 1 | [%# 2 | Template-Toolkit template for OpenNMS Torrus config generation. 3 | Author: Gustavo Torres 4 | $Id$ 5 | %] 6 | 7 | 10 | 11 | [% PROCESS $data %] 12 | 13 | 14 | 15 | 23 | 32 | [% FOREACH interface = ifs %] 33 | 34 | 35 | 36 | 37 | 38 | 39 | [% FOREACH svc = interface.services; 40 | IF svc.name == 'icmp' %] 41 | 42 | [% ELSE %] 43 | 44 | 45 | 46 | 47 | 48 | 49 | [% END; 50 | END %] 51 | 52 | [% END %] 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/examples/onmsInterfaces.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (C) 2004 Gustavo Torres 3 | # Copyright (C) 2004 Stanislav Sinyagin 4 | # 5 | # This program is free software; you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation; either version 2 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program; if not, write to the Free Software 17 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 18 | 19 | # Gustavo Torres 20 | # Stanislav Sinyagin 21 | # 22 | 23 | # This shell script extracts OpenNMS information about interfaces 24 | # and builds the data file which you can use with onms.tmpl to generate 25 | # Torrus XML configuration. 26 | 27 | # Usage (RESPONSEDIR setting may be skipped if it's in the default path) 28 | # 29 | # RESPONSEDIR=/var/opennms/rrd/response 30 | # export RESPONSEDIR 31 | # cd /usr/local/torrus-0.1/share/torrus/ 32 | # ./examples/onmsInterfaces.sh > onms.data 33 | # tpage --define data=onms.data examples/onms.tmpl > xmlconfig/onms.xml 34 | 35 | 36 | if test x"$RESPONSEDIR" = x""; then 37 | RESPONSEDIR=/var/opennms/rrd/response 38 | fi 39 | 40 | echo '[% responsedir = "'$RESPONSEDIR'" %]' 41 | echo '[% ifs = [' 42 | 43 | for ipaddr in `ls ${RESPONSEDIR}`; do 44 | echo " { addr => '$i',"; 45 | echo " services => ["; 46 | for service in `ls ${RESPONSEDIR}/$i | awk -F. '{print $1}'`; do 47 | echo -n " {name => '${service}', " 48 | legend=`echo $j | awk '{print toupper($1)}'` 49 | echo "legend => '${legend}'}" 50 | done 51 | echo ' ]'; 52 | echo ' }'; 53 | done 54 | echo '] %]' 55 | 56 | # Local Variables: 57 | # mode: shell-script 58 | # indent-tabs-mode: nil 59 | # perl-indent-level: 4 60 | # End: 61 | -------------------------------------------------------------------------------- /src/examples/setmonitor.xupdate.xml: -------------------------------------------------------------------------------- 1 | 2 | 23 | 24 | 27 | 28 | 30 | 31 | 32 | 34 | 35 | This file was modified with XUpdate script setmonitor.xupdate.xml 36 | 37 | 38 | 39 | 40 | 41 | 42 | ifErrors 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/examples/torrus-siteconfig.powerbook.pl: -------------------------------------------------------------------------------- 1 | # Torrus Site config. Put all your site specifics here. 2 | # You need to stop and start Apache server every time you change this file. 3 | # 4 | # An example using the rainbow-schema overlay. 5 | # Shawn Ferry 6 | # 7 | # (ssinyagin) You can use statements like these from inside your 8 | # XML configurations: 9 | # 10 | # Besides, "devdiscover" discovery tool will soon support most 11 | # of these vendor definitions. 12 | 13 | # @(#) 10/18/03 torrus-siteconfig.pl 1.3 (10/18/03 18:44:31) sferry 14 | 15 | @Torrus::Global::xmlAlwaysIncludeFirst = 16 | qw( 17 | defaults.xml 18 | snmp-defs.xml 19 | collector-periods.xml 20 | vendor/cisco.ios.xml 21 | generic/rfc2790.host-resources.xml 22 | generic/rfc1213.xml 23 | vendor/ucd-snmp.xml 24 | ); 25 | 26 | %Torrus::Global::treeConfig = 27 | ( 28 | 'powerbook' => { 29 | 'description' => 'Powerbook Laptop Tree', 30 | 'xmlfiles' => [qw( 31 | powerbook/powerbook-defaults.xml 32 | powerbook/powerbook-ti.xml 33 | )], 34 | 'run' => { 35 | 'collector' => 1, 36 | } 37 | }, 38 | 39 | ); # CLOSE %Torrus::Global::treeConfig 40 | 41 | 42 | # Override values in the current schema with those in 43 | # rainbow schema, schema changes require an apache restart 44 | $Torrus::Renderer::stylingProfileOverlay = "rainbow-schema"; 45 | 46 | 47 | 1; 48 | -------------------------------------------------------------------------------- /src/examples/v3_perf/read.pl: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use JSON; 4 | use IO::File; 5 | use IO::Dir; 6 | 7 | my $homedir = '/opt/t3/t/data/'; 8 | 9 | my $json = JSON->new; 10 | 11 | 12 | my $d0 = IO::Dir->new($homedir) or die($!); 13 | 14 | while( defined(my $dir0 = $d0->read()) ) 15 | { 16 | if( $dir0 =~ /^\w{2}$/ ) 17 | { 18 | my $path1 = $homedir . '/' . $dir0; 19 | my $d1 = IO::Dir->new($path1) or die($!); 20 | 21 | while( defined(my $dir1 = $d1->read()) ) 22 | { 23 | if( $dir1 =~ /^\w{2}$/ ) 24 | { 25 | my $path2 = $path1 . '/' . $dir1; 26 | my $d2 = IO::Dir->new($path2) or die($!); 27 | 28 | while( defined(my $fname = $d2->read()) ) 29 | { 30 | if( $fname =~ /\w/ ) 31 | { 32 | local $/; 33 | my $filepath = $path2 . '/' . $fname; 34 | my $fh = IO::File->new($filepath) 35 | or die("Cannot open $filepath: $!"); 36 | 37 | my $data = $json->decode($fh->getline); 38 | die("empty data") unless defined($data); 39 | die("not a hash") unless ref($data) eq 'HASH'; 40 | 41 | $fh->close; 42 | } 43 | } 44 | } 45 | } 46 | } 47 | } 48 | 49 | -------------------------------------------------------------------------------- /src/examples/v3_perf/results: -------------------------------------------------------------------------------- 1 | ################################## 2 | digitalocean SSD: 3 | 4 | root@do01:~# time perl write.pl 200000 5 | 6 | real 1m36.161s 7 | user 0m28.252s 8 | sys 0m25.768s 9 | 10 | root@do01:~# time perl read.pl 11 | 12 | real 1m28.023s 13 | user 0m28.696s 14 | sys 0m23.756s 15 | 16 | 17 | ################################## 18 | tor01 ext4 in the lab (3.5" disks with software mirror and LVM) 19 | 20 | root@tor01:/opt/t3/t# time perl write.pl 200000 21 | 22 | real 8m7.494s 23 | user 0m16.688s 24 | sys 0m12.808s 25 | root@tor01:/opt/t3/t# time perl read.pl 26 | 27 | real 9m56.452s 28 | user 0m14.528s 29 | sys 0m9.392s 30 | 31 | 32 | ################################## 33 | tor01 BTRFS: 34 | 35 | root@tor01:/opt/t3/t# time perl write.pl 200000 36 | 37 | real 1m29.186s 38 | user 0m18.544s 39 | sys 0m20.388s 40 | root@tor01:/opt/t3/t# time perl read.pl 41 | 42 | real 2m24.438s 43 | user 0m15.948s 44 | sys 0m9.704s 45 | 46 | 47 | ################################## 48 | tor01 BTRFS on top of ext4 49 | 50 | apt-get install btrfs-tools 51 | dd if=/dev/zero of=/opt/t3/t/dataimg bs=64M count=100 52 | mkfs.btrfs /opt/t3/t/dataimg 53 | mkdir /opt/t3/t/data/ 54 | mount /opt/t3/t/dataimg /opt/t3/t/data/ 55 | 56 | 57 | root@tor01:/opt/t3/t# time perl write.pl 200000 58 | 59 | real 4m42.214s 60 | user 0m18.312s 61 | sys 0m22.456s 62 | 63 | root@tor01:/opt/t3/t# time perl read.pl 64 | 65 | real 8m50.374s 66 | user 0m17.828s 67 | sys 0m14.360s 68 | 69 | 70 | ################################## 71 | tor01 BTRFS: 72 | 73 | time perl src/examples/v3_perf/write.pl 50000 74 | 75 | real 0m13.011s 76 | user 0m6.136s 77 | sys 0m5.204s 78 | 79 | cd /opt/t3/t/data/ 80 | git init 81 | time git add --all 82 | 83 | real 0m36.877s 84 | user 0m31.472s 85 | sys 0m3.656s 86 | 87 | time git commit -m 'xx' 88 | 89 | real 0m19.054s 90 | user 0m3.172s 91 | sys 0m7.812s 92 | 93 | time git status 94 | On branch master 95 | nothing to commit, working directory clean 96 | 97 | real 0m1.940s 98 | user 0m0.636s 99 | sys 0m1.400s 100 | 101 | 102 | # ext4 103 | cd /var/tmp/ 104 | time git clone /opt/t3/t/data 105 | Cloning into 'data'... 106 | done. 107 | Checking out files: 100% (50001/50001), done. 108 | 109 | real 0m15.816s 110 | user 0m2.968s 111 | sys 0m7.820s 112 | 113 | -------------------------------------------------------------------------------- /src/examples/v3_perf/write.pl: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use Digest::SHA qw(sha1_hex); 4 | use File::Path qw(make_path); 5 | use JSON; 6 | use IO::File; 7 | 8 | 9 | my $homedir = '/opt/t3/t/data/'; 10 | my $count = $ARGV[0] or die("Need numeric argument"); 11 | 12 | my $data = { 13 | 'docsIfDownstreamChannelTable' => '1.3.6.1.2.1.10.127.1.1.1', 14 | 'docsIfCmtsDownChannelCounterTable' => '1.3.6.1.2.1.10.127.1.3.10', 15 | 'docsIfSigQSignalNoise' => '1.3.6.1.2.1.10.127.1.1.4.1.5', 16 | 'ciscoLS1010' => '1.3.6.1.4.1.9.1.107', 17 | 'ciscoImageTable' => '1.3.6.1.4.1.9.9.25.1.1', 18 | 'ceImageTable' => '1.3.6.1.4.1.9.9.249.1.1.1', 19 | 'bufferElFree' => '1.3.6.1.4.1.9.2.1.9.0', 20 | 'cipSecGlobalHcInOctets' => '1.3.6.1.4.1.9.9.171.1.3.1.4.0', 21 | 'cbgpPeerAddrFamilyName' => '1.3.6.1.4.1.9.9.187.1.2.3.1.3', 22 | 'cbgpPeerAcceptedPrefixes' => '1.3.6.1.4.1.9.9.187.1.2.4.1.1', 23 | 'cbgpPeerPrefixAdminLimit' => '1.3.6.1.4.1.9.9.187.1.2.4.1.3', 24 | 'ccarConfigType' => '1.3.6.1.4.1.9.9.113.1.1.1.1.3', 25 | 'ccarConfigAccIdx' => '1.3.6.1.4.1.9.9.113.1.1.1.1.4', 26 | 'ccarConfigRate' => '1.3.6.1.4.1.9.9.113.1.1.1.1.5', 27 | 'ccarConfigLimit' => '1.3.6.1.4.1.9.9.113.1.1.1.1.6', 28 | 'ccarConfigExtLimit' => '1.3.6.1.4.1.9.9.113.1.1.1.1.7', 29 | 'ccarConfigConformAction' => '1.3.6.1.4.1.9.9.113.1.1.1.1.8', 30 | 'ccarConfigExceedAction' => '1.3.6.1.4.1.9.9.113.1.1.1.1.9', 31 | 'cvpdnSystemTunnelTotal' => '1.3.6.1.4.1.9.10.24.1.1.4.1.2', 32 | 'c3gStandard' => '1.3.6.1.4.1.9.9.661.1.1.1.1', 33 | 'cportQosDropPkts' => '1.3.6.1.4.1.9.9.189.1.3.2.1.7', 34 | }; 35 | 36 | my $json = JSON->new; 37 | 38 | while( $count-- > 0 ) 39 | { 40 | my $sha = sha1_hex(' ' . $count . ' '); 41 | 42 | my $dir = $homedir . substr($sha, 0, 2) . '/' . 43 | substr($sha, 2, 2) . '/'; 44 | 45 | if( not -d $dir ) 46 | { 47 | make_path($dir) or die("Cannot mkdir $dir: $!"); 48 | } 49 | 50 | my $filepath = $dir . $sha; 51 | 52 | my $fh = IO::File->new($filepath, 'w') or die("Cannot open $filepath: $!"); 53 | $fh->print($json->encode($data)); 54 | $fh->close; 55 | } 56 | 57 | -------------------------------------------------------------------------------- /src/init.d/torrus.in: -------------------------------------------------------------------------------- 1 | #!@SHELL@ 2 | # 3 | # init.d script for Torrus 4 | # Install it as /etc/init.d/torrus (most UNIXes), 5 | # or as /usr/local/etc/rc.d/torrus.sh (FreeBSD), or probably somewhere else. 6 | # 7 | # Stanislav Sinyagin 8 | # 9 | # 10 | ### chkconfig info 11 | # chkconfig: 2345 90 10 12 | # description: Starts/Stops Torrus collectors and monitors 13 | ### 14 | # 15 | ### BEGIN INIT INFO 16 | # Provides: torrus-collector torrus-monitor 17 | # Required-Start: $local_fs $remote_fs $syslog $named $network $time 18 | # Required-Stop: $local_fs $remote_fs $syslog $named $network 19 | # Should-Start: 20 | # Should-Stop: 21 | # Default-Start: 2 3 4 5 22 | # Default-Stop: 0 1 6 23 | # Short-Description: Torrus collectors and monitors 24 | # Description: Start/stop Torrus collectors and monitors 25 | ### END INIT INFO 26 | 27 | prefix=@prefix@ 28 | sysconfdir=@sysconfdir@ 29 | pkghome=@pkghome@ 30 | cmddir=@pkgbindir@ 31 | piddir=@piddir@ 32 | sitedir=@sitedir@ 33 | 34 | . @cfgdefdir@/initscript.conf 35 | if test -f @siteconfdir@/initscript.siteconf; then 36 | . @siteconfdir@/initscript.siteconf 37 | fi 38 | 39 | START_ARGS="--cmd=start" 40 | STOP_ARGS="--cmd=stop" 41 | 42 | if test x"${TORRUS_USER}" != x; then 43 | START_ARGS=${START_ARGS}' --user='${TORRUS_USER} 44 | STOP_ARGS=${STOP_ARGS}' --user='${TORRUS_USER} 45 | fi 46 | 47 | 48 | start_daemons () { 49 | ${cmddir}/launcher ${START_ARGS} 2>&1 | tee -a @logdir@/launcher_start.log 50 | 51 | # RHEL based systems (RHEL, CentOS, Fedora) ignore the KXXtorrus script 52 | # unless the corresponding lock is present 53 | if test -d /var/lock/subsys; then 54 | touch /var/lock/subsys/torrus 55 | fi 56 | } 57 | 58 | stop_daemons () { 59 | ${cmddir}/launcher ${STOP_ARGS} 2>&1 | tee -a @logdir@/launcher_stop.log 60 | 61 | # RHEL specifics 62 | if test -d /var/lock/subsys; then 63 | rm -f /var/lock/subsys/torrus 64 | fi 65 | } 66 | 67 | case "$1" in 68 | 'start') start_daemons 69 | ;; 70 | 71 | 'stop') stop_daemons 72 | ;; 73 | 74 | 'restart') stop_daemons; start_daemons 75 | ;; 76 | 77 | 'status') ${cmddir}/launcher --cmd=status 78 | ;; 79 | 80 | *) echo "Usage: $0 [start|stop|restart]" 81 | ;; 82 | esac 83 | 84 | # Local Variables: 85 | # mode: shell-script 86 | # sh-shell: sh 87 | # indent-tabs-mode: nil 88 | # sh-basic-offset: 2 89 | # End: 90 | -------------------------------------------------------------------------------- /src/lib/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | 22 | install-data-local: 23 | $(mkinstalldirs) $(DESTDIR)$(perllibdir) 24 | find * -type d ! -name CVS -print >list.tmp 25 | for d in `cat list.tmp`; do \ 26 | $(mkinstalldirs) $(DESTDIR)$(perllibdir)/$$d; done 27 | find * \( -name '*.pm' \) -type f -print >list.tmp 28 | for f in `cat list.tmp`; do \ 29 | $(INSTALL_DATA) $$f $(DESTDIR)$(perllibdir)/$$f; done 30 | rm -f list.tmp 31 | 32 | 33 | uninstall-local: 34 | find * -type d ! -name CVS -print >list.tmp 35 | for d in `cat list.tmp`; do \ 36 | rm -r $(DESTDIR)$(perllibdir)/$$d; done 37 | rm -f list.tmp 38 | 39 | 40 | dist-hook: 41 | find * -type d ! -name CVS -print >list.tmp 42 | for d in `cat list.tmp`; do \ 43 | mkdir $(distdir)/$$d; done 44 | find * \( -name '*.pm' -o -name '*.txt' \) -type f -print >list.tmp 45 | for f in `cat list.tmp`; do \ 46 | cp $$f $(distdir)/$$f; done 47 | rm -f list.tmp 48 | -------------------------------------------------------------------------------- /src/lib/Torrus/ACL/AuthLocalMD5.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2002 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | 20 | package Torrus::ACL::AuthLocalMD5; 21 | 22 | use strict; 23 | use warnings; 24 | 25 | use Torrus::Log; 26 | use Digest::MD5 qw(md5_hex); 27 | 28 | sub new 29 | { 30 | my $self = {}; 31 | my $class = shift; 32 | bless $self, $class; 33 | return $self; 34 | } 35 | 36 | 37 | sub getUserAttrList 38 | { 39 | return qw(userPasswordMD5); 40 | } 41 | 42 | sub authenticateUser 43 | { 44 | my $self = shift; 45 | my $uid = shift; 46 | my $password = shift; 47 | my $attrValues = shift; 48 | 49 | if( not $password or not $attrValues->{'userPasswordMD5'} ) 50 | { 51 | return undef; 52 | } 53 | my $pw_md5 = md5_hex( $password ); 54 | return( $pw_md5 eq $attrValues->{'userPasswordMD5'} ); 55 | } 56 | 57 | 58 | sub setPassword 59 | { 60 | my $self = shift; 61 | my $uid = shift; 62 | my $password = shift; 63 | 64 | my $attrValues = {}; 65 | $attrValues->{'userPasswordMD5'} = md5_hex( $password ); 66 | return $attrValues; 67 | } 68 | 69 | 70 | 71 | 72 | 1; 73 | 74 | 75 | # Local Variables: 76 | # mode: perl 77 | # indent-tabs-mode: nil 78 | # perl-indent-level: 4 79 | # End: 80 | -------------------------------------------------------------------------------- /src/lib/Torrus/Collector/CDef_Params.pm: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2004 Christian Schnidrig 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 | 18 | # Christian Schnidrig 19 | 20 | 21 | # Parameter definitions for CDef collector plugin 22 | 23 | package Torrus::Collector::CDef_Params; 24 | 25 | use strict; 26 | use warnings; 27 | 28 | ### Initialize the configuration validator with module-specific parameters 29 | our %params = 30 | ( 31 | 'rpn-expr' => undef, 32 | 'cdef-collector-delay' => undef, 33 | 'cdef-collector-tolerance' => undef, 34 | ); 35 | 36 | 37 | sub initValidatorLeafParams 38 | { 39 | my $hashref = shift; 40 | $hashref->{'ds-type'}{'collector'}{'collector-type'}{'cdef'} = 41 | \%params; 42 | return; 43 | } 44 | 45 | 46 | my %admInfoParamCategories = 47 | ( 48 | 'cdef-collector-delay' => 'CDef_Collector', 49 | 'cdef-collector-tolerance' => 'CDef_Collector', 50 | ); 51 | 52 | 53 | sub initAdmInfo 54 | { 55 | my $map = shift; 56 | my $categories = shift; 57 | 58 | $map->{'ds-type'}{'collector'}{'collector-type'}{'cdef'} = 59 | \%params; 60 | 61 | while( my ($pname, $category) = each %admInfoParamCategories ) 62 | { 63 | $categories->{$pname} = $category; 64 | } 65 | return; 66 | } 67 | 68 | 69 | 70 | 1; 71 | 72 | -------------------------------------------------------------------------------- /src/lib/Torrus/Collector/SNMP_TS_Params.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | package Torrus::Collector::SNMP_TS_Params; 20 | 21 | 22 | use strict; 23 | 24 | # List of needed parameters and default values 25 | 26 | our %requiredLeafParams = 27 | ( 28 | 'snmp-ts-column-oid' => undef, # the actual data column 29 | 'snmp-ts-ref-oid' => undef, # reference column 30 | '+snmp-ts-unit-scale' => undef, # how timestamp relates to 1 second 31 | ); 32 | 33 | 34 | my %skip_snmp_params = 35 | ( 36 | 'snmp-object' => 1, 37 | 'snmp-object-type' => 1, 38 | ); 39 | 40 | 41 | sub initValidatorLeafParams 42 | { 43 | my $hashref = shift; 44 | 45 | # Copy parameters from SNMP collector, except for 'snmp-object' 46 | while(my($key, $val) = 47 | each %{$hashref->{'ds-type'}{'collector'}{'collector-type'}{'snmp'}}) 48 | { 49 | if( not $skip_snmp_params{$key} ) 50 | { 51 | $requiredLeafParams{$key} = $val; 52 | } 53 | } 54 | 55 | $hashref->{'ds-type'}{'collector'}{'collector-type'}{'snmp-ts'} = 56 | \%requiredLeafParams; 57 | } 58 | 59 | 60 | 61 | 62 | 1; 63 | 64 | 65 | # Local Variables: 66 | # mode: perl 67 | # indent-tabs-mode: nil 68 | # perl-indent-level: 4 69 | # End: 70 | -------------------------------------------------------------------------------- /src/lib/Torrus/DevDiscover/NexComm.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2011 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 | 17 | # NexComm System xDSL gateways 18 | # Only interface indexing and naming is handled here. 19 | 20 | package Torrus::DevDiscover::NexComm; 21 | 22 | use strict; 23 | use warnings; 24 | 25 | use Torrus::Log; 26 | 27 | 28 | $Torrus::DevDiscover::registry{'NexComm'} = { 29 | 'sequence' => 500, 30 | 'checkdevtype' => \&checkdevtype, 31 | 'discover' => \&discover, 32 | 'buildConfig' => \&buildConfig 33 | }; 34 | 35 | 36 | our %oiddef = 37 | ( 38 | 'nexcomm_products' => '1.3.6.1.4.1.5927.1', 39 | ); 40 | 41 | 42 | sub checkdevtype 43 | { 44 | my $dd = shift; 45 | my $devdetails = shift; 46 | 47 | if( not $dd->oidBaseMatch 48 | ( 'nexcomm_products', 49 | $devdetails->snmpVar( $dd->oiddef('sysObjectID') ) ) ) 50 | { 51 | return 0; 52 | } 53 | 54 | $devdetails->setCap('interfaceIndexingPersistent'); 55 | 56 | return 1; 57 | } 58 | 59 | 60 | sub discover 61 | { 62 | my $dd = shift; 63 | my $devdetails = shift; 64 | 65 | my $data = $devdetails->data(); 66 | my $session = $dd->session(); 67 | 68 | $data->{'param'}{'snmp-oids-per-pdu'} = 10; 69 | 70 | return 1; 71 | } 72 | 73 | 74 | sub buildConfig 75 | { 76 | my $devdetails = shift; 77 | my $cb = shift; 78 | my $devNode = shift; 79 | return; 80 | } 81 | 82 | 83 | 84 | 1; 85 | 86 | 87 | # Local Variables: 88 | # mode: perl 89 | # indent-tabs-mode: nil 90 | # perl-indent-level: 4 91 | # End: 92 | -------------------------------------------------------------------------------- /src/lib/Torrus/DevDiscover/Patton.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2011 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 16 | 17 | # Patton devices 18 | # Only interface indexing and naming is handled here. 19 | 20 | package Torrus::DevDiscover::Patton; 21 | 22 | use strict; 23 | use warnings; 24 | 25 | use Torrus::Log; 26 | 27 | 28 | $Torrus::DevDiscover::registry{'Patton'} = { 29 | 'sequence' => 500, 30 | 'checkdevtype' => \&checkdevtype, 31 | 'discover' => \&discover, 32 | 'buildConfig' => \&buildConfig 33 | }; 34 | 35 | 36 | our %oiddef = 37 | ( 38 | 'patton_products' => '1.3.6.1.4.1.1768.100', 39 | ); 40 | 41 | 42 | sub checkdevtype 43 | { 44 | my $dd = shift; 45 | my $devdetails = shift; 46 | 47 | if( not $dd->oidBaseMatch 48 | ( 'patton_products', 49 | $devdetails->snmpVar( $dd->oiddef('sysObjectID') ) ) ) 50 | { 51 | return 0; 52 | } 53 | 54 | $devdetails->setCap('interfaceIndexingPersistent'); 55 | 56 | return 1; 57 | } 58 | 59 | 60 | sub discover 61 | { 62 | my $dd = shift; 63 | my $devdetails = shift; 64 | 65 | my $data = $devdetails->data(); 66 | my $session = $dd->session(); 67 | 68 | $data->{'param'}{'snmp-oids-per-pdu'} = 10; 69 | 70 | return 1; 71 | } 72 | 73 | 74 | sub buildConfig 75 | { 76 | my $devdetails = shift; 77 | my $cb = shift; 78 | my $devNode = shift; 79 | return; 80 | } 81 | 82 | 83 | 84 | 1; 85 | 86 | 87 | # Local Variables: 88 | # mode: perl 89 | # indent-tabs-mode: nil 90 | # perl-indent-level: 4 91 | # End: 92 | -------------------------------------------------------------------------------- /src/lib/Torrus/DevDiscover/RFC1657_BGP4_MIB.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2005 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | # Discovery module for BGP4-MIB (RFC 1657) 20 | # This module does not generate any XML, but provides information 21 | # for other discovery modules. For the sake of discovery time and traffic, 22 | # it is not implicitly executed during the normal discovery process. 23 | 24 | package Torrus::DevDiscover::RFC1657_BGP4_MIB; 25 | 26 | use strict; 27 | use warnings; 28 | 29 | use Torrus::Log; 30 | 31 | 32 | our %oiddef = 33 | ( 34 | # BGP4-MIB 35 | 'bgpPeerRemoteAs' => '1.3.6.1.2.1.15.3.1.9', 36 | ); 37 | 38 | 39 | 40 | 41 | sub discover 42 | { 43 | my $dd = shift; 44 | my $devdetails = shift; 45 | 46 | my $data = $devdetails->data(); 47 | my $session = $dd->session(); 48 | 49 | my $table = $dd->walkSnmpTable('bgpPeerRemoteAs'); 50 | 51 | if( scalar(keys %{$table}) > 0 ) 52 | { 53 | $devdetails->setCap('bgpPeerTable'); 54 | 55 | while( my ($ipAddr, $asNum) = each %{$table} ) 56 | { 57 | $data->{'bgpPeerAS'}{$ipAddr} = $asNum; 58 | } 59 | } 60 | 61 | return 1; 62 | } 63 | 64 | 65 | 66 | 1; 67 | 68 | 69 | # Local Variables: 70 | # mode: perl 71 | # indent-tabs-mode: nil 72 | # perl-indent-level: 4 73 | # End: 74 | -------------------------------------------------------------------------------- /src/lib/Torrus/Redis.pm: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 Stanislav Sinyagin 2 | # 3 | # This program is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # This program is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | # GNU General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU General Public License 14 | # along with this program; if not, write to the Free Software 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 16 | 17 | # Stanislav Sinyagin 18 | 19 | 20 | package Torrus::Redis; 21 | 22 | use strict; 23 | use warnings; 24 | 25 | use base 'Redis::Fast'; 26 | 27 | 1; 28 | -------------------------------------------------------------------------------- /src/scripts/rrdup_notify.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Periodically check if there are RRD files not updated by collector, 4 | # and email the warning message. 5 | # *.old.rrd files are ignored 6 | 7 | # Stanislav Sinyagin 8 | # 9 | 10 | # Where the RRD files are located. Separate multiple paths with space 11 | RRDSTORAGE=/srv/torrus/collector_rrd 12 | 13 | # Maximum allowed age of an RRD file, in minutes. 14 | MAXAGE=60 15 | 16 | # Where to send complaints 17 | NOTIFY=root 18 | 19 | TMPFILE=/tmp/rrdup_notify.$$ 20 | 21 | cp /dev/null ${TMPFILE} 22 | 23 | for d in ${RRDSTORAGE}; do 24 | find ${d} -name '*.rrd' ! -name '*.old.rrd' \ 25 | -mmin +${MAXAGE} -print >>${TMPFILE} 26 | done 27 | 28 | nLines=`wc -l ${TMPFILE} | awk '{print $1}'` 29 | 30 | if test ${nLines} -gt 0; then 31 | cat ${TMPFILE} | \ 32 | mail -s "`printf \"Warning: %d aged RRD files\" ${nLines}`" ${NOTIFY} 33 | fi 34 | 35 | rm ${TMPFILE} 36 | 37 | # Local Variables: 38 | # mode: shell-script 39 | # indent-tabs-mode: nil 40 | # perl-indent-level: 4 41 | # End: 42 | -------------------------------------------------------------------------------- /src/scripts/xml/extract-skeleton.xsl: -------------------------------------------------------------------------------- 1 | 2 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | This file is a result of extract-skeleton.xsl template 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /src/setup_tools/check_perlthreading.pl: -------------------------------------------------------------------------------- 1 | 2 | use threads; 3 | 4 | $| = 1; 5 | 6 | print "The child thread must keep ticking while the main thread sleeps\n"; 7 | print "If it's not so, then we have a compatibility problem\n"; 8 | 9 | 10 | 11 | my $thrChild = threads->create( \&child ); 12 | $thrChild->detach(); 13 | 14 | print "P> Launched the child thread. Now I sleep 20 seconds\n"; 15 | sleep(20); 16 | print "P> Parent woke up. Was there ticking inbetween?\n"; 17 | 18 | exit 0; 19 | 20 | 21 | 22 | sub child 23 | { 24 | print "C> Child thread started. I will print 10 lines, one per second\n"; 25 | 26 | foreach my $i (1..10) 27 | { 28 | print("C> Child tick " . $i . "\n"); 29 | sleep(1); 30 | } 31 | } 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/setup_tools/configure_fhs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Configure script for FHC compliant setup (http://www.pathname.com/fhs/) 4 | # Stanislav Sinyagin 5 | 6 | if test ! -x ./configure; then 7 | echo "$0: cannot find ./configure" 2>&1 8 | echo "Usage: ./setup_tools/configure_fhs [configure options]..." 2>&1 9 | exit 1 10 | fi 11 | 12 | ./configure \ 13 | --prefix=/opt \ 14 | --mandir=/opt/share/man \ 15 | pkghome=/opt/torrus \ 16 | sitedir=/etc/opt/torrus \ 17 | "$@" 18 | -------------------------------------------------------------------------------- /src/setup_tools/cpanm_install_modules.sh: -------------------------------------------------------------------------------- 1 | for m in \ 2 | IO::Socket::SSL \ 3 | Redis::Fast \ 4 | Git::Raw \ 5 | Git::ObjectStore \ 6 | Digest::SHA \ 7 | Cache::Ref \ 8 | JSON \ 9 | JSON::XS \ 10 | XML::LibXML \ 11 | Template \ 12 | Proc::Daemon \ 13 | Net::SNMP \ 14 | URI::Escape \ 15 | Apache::Session \ 16 | Date::Parse \ 17 | CGI::Fast \ 18 | FCGI \ 19 | Excel::Writer::XLSX \ 20 | ;do 21 | cpanm --notest $m 22 | if [ $? -ne 0 ]; then exit 1; fi 23 | done 24 | 25 | -------------------------------------------------------------------------------- /src/setup_tools/mkvardir.sh.in: -------------------------------------------------------------------------------- 1 | #!@SHELL@ 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | dir=$1 22 | user=@var_user@ 23 | group=@var_group@ 24 | mode=@var_mode@ 25 | SHELL=@SHELL@ 26 | 27 | if test ! -d $dir; then 28 | 29 | @install_sh@ -d $dir || exit 1 30 | 31 | if test "@enable_varperm@" = "yes"; then 32 | test -z "$mode" || chmod $mode $dir || (rmdir $dir; exit 1) 33 | test -z "$user" || chown $user $dir || (rmdir $dir; exit 1) 34 | test -z "$group" || (chgrp $group $dir && chmod g+s $dir) || \ 35 | (rmdir $dir; exit 1) 36 | fi 37 | fi 38 | 39 | exit 0 40 | 41 | 42 | 43 | # Local Variables: 44 | # mode: shell-script 45 | # indent-tabs-mode: nil 46 | # perl-indent-level: 4 47 | # End: 48 | -------------------------------------------------------------------------------- /src/sup/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) 2002 Stanislav Sinyagin 3 | # 4 | # This program is free software; you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation; either version 2 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 17 | 18 | # Stanislav Sinyagin 19 | # 20 | 21 | dtddir = $(supdir)/dtd 22 | dist_dtd_DATA = dtd/snmp-discovery.dtd dtd/torrus-config.dtd 23 | 24 | mibsdir = $(supdir)/mibs 25 | dist_mibs_DATA = mibs/RRDTOOL-SMI.txt \ 26 | mibs/TORRUS-MIB.txt 27 | 28 | styldir = $(supdir)/styling 29 | dist_styl_DATA = \ 30 | styling/colornames.pl \ 31 | styling/rainbow-schema.pl \ 32 | styling/torrus-schema.pl \ 33 | styling/critical.png \ 34 | styling/good.png \ 35 | styling/warning.png \ 36 | styling/unknown.png 37 | 38 | 39 | webplaindir = @webplaindir@ 40 | dist_webplain_DATA = \ 41 | webplain/explain-rrdgraph.html \ 42 | webplain/torrus.css \ 43 | webplain/torrus-printer.css \ 44 | webplain/torrus-report.css 45 | 46 | 47 | install-data-local: 48 | $(mkinstalldirs) $(DESTDIR)$(webscriptsdir) 49 | -------------------------------------------------------------------------------- /src/sup/dtd/snmp-discovery.dtd: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/sup/mibs/RRDTOOL-SMI.txt: -------------------------------------------------------------------------------- 1 | RRDTOOL-SMI DEFINITIONS ::= BEGIN 2 | 3 | IMPORTS 4 | MODULE-IDENTITY, 5 | OBJECT-IDENTITY, 6 | enterprises 7 | FROM SNMPv2-SMI; 8 | 9 | rrdtool MODULE-IDENTITY 10 | LAST-UPDATED "200209150000Z" 11 | ORGANIZATION "RRD Tool" 12 | CONTACT-INFO 13 | " Tobi Oetiker 14 | 15 | Postal: ETZ J97, ETH 16 | 8092 Zurich 17 | Switzerland 18 | 19 | Telephone: +41 1 632-5286 20 | E-mail: oetiker@ee.ethz.ch 21 | 22 | RRD Tool Information: 23 | http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ 24 | " 25 | DESCRIPTION 26 | "The Structure of RRDTool fellow projects" 27 | ::= { enterprises 14697 } -- assigned by IANA 28 | 29 | torrus OBJECT-IDENTITY 30 | STATUS current 31 | DESCRIPTION 32 | "Round Robin Database Framework. 33 | http://torrus.sourceforge.net/ 34 | " 35 | ::= { rrdtool 1 } 36 | 37 | -- more to come if necessary. 38 | 39 | END 40 | -------------------------------------------------------------------------------- /src/sup/styling/ICONS: -------------------------------------------------------------------------------- 1 | Free icons by Aha-Soft Team 2 | http://www.small-icons.com/packs/16x16-free-application-icons.htm 3 | -------------------------------------------------------------------------------- /src/sup/styling/critical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/src/sup/styling/critical.png -------------------------------------------------------------------------------- /src/sup/styling/good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/src/sup/styling/good.png -------------------------------------------------------------------------------- /src/sup/styling/rainbow-schema.pl: -------------------------------------------------------------------------------- 1 | # Example of alternate style 2 | # rougly the traditional colors in a rainbow. 3 | # Shawn Ferry 4 | # 5 | # This file should be referenced using the 6 | # $Torrus::Renderer::stylingProfileOverlay option: 7 | # $Torrus::Renderer::stylingProfileOverlay = "rainbow-schema"; 8 | 9 | $Torrus::Renderer::graphStyles{'one'}{'color'} = '##darkred'; 10 | $Torrus::Renderer::graphStyles{'two'}{'color'} = '##red'; 11 | $Torrus::Renderer::graphStyles{'three'}{'color'} = '##yellow'; 12 | $Torrus::Renderer::graphStyles{'four'}{'color'} = '##deeppink'; 13 | $Torrus::Renderer::graphStyles{'five'}{'color'} = '##forestgreen'; 14 | $Torrus::Renderer::graphStyles{'six'}{'color'} = '##orange'; 15 | $Torrus::Renderer::graphStyles{'seven'}{'color'} = '##indigo'; 16 | $Torrus::Renderer::graphStyles{'eight'}{'color'} = '##blueviolet'; 17 | $Torrus::Renderer::graphStyles{'nine'}{'color'} = '##blue'; 18 | $Torrus::Renderer::graphStyles{'ten'}{'color'} = '##deepskyblue'; 19 | 20 | # slightly off white background with gold grid lines 21 | push( @Torrus::Renderer::graphExtraArgs, 22 | '--color=CANVAS#DCDCDC', #light grey 23 | '--color=BACK#808080', # darker grey 24 | '--color=GRID#FFD700' ); # gold 25 | 26 | 1; 27 | -------------------------------------------------------------------------------- /src/sup/styling/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/src/sup/styling/unknown.png -------------------------------------------------------------------------------- /src/sup/styling/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssinyagin/torrus-newfeatures/dd5978a5720ca496dcc4fb611da85bf17a6200c8/src/sup/styling/warning.png -------------------------------------------------------------------------------- /src/systemd/torrus.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Torrus collector and monitor daemons 3 | Wants=redis-server.service 4 | After=redis-server.service 5 | 6 | [Service] 7 | Type=forking 8 | ExecStart=@pkgbindir@/launcher --cmd=start 9 | ExecStop=@pkgbindir@/launcher --cmd=stop 10 | GuessMainPID=false 11 | TimeoutSec=45s 12 | Restart=no 13 | KillMode=control-group 14 | User=root 15 | Group=daemon 16 | 17 | 18 | 19 | [Install] 20 | WantedBy=multi-user.target 21 | -------------------------------------------------------------------------------- /src/systemd/torrus.tmpfile.in: -------------------------------------------------------------------------------- 1 | d @piddir@ 0755 @var_user@ @var_group@ 2 | -------------------------------------------------------------------------------- /src/templates/aclexport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 1.1 8 | 9 | 10 | 11 | [% FOREACH group = groups() %] 12 | 13 | [% privhash = privileges(group); 14 | FOREACH object = privhash.keys.sort; 15 | FOREACH priv = privhash.$object.keys.sort %] 16 | 17 | [% END; 18 | END; 19 | FOREACH attr = gattrlist(group); %] 20 | 21 | [% END; %] 22 | 23 | [% END %] 24 | 25 | 26 | 27 | [% FOREACH uid = users() %] 28 | 29 | [% FOREACH group = memberof(uid) %] 30 | 31 | [% END; 32 | FOREACH attr = uattrlist(uid); 33 | IF attr != 'uid' %] 34 | 35 | [% END; 36 | END %] 37 | 38 | [% END %] 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/templates/adminfo.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title='Administrative information: ' _ path(token) 4 | contentClass="SingleColumnContent" 5 | noTopMenu=1 %] 6 | 7 |

Administrative information

8 | [% INCLUDE treename %] 9 |

Path: [% path(token) %]

10 | 11 | [% 12 | FOREACH category = adminfo.keys.sort; 13 | %] 14 |

[% category %]

15 |
16 | [% 17 | counter = 0; 18 | evenRow = 0; 19 | 20 | FOREACH pname = adminfo.$category.keys.sort; 21 | counter = counter + 1; 22 | IF counter % 2 == 0; 23 | evenRow = 1; 24 | ELSE; 25 | evenRow = 0; 26 | END; 27 | %] 28 |
29 | [% pname %] 30 | [% adminfo.$category.$pname %] 31 | 32 |
33 | [% END %] 34 |
35 | [% 36 | END %] 37 | 38 | [% INCLUDE htmlend %] 39 | -------------------------------------------------------------------------------- /src/templates/default-chooser.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Torrus Top: " _ companyName 4 | contentClass="SingleColumnContent" 5 | noTopMenu=1 %] 6 | 7 |

Choose the datasource tree

8 | 9 |
10 | [% counter = 0; 11 | evenRow = 0; 12 | 13 | FOREACH tree = treeNames(); 14 | 15 | IF not userAuth or mayDisplayTree(tree); 16 | counter = counter + 1; 17 | 18 | IF counter % 2 == 0; 19 | evenRow = 1; 20 | ELSE; 21 | evenRow = 0; 22 | END; 23 | %] 24 | 25 |
26 | [% tree %] 27 | [% xmlnorm(treeDescr(tree)) %] 28 |
29 | [% END %] 30 | [% END %] 31 |
32 | 33 |
[% global.contentFinished = 1 %] 34 |
35 | [% INCLUDE globalsearchdialog %] 36 |
37 | [% INCLUDE htmlend %] 38 | -------------------------------------------------------------------------------- /src/templates/default-dir.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% thepath=path(token) %] 3 | [% INCLUDE htmlstart title=thepath printpath=1 %] 4 | 5 |

[% xmlnorm(nodeParam(token,'comment')) %]

6 | 7 | [% INCLUDE legend %] 8 | 9 |

Directories you can jump to:

10 |
11 | [% hasLeaves = 0; hasSubtrees = 0; 12 | childCounter = 0; 13 | evenRow = 0; 14 | FOREACH child = sortTokens(children(token)); 15 | hidden = 0; 16 | IF nodeParam(child,'hidden') == 'yes'; 17 | hidden = 1; 18 | END; 19 | comment = nodeParam(child,'comment',1); 20 | IF not hidden or variables.SHOWHIDDEN; 21 | childCounter = childCounter + 1; 22 | evenRow = childCounter % 2 == 0; 23 | IF isLeaf(child); 24 | hasLeaves = hasLeaves + 1; 25 | ELSE; 26 | hasSubtrees = 1; 27 | urlTitle = ''; 28 | END; 29 | %] 30 |
31 | 32 | [% IF displayHealth and nodeParam(child,'has-health-status',1) == 'yes' %] 33 | 34 | [% END %] 35 | [% hidden ? '':'' %] 36 | [% nodeName(child) %] 37 | [% hidden ? '':'' %] 38 | 39 | [% IF comment %] 40 | 41 | [% hidden ? '':'' %] 42 | [% xmlnorm(comment) %] 43 | [% hidden ? '':'' %] 44 | 45 | [% END %] 46 |
47 | [% END %] 48 | [% END %] 49 |
50 | 51 |
52 | [% IF hasLeaves > 1; 53 | INCLUDE shortcut url=url(token, 'expanded-dir-html') 54 | text="Expand leaves" 55 | title="Show all leaf graphs in one page"; 56 | END; 57 | IF hasSubtrees and nodeParam(token,'show-recursive',1) == 'yes'; 58 | INCLUDE shortcut url=url(token, 'recursive-dir-html') 59 | text="Recursive view" 60 | title="Show all subtrees and leaves in one page"; 61 | 62 | END; 63 | INCLUDE overviewShortcuts %] 64 |
65 | 66 | [% INCLUDE bottomline %] 67 | [% INCLUDE htmlend %] 68 | -------------------------------------------------------------------------------- /src/templates/default-helptext.html: -------------------------------------------------------------------------------- 1 | [%# #### We don't need the standard header and footer ####### %] 2 | [% PROCESS 'html-incblocks.txt' %] 3 | [% thepath=path(token) %] 4 | 6 | 7 | 8 | 9 | Help: [%thepath%] 10 | 11 | 17 | 18 | 19 |
20 | 21 |
22 | Torrus Help 23 |
24 | 25 |
26 | [% thepath %] 27 |
28 | 29 | [% helptext=nodeParam(token, 'help-text', 1); %] 30 |
31 | [% markup( helptext ) %] 32 |
33 | 34 |
35 | Close window 36 |
37 |
38 | 39 | 40 | -------------------------------------------------------------------------------- /src/templates/default-login.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Torrus Login: " _ companyName 4 | contentClass="SingleColumnContent" 5 | noTopMenu=1 %] 6 | 7 | [% IF authFailed %] 8 |

Incorrect username or password.

9 | [% END %] 10 | 11 |

Please authenticate yourself

12 | 13 |
14 | [% IF urlPassParams.token.defined AND urlPassParams.token.length > 0 %] 15 | 16 | [% ELSE; 17 | IF urlPassParams.path.defined AND urlPassParams.path.length > 0 %] 18 | 19 | [% ELSE; 20 | IF urlPassParams.nodeid.defined AND urlPassParams.nodeid.length > 0 %] 21 | 22 | [% END; 23 | END; 24 | END %] 25 | [% IF urlPassParams.view.defined AND urlPassParams.view.length > 0 %] 26 | 27 | [% END %] 28 |
29 | Username: 30 | 31 | 32 | 33 |
34 |
35 | Password: 36 | 37 | 38 | 39 |
40 |
41 | 42 |   43 | 44 | 45 | 46 | remember me 47 | 48 |
49 |
50 | 51 |
52 |
53 | [% IF lostPasswordURL %] 54 |
55 | Lost password? 56 |
57 | [% END %] 58 | 59 | [% INCLUDE htmlend %] 60 | -------------------------------------------------------------------------------- /src/templates/default-recursivedir.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% thepath=path(token) %] 3 | [% INCLUDE htmlstart title=thepath printpath=1 %] 4 | 5 |

[% xmlnorm(nodeParam(token,'comment')) %]

6 | 7 | [% INCLUDE legend %] 8 | 9 | [%# ########### Recursively print the children ################ %] 10 | 11 | [% BLOCK recursiveChildren; 12 | FOREACH child = sortTokens(children(token)); 13 | hidden = 0; 14 | IF nodeParam(child,'hidden') == 'yes'; 15 | hidden = 1; 16 | END; 17 | urlTitle = nodeParam(child,'comment',1); 18 | IF not hidden or variables.SHOWHIDDEN; %] 19 |
20 | 21 | [% hidden ? '':'' %] 22 | [% nodeName(child) %] 24 | [% hidden ? '':'' %] 25 | 26 | [% INCLUDE recursiveChildren token=child %] 27 |
28 | [% END; 29 | END; 30 | END %] 31 | 32 | 33 |

Directories you can jump to:

34 |
35 | [% INCLUDE recursiveChildren token=token %] 36 |
37 | 38 |
39 | [% INCLUDE shortcut url=url(token) text="Default view" 40 | title="Restore default subtree view"; 41 | INCLUDE overviewShortcuts 42 | %] 43 |
44 | 45 | [% INCLUDE bottomline %] 46 | [% INCLUDE htmlend %] 47 | -------------------------------------------------------------------------------- /src/templates/email-alarm.txt: -------------------------------------------------------------------------------- 1 | Subject: Monitor event: [%event%], [% nickname %] 2 | 3 | This is automatic Torrus event notification. 4 | 5 | Event timestamp: [% timestamp %] 6 | 7 | Tree name: [% tree %] 8 | Node path: [% path %] 9 | Node description: [% npcomment %] 10 | Monitor name: [% monitor %] 11 | Monitor description: [% mcomment %] 12 | 13 | Event type: [% event %] 14 | [% IF event=='escalate' %]Escalation time: [% escalation %] seconds [% END %] 15 | 16 | You can browse the node up-to-date graphs at this URL: 17 | [% url %] 18 | 19 | 20 | 21 | Event types description: 22 | set Alarm condition is met first time 23 | repeat Alarm condition repeats 24 | escalate Alarm is persistent for the escalation period 25 | clear Alarm condition is no longer met 26 | forget Information about this alarm has expired 27 | 28 | Torrus home page and documentation: 29 | http://torrus.sourceforge.net -------------------------------------------------------------------------------- /src/templates/expanded-dir.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE setdate %] 3 | [% thepath=path(token) %] 4 | [% INCLUDE htmlstart title=thepath printpath=1 %] 5 | 6 |

[% xmlnorm(nodeParam(token,'comment')) %]

7 | 8 | [% INCLUDE variables %] 9 | 10 | [% INCLUDE legend %] 11 | 12 |

Leaf nodes:

13 | [% 14 | FOREACH child = sortTokens(children(token)); 15 | IF isLeaf(child); 16 | INCLUDE shortgraph 17 | token=child 18 | nodename=nodeName(child) 19 | comment=nodeParam(child,'comment',1); 20 | END; 21 | END; 22 | %] 23 | 24 |
25 | [% 26 | IF global.hwpredict; 27 | IF variables.NOHW; 28 | INCLUDE shortcut url=url(token, view, 'NOHW', '') 29 | text="Enable Holt-Winters" 30 | title="Switch Holt-Winters prediction boundaries"; 31 | ELSE; 32 | INCLUDE shortcut url=url(token, view, 'NOHW', 1) 33 | text="Disable Holt-Winters" 34 | title="Switch Holt-Winters prediction boundaries"; 35 | END; 36 | END 37 | %] 38 | 39 | [% INCLUDE shortcut url=url(token) text="Default view" 40 | title="Restore default subtree view" %] 41 |
42 | 43 | [% INCLUDE bottomline %] 44 | [% INCLUDE htmlend %] 45 | -------------------------------------------------------------------------------- /src/templates/globalsearch.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% global.SearchString = variables.SEARCH; clearVar('SEARCH') %] 3 | [% INCLUDE htmlstart 4 | title='Global Search results: ' _ global.SearchString 5 | contentClass="SingleColumnContent" 6 | noTopMenu=1 %] 7 | 8 |
9 | [% INCLUDE shortcut url=url('') text="Top" 10 | title="Choose from the list of trees"%] 11 |
12 | 13 |

Global Search results: [% global.SearchString %]

14 |
15 | [% results = searchResults( global.SearchString ); 16 | counter = 0; 17 | 18 | FOREACH entry IN results; 19 | 20 | counter = counter + 1; 21 | IF counter % 2 == 0; 22 | evenRow = 1; 23 | ELSE; 24 | evenRow = 0; 25 | END; 26 | 27 | %] 28 |
29 | [%entry.tree%]: 30 | 31 | [% entry.path %] 32 | [% FOREACH param IN entry.match.keys %] 33 | 34 | [% param _ ': ' _ xmlnorm(entry.match.$param) %] 35 | 36 | [% END %] 37 |
38 | [% END %] 39 |
40 | 41 | 42 | [% global.contentFinished = 1 %] 43 |
44 | [% INCLUDE globalsearchdialog %] 45 |
46 | 47 | [% INCLUDE htmlend %] 48 | -------------------------------------------------------------------------------- /src/templates/overview-subleaves.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE setdate %] 3 | [% ovs=variables.OVS; clearVar('OVS'); global.bookmarkVars=['OVS',ovs]; 4 | thepath=path(token) %] 5 | [% INCLUDE htmlstart title=thepath printpath=1 %] 6 | 7 |

[% p = 'overview-page-title-' _ ovs; nodeParam(token, p, 1) %]

8 | 9 | [% INCLUDE variables %] 10 | 11 | [% INCLUDE legend %] 12 | 13 | [% 14 | FOREACH child = sortTokens(children(token)); 15 | childpath = path(child); 16 | p = 'overview-subleave-name-' _ ovs; 17 | FOREACH childname = nodeParam(token, p,1).split('\s*,\s*'); 18 | ovwpath = childpath _ childname; 19 | IF nodeExists(ovwpath); 20 | ovwtoken = pathToken(ovwpath); 21 | 22 | urltoken = ovwtoken; 23 | p = 'overview-direct-link-' _ ovs; 24 | IF nodeParam(token, p, 1) == 'yes'; 25 | urltoken = child; 26 | p = 'overview-direct-link-view-' _ ovs; 27 | urlview = nodeParam(token, p, 1); 28 | END; 29 | 30 | INCLUDE shortgraph 31 | token=ovwtoken 32 | urltoken=urltoken 33 | urlview=urlview 34 | nodename=nodeName(child) 35 | comment=nodeParam(child,'comment',1); 36 | END; 37 | END; 38 | END 39 | %] 40 | 41 |
42 | [% INCLUDE shortcut url=url(token) text="Default view" 43 | title="Restore default subtree view" %] 44 |
45 | 46 | [% INCLUDE bottomline %] 47 | [% INCLUDE htmlend %] 48 | -------------------------------------------------------------------------------- /src/templates/report-index.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Torrus Reports" 4 | contentClass="SingleColumnContent" 5 | noTopMenu=1 %] 6 | 7 |

Torrus reports

8 | 9 | [% INCLUDE treename %] 10 | 11 | 12 | 13 | 14 | 15 | 16 | [% rowCount = 0; 17 | FOREACH yr = data.keys.sort; 18 | rowCount = rowCount + 1; 19 | IF rowCount % 2 %] 20 | 21 | [% ELSE %] 22 | 23 | [% END %] 24 | 25 | 26 | [% END %] 27 |
Year
[% yr %]
28 | 29 | [% INCLUDE htmlend %] 30 | -------------------------------------------------------------------------------- /src/templates/report-yearly.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Torrus Reports: " _ year 4 | contentClass="SingleColumnContent" 5 | noTopMenu=1 %] 6 | 7 |

Torrus reports: [% year %]

8 | 9 | [% INCLUDE treename %] 10 | 11 | 12 | 13 | 14 | 15 | 16 | [% rowCount = 0; 17 | FOREACH mth = data.months; 18 | rowCount = rowCount + 1; 19 | IF rowCount % 2 %] 20 | 21 | [% ELSE %] 22 | 23 | [% END %] 24 | 27 | 28 | [% END %] 29 |
Monthly reports
Month
25 | [% monthName(mth) _ ' ' _ year %] 26 |
30 | 31 | [% INCLUDE htmlend %] 32 | -------------------------------------------------------------------------------- /src/templates/search.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% global.SearchString = variables.SEARCH; clearVar('SEARCH') %] 3 | [% INCLUDE htmlstart 4 | title='Search results: ' _ global.SearchString 5 | contentClass="SingleColumnContent" %] 6 | 7 |

Search results: [% global.SearchString %]

8 | [% INCLUDE treename %] 9 |
10 | [% results = searchResults(global.SearchString); 11 | counter = 0; 12 | 13 | FOREACH entry IN results; 14 | 15 | counter = counter + 1; 16 | IF counter % 2 == 0; 17 | evenRow = 1; 18 | ELSE; 19 | evenRow = 0; 20 | END; 21 | %] 22 |
23 | 24 | [% entry.path %] 25 | [% FOREACH param IN entry.match.keys %] 26 | 27 | [% param _ ': ' _ xmlnorm(entry.match.$param) %] 28 | 29 | [% END %] 30 |
31 | [% END %] 32 |
33 | 34 | 35 | [% global.contentFinished = 1 %] 36 |
37 | [% INCLUDE shortcut url=url(pathToken('/')) text="Datasources tree" 38 | title="Back to the datasources tree" %] 39 | [% INCLUDE searchdialog %] 40 |
41 | 42 | [% INCLUDE htmlend %] 43 | -------------------------------------------------------------------------------- /src/templates/tset-list.html: -------------------------------------------------------------------------------- 1 | [% PROCESS 'html-incblocks.txt' %] 2 | [% INCLUDE htmlstart 3 | title="Non-empty tokensets" 4 | contentClass="SingleColumnContent" %] 5 | 6 |

Tokensets

7 | 8 | [% INCLUDE treename %] 9 | 10 |
11 | [% counter = 0; 12 | evenRow = 0; 13 | 14 | FOREACH tset = tsetList().sort; 15 | sz = tsetMembers(tset).size; 16 | IF sz.length == 0; sz=0; END; 17 | 18 | counter = counter + 1; 19 | 20 | IF counter % 2 == 0; 21 | evenRow = 1; 22 | ELSE; 23 | evenRow = 0; 24 | END; 25 | %] 26 |
27 | 28 | [% xmlnorm(param(tset, 'comment')) %] 29 | ([% sz %]) 30 | 31 |
32 | [% END %] 33 |
34 | 35 | [% INCLUDE tsetbottomline %] 36 | [% INCLUDE htmlend %] 37 | -------------------------------------------------------------------------------- /src/xmlconfig/examples/apc-ups.xml: -------------------------------------------------------------------------------- 1 | 2 | 23 | 24 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Location: Chen's take-away, Duebendorf; 48 | Contact: Chen; 49 | Power consumer: Microwave oven 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /src/xmlconfig/examples/ascend.max.xml: -------------------------------------------------------------------------------- 1 | 2 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | Location: Hardstrasse 235; 40 | Contact: GPS Technik AG, Zuercherstrasse 139, CH-8952 Schlieren 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /src/xmlconfig/examples/servers.data: -------------------------------------------------------------------------------- 1 | [%# 2 | Example of using tpage for Torrus config generation. 3 | This is an example only. See User Guide for more details. 4 | Author: Christian Schnidrig 5 | Generate the XML configuration with 6 | tpage --define data=servers.data servers.tmpl >servers.xml 7 | %] 8 | [% 9 | servers = [ 10 | { 11 | name => 'torrus' 12 | type => 'Linux', 13 | location => 'Binz' 14 | description => 'Torrus (Front-end)' 15 | community => 'blabla', 16 | ram => 3000000000 17 | numCpu => 2, 18 | disks => [ 19 | {name => '/', nickName => 'Root'} 20 | {name => '/var/snmpcollector/0', nickName => 'Collector_0'} 21 | {name => '/var/snmpcollector/1', nickName => 'Collector_1'} 22 | {name => '/var/snmpcollector/2', nickName => 'Collector_2'} 23 | {name => '/var/snmpcollector/3', nickName => 'Collector_3'} 24 | {name => '/var/snmpcollector/4', nickName => 'Collector_4'} 25 | ], 26 | nics => [ 27 | {name => 'eth0', nickName => 'nic', speed => 100000000} 28 | {name => 'eth1', nickName => 'local', speed => 1000000000} 29 | ] 30 | } 31 | { 32 | name => 'torrus2' 33 | type => 'Linux', 34 | location => 'Binz' 35 | description => 'Torrus (Collector)' 36 | community => 'blabla', 37 | ram => 3000000000 38 | numCpu => 2, 39 | disks => [ 40 | {name => '/', nickName => 'Root'} 41 | {name => '/var/snmpcollector/5', nickName => 'Collector_5'} 42 | {name => '/var/snmpcollector/6', nickName => 'Collector_6'} 43 | {name => '/var/snmpcollector/7', nickName => 'Collector_7'} 44 | {name => '/var/snmpcollector/8', nickName => 'Collector_8'} 45 | {name => '/var/snmpcollector/9', nickName => 'Collector_9'} 46 | ], 47 | nics => [ 48 | {name => 'eth0', nickName => 'nic', speed => 100000000} 49 | {name => 'eth1', nickName => 'local', speed => 1000000000} 50 | ] 51 | } 52 | { 53 | name => 'someSolarisMachine', 54 | type => 'Solaris', 55 | location => 'Binz', 56 | description => 'Tacacs Server', 57 | community => 'blabla', 58 | ram => 224000000, 59 | numCpu => 1, 60 | disks => [ 61 | {name => '/', nickName => 'Root'} 62 | {name => '/log', nickName => 'Log'} 63 | ], 64 | nics => [ 65 | {name => 'le0', nickName => 'nic', speed => 100000000} 66 | ] 67 | } 68 | ] 69 | %] 70 | -------------------------------------------------------------------------------- /src/xmlconfig/site-global.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/xmlconfig/vendor/betternetworks.xml: -------------------------------------------------------------------------------- 1 | 2 | 26 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/xmlconfig/vendor/cisco.wlc.xml: -------------------------------------------------------------------------------- 1 | 2 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 44 | 45 | 55 | 56 | 57 | 58 | --------------------------------------------------------------------------------