Restarting the VMWare ESX 3.5 Pegasus health monitoring service

Here is something I ran into the other day at work that might help anyone else getting this issue. VMWare also told me that this tends to happen from time to time on an ESX 3.5 infrastructure. Apparently the issue has been sorted out in vSphere. It doesn’t have any negative effect on production though, apart from the fact that you can’t see your host health statuses correctly.

Also I wouldn’t recommend only relying on these health statistics. Install Dell’s OMSA for extra health monitoring and statistics if you are running Dell servers for example.

Problem:

The Pegasus hardware health service needs restarting or a specific ESX host in the Virtual Center cluster is not showing it’s hardware health indicators in VC correctly. (Could be showing as “Unknown”).

Solution:

Log into the console of the ESX Host in question using PuTTy (SSH).

Run the following command from the ESX server console as root to restart the Pegasus service.

service pegasus restart

I did speak to VMWare support about this and they have said that this does not have any effect on live VMs. I have tested this in a live environment twice now and it did not affect any Virtual Machines.

In both cases I needed to wait 5 to 10 minutes for the ESX host health to update in Virtual Center.

Note that restarting the pegasus health monitoring service does not affect any running VMs on your host.

Create new mailboxes / AD objects using Powershell & Exchange 2007

Here is something new I learnt today. Using powershell scripting can potentially save you a lot of time performing common day to day tasks. In this example I use Powershell to create a new mailbox and Active Directory user object with Exchange 2007 running in my test environment.

1. First off start by opening the “Exchange Management Shell”. This will load a powershell window for you.

2. Now we need to create a password variable and assign a password string to this in the form of a “SecureString”. Issue the following command in your shell window :

$Password = ConvertTo-SecureString -string “TryPassword123” -asPlainText -Force

3. If you now type “$Password” and press Enter, you should get a prompt back saying “System.Security.SecureString”. This means you your plain text password is now stored as a SecureString variable and is ready to use.

4. Next we will run the command to do all the work (That is add the user and mailbox to Active Directory / Exchange 2007). Issue this command next (substituting the values relevant for your situation of course! :

New-Mailbox -Name “John Smith” -Database “First Storage Group\Mailbox Database” -Password $Password -UserPrincipalName John.Smith@youremaildomain.co.uk -Alias John.Smith -DisplayName “John Smith” -FirstName “John” -Initials “JS” -LastName “Smith” -OrganizationalUnit “Home Users”

You should get a prompt back giving you a summary of what has been done.

This screenshot illustrates the above few steps :

5. After you have run the New-Mailbox command successfully, run “Get-Mailbox” to get a list of current mailboxes residing on your Exchange 2007 server. This should now show your new mailbox.