Few monitoring questions,

Jan 13, 2010 at 1:23 AM

Hi All,

First of all, great product!

Just a question about checking disk space on remote machines, when you configure the monitor you need to setup a drive letter for the network share temporary drive letter, is it a problem to configure it with the same drive letter?  Is the mapping done on the computer running the executive? or the machine running the Manager?

I do have a couple of error messages that come up,

Disk monitoring errors:  Could not map network drive for testing.

Cpu errors:  Fail, The network path was not found.

 

Please help!

Thanks in advance.

Vern.

Jan 13, 2010 at 12:52 PM

Hello!  I'm the author of the DiskMonitor.  The drive letter should be an unused drive letter on the PolyMon Executive box.  What DiskMonitor does is map the share to the drive letter, query information on the drive letter, then unmap the share.  The reason it has to map the share is because .Net's drive properties class does not work on shares -- only drive letters.  So it's basically a kludge. 

You can run into errors with DiskMonitor monitoring file shares when you run PolyMon as SYSTEM since it may not have access to the remote shares.  I recommend running it as a domain account and then make sure that the domain account has READ access on the share's root level folder.

Jan 13, 2010 at 8:55 PM

Thanks for your reply, The strange thing is that the Polymon server is running as a domain admin account and every now and then all my HD sensors will throw up the "Could not map network drive for testing" error.

 

I still get the CPU error "The network path was not found" - any ideas on this one?

 

thanks again.

Jan 14, 2010 at 2:14 PM

There was a bug in older versions of DiskMon that would cause that under certain circumstances.  I thought I had uploaded the latest build, but apparently not.  I just added it as a patch.  http://polymon.codeplex.com/SourceControl/PatchList.aspx

Simply copy the DLLs over the DLLs in the Executive AND Monitor folders.  The Executive does not need the editor DLL.

I also recommend you apply patch 2706 as it fixes a serious bug that can cause downtime on some servers.

Jan 14, 2010 at 8:27 PM

Thanks for your reply, I have copied over the DLL's but still notice the error ever now and then ..

 

How would I apply patch 2706? I downloaded the file, does it need to be copied somewhere? sorry if this is a stupid question. 

 

thanks again.

Jan 14, 2010 at 10:02 PM

I'm not sure why you are still having the issue.  Did you replace the DLL in both the executive and monitor locations?  Maybe you need to reboot?  Make sure you always select a drive letter that is never in use!

As for patch 2706, you would need to download and compile the project, replacing the source with the source code file the patch contains.

Jan 21, 2011 at 3:57 PM

We monitor disk space using powershell and WMI. If you're interested here's the powershell script:

# Change the computer name in the line below
################################################
Set-Variable -name COMPUTER -value NETWORKNAME -option constant
################################################

# To change warning and error levels edit the lines below
################################################
Set-Variable -name WARN_MB -value 3072 -option constant
Set-Variable -name ERR_MB -value 1024 -option constant
################################################

#Define Status ID Constants
Set-Variable -name S_OK -value 1 -option constant
Set-Variable -name S_WARN -value 2 -option constant
Set-Variable -name S_ERR -value 3 -option constant

#Default Status is OK
$Status.StatusID= $S_OK

#Query WMI for Disk Objects
$disks = Get-WmiObject Win32_PerfRawData_PerfDisk_LogicalDisk -computername $COMPUTER

#Loop through returned Disks
foreach ($disk in $disks) {
 
 #Ignore Total Object
 if ($disk.Name -ne "_Total") {
 
  #Ignore Null Object
  if ($disk.Name -ne $null) {

   #Add status and counter for disk
   $tmp = $tmp + $disk.Name + " " + $disk.FreeMegabytes + " "
   $Counters.Add($disk.Name, $disk.FreeMegabytes)

    #Check Error Condition
    if ($disk.FreeMegaBytes -lt $ERR_MB) {
     $Status.StatusID = $S_ERR
     $Status.StatusText = $Status.StatusText + "'" + $disk.Name + "' Free Space " + $disk.FreeMegabytes + " < " + $ERR_MB + " "

    #Check Warning Condition
    } elseif ($disk.FreeMegaBytes -lt $WARN_MB) {
     $Status.StatusID = $S_WARN
     $Status.StatusText = $Status.StatusText + $disk.Name + " Free Space " + $disk.FreeMegabytes + " < " + $WARN_MB + " "
    }
  }
 }
}

#If Status is OK then add descriptive status text
if ($Status.StatusID -eq $S_OK) {$Status.StatusText = $tmp }