I’m excited about a new job opportunity. I’ve been offered a position, as soon as it’s concrete I’ll post up what I’ll be doing for the foreseeable future. It’s with a great company and will offer me a lot of time doing what I love doing, NetApp storage engineering. I can’t wait to start, from the people I’ve meet within the company it’s going to be a great team and company to work for! Highly excited.
Just switched hosting providers. I’m using a new host “Site5”. so far very pleased with the setup. Finally getting all the other odds and ends configured on the blog.
A quick Google search didn’t yield a quick explanation of this, so I’ll quickly describe the difference.
Alert Generating Rule:
A rule setup that generates an alert that shows up in the active alerts. It stays in a “New” state until it’s modified by a script or manually closed.
Collection Rules:
A rule setup that collects information and can be displayed via the “Event” view. These rules don’t generate alerts but allow for reporting via the event view and via the datawarehouse.
Here is a simple python script to use the REST code in the ISY (http://universal-devices.com) to control devices that are linked. I’m designing this script to be used inside a script for xbmc. here’s the first part of it. I recommend using scenes for the devicedim, deviceoff, and deviceon array, however you can use the individual devices as well in the array.
import urllib2 import urllib import sys devicedim = ['41941'] deviceoff = ['48839'] deviceon = ['62270'] username = 'admin' password = 'admin' topurl = 'http://isy' passman = urllib2.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None, topurl, username, password) authhandler = urllib2.HTTPBasicAuthHandler(passman) opener = urllib2.build_opener(authhandler) urllib2.install_opener(opener) if sys.argv[1] == 'playing': for devicex in deviceoff: theurl = 'http://isy/rest/nodes/' + devicex + '/cmd/DOF' #normalize the URL theurl = urllib.quote(theurl, safe="%/:=&?~#+!$,;'@()*[]") print (theurl) pagehandle = urllib2.urlopen(theurl) for devicex in devicedim: theurl = 'http://isy/rest/nodes/' + devicex + '/cmd/DON/64' #normalize the URL theurl = urllib.quote(theurl, safe="%/:=&?~#+!$,;'@()*[]") print (theurl) pagehandle = urllib2.urlopen(theurl) elif sys.argv[1] == 'stopped': for devicex in deviceon: print (devicex) theurl = 'http://isy/rest/nodes/' + devicex + '/cmd/DON' #normalize the URL theurl = urllib.quote(theurl, safe="%/:=&?~#+!$,;'@()*[]") print (theurl) pagehandle = urllib2.urlopen(theurl) else: print 'no state given'
Usage:
isy-medialights.py playing|stopped
Found a nice article about how to script a URL (or web application) into maintenance mode. This was a little bit of a challenge to find so I’m reposting it to hopefully get some more attention. I’ve also posted the modified version of the script that allows for multiple watcher hosts.
param($rootMS,$urlName,$minutes,$comment,$reason) Add-PSSnapin "Microsoft.EnterpriseManagement.OperationsManager.Client" -ErrorVariable errSnapin; Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin; new-managementGroupConnection -ConnectionString:$rootMS -ErrorVariable errSnapin; set-location $rootMS -ErrorVariable errSnapin; $URLWatcher = (Get-MonitoringClass -name Microsoft.SystemCenter.WebApplication.Perspective) | Get-MonitoringObject | where {$_.DisplayName -eq $urlName} $startTime = [System.DateTime]::Now $endTime = $startTime.AddMinutes($minutes) "Putting URL into maintenance mode" foreach ($name in $URLWatcher) { New-MaintenanceWindow -startTime:$startTime -endTime:$endTime -monitoringObject:$name -comment:$comment -Reason:$reason }
Usage:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe URLMaintenanceModeV4.ps1 -rootMS: `SCOMRMS1′ -urlName: ‘MSN Website Checker’ -minutes:45 -comment: ‘My Comment’ -reason: ‘PlannedOther’
http://www.scom2k7.com/schedule-a-into-url-maintenance-mode/
Testing out the new phone. Been a while since the last post. Looks pretty neat to be able to write a post while mobile.
This article is still under construction.
There are several options for disaster recovery and high availability. There’s host based solutions, array based solutions, and virtualization solutions. Which to pick? We’re going through a pretty crazy test of products, but we have the same problem as everyone else, we have tons of different storage vendors. So do you pick host based replication solutions, probably not. Do you pick array based solutions, sure, those will work. What about adding another layer of complexity to the solution and add an in-band virtualization solution? Or implement something like EMC RecoverPoint and only worry about replication with one thing, and keep array based solutions for specific tasks? So many things to choose from.
Some of you may have found that there are no graphs in your emails (scheduled reports) from SCOM 2007. I posted this up on the MSMOM email distro and Kevin Holman pointed me to a KB article.
http://support.microsoft.com/kb/972821
Just add this to your ReportingServicesService.exe.config file in the ReportServerbin
<dependentAssembly> <assemblyIdentity name="Microsoft.ReportingServices.ProcessingCore"publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0" /> </dependentAssembly> <dependentAssembly xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity name="Microsoft.ReportingServices.ProcessingCore"publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0" /> </dependentAssembly>
Place this between the tags:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> </assemblyBinding>
Have you run into setting up permissions/privileges for your administrators within the scom console. This can be quite confusion. You often run into cryptic areas where certain functions don’t react as they should and you run into the error “The user domainuser does not have sufficient permission to perform the operation”.
Some important information here: