From: announce-admin@opennms.org To: announce@opennms.org Subject: [OpenNMS-Announce] OpenNMS Update v2.14 Date: Tue, 3 Apr 2001 18:49:14 -0400 (EDT) ==================== OpenNMS Update ==================== Vol 2., Issue 14 ==================== April 3, 2001 ==================== In this week's installment... * Project Status + Preparing 0.7.2 + Event Configuration and Correlation + OpenNMS.jar Splits + SCM Changes + Critical Tomcat Problem + Coding Projects Underway * Upcoming Road Shows * Early Adopter Program Status * The Wish List ============== Project Status ============== Preparing 0.7.2: We still look like we're on target for a 0.7.2 release late this week. We're especially excited about this release, as it includes the first drop of some cool features, as well as the addition of some features to other components that we find pretty nifty and are sure you will too. The current list of major features which will ship in 0.7.2 includes but is not limited to the following: * Ability to monitor SNMP values for thresholds with the SNMP Poller * Event configuration and correlation * A re-work of the Notification System * Ant 1.3 (for the build process) * Updated RRDs with room for expansion (NOTE: "Expansion" of an RRD is currently a misnomer. We are working around this, not fixing it.) * A new easy-to-use installer (a handy POSIX-shell script, served to you neatly via "lynx -source". It's cool!) * Tweaks/changes to the Web UI based on feedback from our EAP partners. * A suite of fixes/improvements to SCM As you can tell, there is a LOT going on in this release, and correspondingly, a lot of major components are being "touched". We anticipate some problems, but we're not releasing an untested monster to the masses. Most of the major changes (including the event configuration/correlation and SCM changes) have been in testing in house for a little while now and have been tweaked since their initial commit. We know we have to improve past 0.7.1, and we believe that 0.7.2 does that quite handily. And late this week, you'll agree. We're counting on it. Event Configuration/Correlation: Many of you have asked for some more specifics on the changes to the event subsystem that are coming in 0.7.2. If you'll indulge me for a moment, please allow me to get technical for a moment. "Event configuration" takes place when an event is received by eventd. To date, the configuration is driven by eventd's ability to match the Universal Event Identifier (UEI) of an event with a configuration in the eventconf.xml file. This has worked quite well and quite efficiently, but it's also rather limiting, since your only qualification for applying a configuration is the UEI. For example, if you have a backbone router and a workstation and are polling them both for availability with the ICMP poller, if either go down, the same event will be generated (Service Lost) for either device, with parameters that associate that event with the particular interface that failed the poll. And if you intend to page someone if your core router goes down, you will need to associate a notification configuration with the configuration of the Service Lost event. But since it's the same event that's generated in either case, you have had only three options for notification: * Page someone when EITHER the workstation or router go down * Don't page anyone in either case * Use an automated action to catch the event, parse the event XML to see which device is associated with the event, and then page accordingly. Obviously, the first option is not acceptable, as the tech will be getting so many pages that mean nothing that soon, all pages will mean nothing. The second option only works if you have dedicated personnel sitting and staring at an event browser all day (NOTE: If you do, I'd like to talk to you about other creative ways we can waste your personnel budget...) And the third option can become a maintenance nightmare, let alone a hassle to set up in the first place. So, the new event configuration will take situations like this into account. First, when the event is received, it will be compared against a new eventconf.xml file which leverages the concept of an event mask, or a configuration which identifies which fields should be evaluated and the corresponding values which should be matched in each field. So in our earlier example, our mask would basically have eventd evaluate both the UEI and the INTERFACE "maskelements" for the value of each, with a specific configuration (including notification) added for the core router and a generic configuration, perhaps that only checks the UEI, which would match as the event "falls through" the eventconf.xml file. If that was clear (and that is in question), you can begin to see how we'll trigger our event correlation configurations as well. With 0.7.2, our event correlation will consist of two correlation "paths": suppressDuplicates, cancellingEvent, and suppressAndCancel. With an eventconf.xml configuration entry, a tag can be configured, which will identify not only the correlation path, but also the additional behaviors to be associated with this correlation as well. For example, the suppressDuplicates path can be configured with minimum and maximum count values, as well as a duration timer, which indicates not only how many events to suppress, but for what period of time. In lieu of any major documentation to accompany this release, any additional implementation of the event correlation (as well as creation of the documentation), is left as an exercise for the reader. And that would be you. This release does NOT ship with any out-of-the-box configurations. We're counting on a "if we build, they will come approach", in which we provide you the flexibility to add some stuff like this in and you provide us with the configurations that you build around it. That way, everybody benefits. And we don't lose time trying to dream up the ways in which you'll want to use this. Hope this helps. I'll stop being faux technical now. OpenNMS.jar Splits: As it would turn out, it was only staying together for the kids. With 0.7.2, the behemoth that was OpenNMS.jar will now exist as multiple jar files, split up by basic functionality. Why the split? Three reasons: * It was necessary to facilitate the split out of the bootstrap and SCM stuff (see following blurb) * Provides better insights on component interdependencies in testing * Irreconcilable differences Anyway, where you formerly saw one big-ass jar file (NOTE: "Big ass" is a technical term, best known as a unit of measure for a ham.), you will now see the following: * oncrpc.jar - ACPLT ONC RPC Classes * opennms_bootstrap.jar - SCM Bootstrap Classes * opennms_common.jar - common codebase (jcommon) * opennms_distpoller.jar - distributed poller codebase * opennms_eui.jar - End User Interface codebase * opennms_helpview.jar - Helpviewer codebase * opennms_native.jar - RRDTool JNI stuff * opennms_rtc.jar - Swing UI/Real-Time Console * opennms_scm.jar - Service Control Manager * opennms_snmp.jar - JoeSNMP * opennms_soap.jar - SOAP changes * opennms_web.jar - Web UI * opennms_report.jar - Reporting code Theoretically, this will also help improve build times on upgrades, as we'll only have to build what we need to build. Of course, this is merely an opportunity that we have yet to capitalize on. For now, we're going to build it all and you're going to like it. SCM Changes: A number of you have also either experienced difficulties with the current SCM, or have asked about what's going to be included in the changes for the latest release. If you fall into either of these categories, this Bud's for you. If you are familiar with the DTD for the scmconfig.xml file, you will have noted that there was an element that's not being used: <classpath>. Well, now it is. When Weave originally built the config file, he was secretly planning to add in this flexibility (as well as plotting big trouble for moose and squirrel). But we've got an interesting little twist with how it is used. Any data that we find in the <classpath> element is searched for anything formatted with a ${...} style bracketing. If something like this is found, we use the internal value as a property key and substitute in the appropriate key value. Not only is that pretty slick, it's very *nix-like, as well as behaving much like Ant. But this classpath stuff is just indicative of the much larger SCM changes. SCM has been re-constructed from the ground up, particularly with regards to how it loads (all due to some goofy problems we had with trying to manage the system classpath from multiple fork/exec'ed Java processes). When initially invoked (whether through the command line or the opennms init.d script), SCM only references the opennms_bootstrap.jar file, and the CLASSPATH variable gets exported so that the bootstrap jar is available for all subsequent JVMs spun up. Once this class is loaded, it then loads the RPCManager class, which is the guts of SCM. This is the class that gets around to loading and parsing the scmconfig.xml, which now contains the critical components to not only start the processes associated with SCM in the right order, but also in the right virtual machine, and if the machine ain't loaded, it loads it and goes. Nothing like being self-sufficient, I always say. But this whole convoluted re-work is all due to JSDT's behavior in service-to-service communications within the same VM. This split should help. JSDT didn't necessarily handle its environment the way we though it should, so we changed its environment. Bigger hammer theory at work. Anyway, if this hasn't either bored you to tears or put you to sleep, consider yourself all the better for knowing. And knowing is half the battle. Go Joe! Critical Tomcat Problem: For those of you that monitor BUGTRAQ, you may have noted the recent posting that revealed a security hole in Tomcat that may allow users to see the source code of a Tomcat-hosted servlet. After some research, our very own Larry K. has uncovered another exploit that will reveal the source code of any servlet on an OpenNMS platform: # export CVSROOT=":pserver:anonymous@cvs.opennms.org:/usr/local/cvsroot/bluebird" # cvs login # cvs co opennms-all Open Source Rocks! Coding Projects Underway: * CDP/L2/Mapping -- The Pete Siemsen show has begun and comments are directed to the [discovery] list. * Snort Integration -- No update * Solaris Port -- If you didn't see a whole butt-load of information on this on the [discuss] list this week, you just weren't paying attention. * Testing on NT/2K -- Still hear lots of effort is going on here, but haven't heard much in terms of details this week. * SNMP Poller/Data Collection -- Thresholding is just about there...Watch for 0.7.2 * Event DTD -- Testing. Frantically. * User Interfaces -- When Larry's not hacking for servlet source, he's changing the Web UI faster than Jeff can test it. * New Pollers -- I've asked for two consecutive weeks if there's any interest in CORBA and I've heard nothing. Is that your final answer? * Maji Prelim Work -- Rick is building Perl code that is successfully parsing MIB files. Check him out, in all his glory, on the "events" list. * Configuration -- Trading emails with a faithful member of the mailing list interested in perhaps open sourcing some libraries to aid in our configuration management processes. Promising code this week. * Discovery/CAPSD/Database Review -- Sowmya has inherited "coalescence". * Agent Technologies -- Nothing to report. We're assuming progress is continuing on schedule. * Reporting -- Jacinta is hacking something up and Larry is XSLTing it to display in the Web UI. Looks promising, with PDFs right around the corner. * Notification -- Jason has re-worked this with some new config files. Nothing to report from testing yet. * New Installer -- Final drop hits tonight. Testing all day tomorrow. Hope for the best. =================== Upcoming Road Shows =================== Just got our speaking time for the O'Reilly Open Source Conference in San Diego in July - Try to free yourselves up Wednesday morning at 10:45. If you can try to make it, I can try to be sober. So, on with the road shows... * May 5th - Twin Cities LUG, Minneapolis, MN * May 10th - Boulder LUG, Boulder, CO * June 1st - NOVALUG BBQ!! Fire-eaters Unite!! * June 2nd - Northern Virginia LUG (NOVALUG), Alexandria, VA * June 11-15 - OpenView Forum 2001, New Orleans, LA * July 23-27 - O'Reilly Open Source Convention, San Diego, CA * August 28-30 - Linux World Expo, San Francisco, CA For additional details on these appearances and others, check out the web site at http://www.opennms.org/sections/opennms/events ============================ Early Adopter Program Status ============================ Things are cooking along here. Jeff is still installing 0.7.1 and planning the upgrade to 0.7.2, when it is available. Most of the user feedback on the UI has been incorporated. We're anxious to hear the response to 0.7.2. That is all. ============= The Wish List ============= And in the end, the love you make is equal to the code you contribute. And now, on with the list... * In the 0.7.x release (and CVS), checkout the TODO file * New Data Collection configs wanted for the DataCollection.xml * Build some event configurations, you slackers! * Any interest in more TCP pollers? Let us know (or better yet, build one yourself...) * LDAP/POP3/nmap Pollers * Documentation and development your game? How about a white paper on how to extend OpenNMS with custom pollers, custom configs, and/or your own scripts/code. * Any additional help we can get proving our documentation either right or wrong is appreciated. Thanks. * Got any creative applications for OpenNMS that we haven't considered? Let us know! * A Security analysis of OpenNMS? ============= Afterthoughts ============= Thanks to everyone for their thoughts and opinions on what we should do for a PBX. Current plan is to go with a modernized string and tin cans approach, where the string has been replaced with optical fiber. A stunning silence on CORBA management. Is there no interest, or is no one reading this far in the Update? I've updated the project timeline in the FAQ. Feel free to check it out. I hope to be adding a complementary feature/function list to accompany that timeline soon. Remember, soon is relative. This Update, in retrospect, is decidedly more technical than most. Do you prefer this, or would you rather have the business-level glossing as to what we are doing? Lemme know. If Ben's phone doesn't stop beeping, I'm going to kill somebody, Shane O. ======== Shane O'Donnell OpenNMS.org shaneo@opennms.org ================== _______________________________________________ announce mailing list (announce@opennms.org) To subscribe, unsubscribe, or change your list options, go to: http://www.opennms.org/mailman/listinfo/announce