{"id":504,"date":"2011-09-07T12:39:03","date_gmt":"2011-09-07T10:39:03","guid":{"rendered":"http:\/\/hen.co.za\/blog\/?p=504"},"modified":"2011-09-08T20:25:56","modified_gmt":"2011-09-08T18:25:56","slug":"quickmon-update","status":"publish","type":"post","link":"https:\/\/hen.co.za\/blog\/2011\/09\/quickmon-update\/","title":{"rendered":"QuickMon update"},"content":{"rendered":"<p>In the past couple of weeks I&#8217;ve been busy part time working on this little project to build a simple monitoring system for myself. At the moment the basic &#8216;bits&#8217; are all there working reasonably well I might add. On the one side I&#8217;ve been contemplating putting the project up on CodePlex like many of my other pet projects but this one has some potential to &#8216;grow&#8217; into something that could generate some thing more (like income or so&#8230;) The trouble with that idea is it may be even more powerful if &#8216;others&#8217; can extend it but then the main source is available to all. Also, this little tool is not in the same league as proper enterprise monitoring tools like Microsoft SCOM and so on.<\/p>\n<p>Anyway, as far as progress goes, the &#8216;tool&#8217; or set of tools now can do the following (all tested and working)<\/p>\n<ul>\n<li>Main shared components for editing, management and configuration of agents plus both a Windows UI and Windows service for hosting the agents (monitor pack).<\/li>\n<li>Collector agents for<br \/>\n(General)<br \/>\nDisk space &#8211; local drive space available<br \/>\nFile count and size &#8211; file\/directory size<br \/>\nPerformance counters &#8211; monitor performance counters<br \/>\nPing &#8211; ping machines<br \/>\nWindows service state &#8211; are specified services running or not<br \/>\nWMI query &#8211; specify some WMI query and compare the return value<br \/>\n(Specialized)<br \/>\nBizTalk ports and orchestrations &#8211; check if ports\/orchestrations are running<br \/>\nBizTalk suspended count &#8211; check the suspended instance count<br \/>\nSQL server database size &#8211; check database size<br \/>\nSQL server table size &#8211; check row count<br \/>\nHttpping &#8211; like ping but for http<\/li>\n<li>Notifier agents for:<br \/>\nLog file &#8211; a simple text log file<br \/>\nRSS feed &#8211; actually really just an xml file that you can host on a web server that is exposed as an RSS feed<br \/>\nSMTP &#8211; Sending out alerts as emails<br \/>\nSQL database &#8211; storing alert details in a sql server<\/li>\n<li>A special type of &#8216;Collector&#8217; that is just a folder to contain others (so you can enable\/disable all or set a service window for that branch)<\/li>\n<li>Collector agents support the following general properties and methods:<br \/>\nEnabled<br \/>\nCheck dependent collectors even after warning<br \/>\nRepeat alert after x minutes<br \/>\nOnly alert once in x minutes<br \/>\nService windows (yes, even multiple service windows e.g. 5:00 to 12:00 and 13:00 to 17:00 etc.)<br \/>\nLaunch a detail view window<\/li>\n<li>Notifier agents support the following properties:<br \/>\nEnabled<br \/>\nAlert level (Info, Warning, Error)<br \/>\nDetail level (Detail, Summary or both)<br \/>\nList of collectors to &#8216;service&#8217; (default = all)<br \/>\nIf implemented &#8211; launch a viewer for the notifier<\/li>\n<\/ul>\n<p><strong>Development<\/strong><\/p>\n<p>I&#8217;m using the .Net 4 client profile framework so download footprint should be fairly small &#8211; and I&#8217;d like to keep it that way. It is developed using C# and is extendable because of the add-in type of architecture. To add an agent is as simple as implementing a provided interface.<\/p>\n<p><strong>Download example<\/strong><\/p>\n<p>Soon I&#8217;ll add a download link for (the current) test version. It is already fully working as is but I&#8217;m continuing to enhance and add things.<\/p>\n<p>Download a first test version <a title=\"QuickMonInstaller.zip\" href=\"http:\/\/www.hen.co.za\/downloads\/QuickMonInstaller.zip\" target=\"_blank\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the past couple of weeks I&#8217;ve been busy part time working on this little project to build a simple monitoring system for myself. At the moment the basic &#8216;bits&#8217; are all there working reasonably well I might add. On &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/hen.co.za\/blog\/2011\/09\/quickmon-update\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[7,8,303,63,304],"class_list":["post-504","post","type-post","status-publish","format-standard","hentry","category-development","tag-net","tag-c","tag-development","tag-monitoring","tag-projects"],"_links":{"self":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/comments?post=504"}],"version-history":[{"count":8,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/504\/revisions"}],"predecessor-version":[{"id":510,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/504\/revisions\/510"}],"wp:attachment":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/media?parent=504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/categories?post=504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/tags?post=504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}