5 Replies Latest reply on Mar 19, 2014 11:24 AM by Flavio Bonacordi

    Ping Checker for large number of servers

      Hello, Does anyone have any experience running ping checkers in TM ART 4.2 to monitor a large number  (> 2000) of servers. This would increase the number of monitors we have running by several-fold though it appears we would fine from a measures per hour standpoint. We would need to deploy more execution servers. Is the recommended limit for monitors per execution server still 150 ~200. (That is what I saw in the 4.1 documentation.) Thanks

        • 1. Re: Ping Checker for large number of servers
          Flavio Bonacordi

          I would recommend you to have more execution servers... OR.. create a custom monitor in Workbench that would run these ping checkers.

           

          Consider the code below (I just customize a code that I have to serve you... may need some tweak...)

           

          Attached you have the custom include file.. I use that to have friendly names into my custom counters. (I mean.. add the execution server name into custom measures).

           

          @codepage(1252)
          benchmark BMCTMARTRecorder
          use "WebAPI.bdh"
          use "GetMyLocation.bdh"
          dcluser
            user
              VUser
            transactions
              TInit           : begin;
              TMain           : 1;
          var
          dclrand
          dcltrans
            transaction TInit
            begin
          //    
          //    WebSetBrowser(WEB_BROWSER_MSIE7);
          //    WebModifyHttpHeader("Accept-Language", "en-US");
          //    //WebSetUserBehavior(WEB_USERBEHAVIOR_FIRST_TIME);
          //    //WebSetDocumentCache(true, WEB_CACHE_CHECK_SESSION);
            end TInit;
            transaction TMain
            var
              aHost        : array [60] of string(70); // resize this as you need
              aTitle       : array [60] of string(40); // resize this as you need
              sLocation    : string;
              nId          : number;
              sCounterName : string;
              
            begin   
              aHost[1]:="192.168.10.196";
          //....                              add here as many hosts you need.
              aHost[2]:="192.168.10.190";
              aHost[3]:="192.168.10.120";
          
              aTitle[1]:="Custom Host Name";
          //....                              give them friendly names! :-) I love friendly names.
              aTitle[2]:="Custom Host Name 2";
              aTitle[3]:="Bonaco Box";
                 
              GetMyLocation(sLocation);   // Custom Include to add a Friendly Execution server name into the Counter Name.
              for nId:=1 to 3 do // ====> The final number should be equal to the number of hosts you have.
                sCounterName:=aTitle[nId]+"-"+sLocation;
                MeasureStart(sCounterName);
                WebPing(aHost[nId]);
                MeasureStop(sCounterName);
              
                if not WebPing(aHost[nId]) then
                   Print("Host "+aTitle[nId]+" is not responding")
                else
                   Print("Host "+aTitle[nId]+" is alive")
                end;
                if not WebPing(aHost[nId], 500, 1)  then
                   Print("Host "+aTitle[nId]+" is not responding")
                else
                   Print("Host "+aTitle[nId]+" is alive")
                end;
                
              end;
            end TMain;
          
          


          Let me know your thoughts about it...

          1 of 1 people found this helpful
          • 2. Re: Ping Checker for large number of servers
            Hal DeVore

            Flavio Bonacordi is on the right track here.

             

            There is a limit to the number of active monitors.  An active monitor is one that has an active schedule, and thus will have a running copy of perfRun.exe  If all the monitors are Pings or URL Checkers or other very lightweight web scripts, you can push up to the high end of the limit, about 200.

             

            But you really might want to do something like what Flavio has suggested, create a fairly simple script to ping a group of servers in a loop.  Instead of a Print, you might want to wrap the ping in a Custom Timer named for the IP address or hostname.  And if you're feeling very creative, you could even load the list of hosts from a file for easy maintenance.

             

            --Hal

            • 3. Re: Ping Checker for large number of servers

              Thank you Hal and Flavio.

              This sounds like a really good approach, particulary if we are able to set up an easliy maintainable file containing the severs to be pinged. My assupmtion is that the serve list will broken down into manageable groups. Again, my thanks to both of you. I'll let you know of any progress.

              Dave

              • 4. Re: Ping Checker for large number of servers
                Hal DeVore

                Happy to help.

                 

                You might want to look over some of Flavio's and my posts in this discussion thread

                Store Password into a Include File

                 

                It's a different use case but the ideas for file handling would still be applicable.

                 

                --Hal