Welcome to TechNet Blogs Sign in | Join | Help

Which permissions are needed for OpsMgr 2007 SP1 Cumulative Hotfix?

Some days ago I got a question from a customer why their OpsMgr 2007 SP1 Cumulative Hotfix installation was failing.

As you might know this update provides a cumulative rollup of hotfixes for Microsoft System Center Operations Manager 2007 Service Pack 1 together with the following improvements:

  • Support for Windows 7
  • Support for Windows Server 2008 R2
  • Support for SQL Server 2008 and SQL Reporting Services 2008 Upgrade
  • Additional fixes and improvements
Note This update applies to System Center Operations Manager 2007 SP1 only.

 

SYMPTOMS

They were getting the next error message when running the Run Server Update.


image

The first thing I do, is look at the install log file if an installation is failing. So type %temp% in your run box and go to the temp folder and look for the log file.

While searching the log file I noticed it had probably something to do with the (database) permissions for the account which run the hotfix.

 

“"MSI (s) (B8!94) [10:35:51:068]: Creating MSIHANDLE (28) of type 790531 for thread 2452

2009-12-15T10:35:51.0687372+01:00        Warn:        SetRootHealthService: The sql client throws exception Cannot open database "OperationsManager" requested by the login. The login failed.

Login failed for user 'CONTOSO\Test_UserSP1Hotfix'."

 

CAUSE

The account running the hotfix needs db_owner permissons for the OperationsManager database.

 

RESOLUTION

In my demo environment (An all-in-one RMS server with all OperationsManager databases on that machine) the account installing the hotfix needed the next permissions.

Please keep in mind I only tested this in my demo environment. If you have your OpsMgr databases installed on separate servers more permissions may need to be configured.

OpsMgr Permissions:

  • Member of the Operations Manager Administrators Role

OS permissions:

  • Member of the Local Admin Group

Database Permissions:

  • Public for server-wide  security

clip_image002

 

  • Db_owner for OperationsManager database


clip_image004

For the Reporting Server Update no extra database permissions were needed.

 

MORE INFORMATION

You can find more info about the OpsMgr 2007 SP1 cumulative hotfix on Kevin Holman’s weblog.

 

Posts in this blog are provided "AS IS" with no warranties, and confers no rights. Use of examples are subject to the terms specified in the Terms of Use

Posted by stefstr | 0 Comments
Filed under: ,

User Logon Time Report for Operations Manager 2007

A customer was asking for some information about the time it took for users to logon on their Terminal Server hosted Windows Desktops. Luckily there were two eventID’s created during the logon process.  And if you calculate the time between those eventID’s then you have some insight in the Logon time for a user.

When a user logs on, Security Event 528 is created. Event 528 is logged whenever an account logs on to the local computer, except for in the event of network logons (see event 540). Event 528 is logged whether the account used for logon is a local SAM account or a domain account. On a Windows 7 client Security event 4624 is created.

Example Screenshot:

image

And then they used Event ID 865 — Software Restriction Policy Notification for the last Log on event. So the Log on Time could be calculated the time difference between those eventID’s. You should look for your own eventID if you want to create a simular report.

So how can these Events be used to create a Logon Time Report?

High Level steps:

  1. Create two NT Event Collection Rules for each EventID (528 and 865) in OpsMgr.
  2. Create an SQL Query which calculates the Time difference between the two EventID’s collected by the Event Collection Rules for each user.
  3. Create a Custom Logon Time OpsMgr Report with Visual Studio.

Let’s start with a more detailed overview of the steps.

For testing purposes I created a batch script, which you can use to create two dummy eventID’s in the Application Event Log. You can run this script using different credentials (users) with the SysInternals tool ShellRunAs.

@echo off
REM First EventID 528 LastEventID 865
Eventcreate /L Application /D "First EventID created" /T INFORMATION /ID 528
REM Create Random number between 1 -30 secs.
Set max=30
Set min=1
:: Generate number between Min and Max
Set /A rand=%random% %% (max - min + 1)+ min
REM Wait for 1-30 secs to generate second EventID
sleep %rand%
Eventcreate /L Application /D "Last EventID created" /T INFORMATION /ID 865

The above script uses the sleep.exe command so you need to install it from the Reskit if you haven’t installed that yet. As you can see the time between the two events is a random number between 1 – 30 secs.

Save above code to LogOndemo.cmd and run from command prompt.

[Screenshots]

image image image

 

image

Create two NT Event Collection Rules for each EventID (528 and 865) in OpsMgr

Ok now we have the two dummy events are created we can create the Event Collection Rules. Make sure you created a new MP to store your Event Collection Rules. Don’t save them in the Default MP ;-)

image

image

Disable Rule we enable the rules later for the servers we want to Collection Rules to be running on.

image

Keep in mind these example Collection Rules are created for the dummy eventID’s. You should select your own EventID’s.

Enable Rules for server(s) you need to have to Collection Rule running on.

For EventID 865 follow the same steps as shown above. Don’t forget to enable the Rule with an Override!

 

Create an SQL Query which calculates the Time difference between the two EventID’s collected by the Event Collection Rules for each user.

And now the most difficult part of creating a Custom Report, creating the right Database SQL queries. I got some help from some SQL guru’s at the office, so you may want to talk to your local dba for some pointers about creating the right SQL queries.

First we need to determine what we want to show in our Reports. Right? The customer wanted to see the Minimum, Maximum and Average LogOn time per user on a server. Something like this:

image 

But first some steps I took to create the SQL queries. First I wanted to collect all the 528 and 865 events collected by the two Collection Rules (FirstLogOn Event 528 and LastLogOn Event 865). And I used the next SQL query from Anders Bengtsson for that and changed that a little. It collects all the Collected Events 528 and 865 within the selected period ('2009-12-01 00:00:00.000' and '2009-12-12 00:00:00.000')

DECLARE @StartDate datetime
DECLARE @EndDate   datetime

SET @StartDate = '2009-12-01 00:00:00.000'
SET @EndDate = '2009-12-12 00:00:00.000';

USE OPERATIONSMANAGERDW

SELECT
    vEvent.DateTime,
    vEventPublisher.EventPublisherName as 'EventSource',
    vEventLoggingComputer.ComputerName as 'Computer',
    vEventLevel.EventLevelTitle as 'Type',
    vEvent.EventDisplayNumber as 'EventID',
    vEventChannel.EventChannelTitle,
    vEventUserName.UserName,
    vEventDetail.RenderedDescription as 'EventDescription'
FROM Event.vEvent LEFT OUTER JOIN
    vEventUserName ON vEvent.UserNameRowId =
    vEventUserName.EventUserNameRowId LEFT OUTER JOIN
    vEventCategory ON vEvent.EventCategoryRowId =
    vEventCategory.EventCategoryRowId LEFT OUTER JOIN
    vEventPublisher ON vEvent.EventPublisherRowId =
    vEventPublisher.EventPublisherRowId LEFT OUTER JOIN
    vEventLoggingComputer ON vEvent.LoggingComputerRowId =
    vEventLoggingComputer.EventLoggingComputerRowId LEFT OUTER JOIN
    vEventLevel ON vEvent.EventLevelId = vEventLevel.EventLevelId LEFT OUTER JOIN
    vEventChannel ON vEvent.EventChannelRowId =
    vEventChannel.EventChannelRowId LEFT OUTER JOIN
    Event.vEventDetail ON vEvent.EventOriginId = vEventDetail.EventOriginId
WHERE vEventLevel.EventLevelTitle = 'Information'
AND vEvent.Datetime between @StartDate and @EndDate
AND (vEvent.EventDisplayNumber = 528
OR vEvent.EventDisplayNumber = 865)   

Result Screenshot:

image

It’s a start but not completely what we want ;-)

As you can see to LogOn time for user OpsMgrDemo\OM_Admin is 22 seconds.

So which query do we need to create to calculate the time difference between those two events per UserName?

DECLARE @StartDate datetime
DECLARE @EndDate   datetime

SET @StartDate = '2009-12-01 00:00:00.000'
SET @EndDate = '2009-12-12 00:00:00.000';

WITH CTE AS
    (SELECT
    ROW_NUMBER() OVER(ORDER BY vEvent.DateTime) AS RowNum,
    vEvent.DateTime,
    vEventPublisher.EventPublisherName as 'EventSource',
    vEventLoggingComputer.ComputerName as 'Computer',
    vEventLevel.EventLevelTitle as 'Type',
    vEvent.EventDisplayNumber as 'EventID',
    vEventChannel.EventChannelTitle,
    vEventUserName.UserName,
    vEventDetail.RenderedDescription as 'EventDescription'
    FROM
    Event.vEvent LEFT OUTER JOIN
    vEventUserName ON vEvent.UserNameRowId =
    vEventUserName.EventUserNameRowId LEFT OUTER JOIN
    vEventCategory ON vEvent.EventCategoryRowId =
    vEventCategory.EventCategoryRowId LEFT OUTER JOIN
    vEventPublisher ON vEvent.EventPublisherRowId =
    vEventPublisher.EventPublisherRowId LEFT OUTER JOIN
    vEventLoggingComputer ON vEvent.LoggingComputerRowId =
    vEventLoggingComputer.EventLoggingComputerRowId LEFT OUTER JOIN
    vEventLevel ON vEvent.EventLevelId = vEventLevel.EventLevelId LEFT OUTER JOIN
    vEventChannel ON vEvent.EventChannelRowId =
    vEventChannel.EventChannelRowId LEFT OUTER JOIN
    Event.vEventDetail ON vEvent.EventOriginId = vEventDetail.EventOriginId
    WHERE vEventLevel.EventLevelTitle = 'Information'
    AND vEvent.Datetime between @StartDate and @EndDate
    AND (vEvent.EventDisplayNumber = 528
    OR vEvent.EventDisplayNumber = 865)       
)

SELECT *
, (SELECT T2.DateTime
    FROM CTE AS T2
    WHERE (CTE.RowNum + 1)= T2.RowNum) AS LogOffTime
, DATEDIFF(s, CTE.DateTime, (SELECT T2.DateTime
    FROM CTE AS T2
    WHERE (CTE.RowNum + 1)= T2.RowNum) ) AS LogTime
FROM CTE

WHERE RowNum%2 = 1

Result Screenshot:

image

As you can see, per UserName is calculated what the LogOn Time is. Again you see that it took 22 seconds for the LogOn for User OM_Admin.

You could already start using this SQL query as Database SQL Query in your Custom OpsMgr Report in Visual Studio. You could for instance, Group the data on Computer or User to generate a Report on LogOn time for users on a specific Computer or User.

Example Screenshot:

image

But we wanted to create a Report with MIN, MAX and AVG LogOn time per user, right?

For that we need the next SQL query.

DECLARE @StartDate datetime
DECLARE @EndDate   datetime

SET @StartDate = '2009-12-01 00:00:00.000'
SET @EndDate = '2009-12-12 00:00:00.000';

-- Create TEMP table
--(RowNum, DateTime, EventSource, Computer,Type,EventID, EventChannelTitle, UserName, EventDescription, LoggOffTime, LogTime)
DECLARE @temp TABLE(
    RowNum INTEGER,
    DateTime DATETIME,
    EventSource NVARCHAR(250),
    Computer NVARCHAR(250),
    Type NVARCHAR(250),
    EventID INTEGER,
    EventChannelTitle NVARCHAR(250),
    UserName NVARCHAR(250),
    EventDescription NVARCHAR(250),
    LogOffTime DATETIME,
    LogTime INTEGER );

WITH CTE AS
    (SELECT   
    ROW_NUMBER() OVER(ORDER BY vEvent.DateTime) AS RowNum,
    vEvent.DateTime,
    vEventPublisher.EventPublisherName as 'EventSource',
    vEventLoggingComputer.ComputerName as 'Computer',
    vEventLevel.EventLevelTitle as 'Type',
    vEvent.EventDisplayNumber as 'EventID',
    vEventChannel.EventChannelTitle,
    vEventUserName.UserName,
    vEventDetail.RenderedDescription as 'EventDescription'
    FROM
    Event.vEvent LEFT OUTER JOIN
    vEventUserName ON vEvent.UserNameRowId =
    vEventUserName.EventUserNameRowId LEFT OUTER JOIN
    vEventCategory ON vEvent.EventCategoryRowId =
    vEventCategory.EventCategoryRowId LEFT OUTER JOIN
    vEventPublisher ON vEvent.EventPublisherRowId =
    vEventPublisher.EventPublisherRowId LEFT OUTER JOIN
    vEventLoggingComputer ON vEvent.LoggingComputerRowId =
    vEventLoggingComputer.EventLoggingComputerRowId LEFT OUTER JOIN
    vEventLevel ON vEvent.EventLevelId = vEventLevel.EventLevelId LEFT OUTER JOIN
    vEventChannel ON vEvent.EventChannelRowId =
    vEventChannel.EventChannelRowId LEFT OUTER JOIN
    Event.vEventDetail ON vEvent.EventOriginId = vEventDetail.EventOriginId
    WHERE vEventLevel.EventLevelTitle = 'Information'
    AND vEvent.Datetime between @StartDate and @EndDate
    AND (vEvent.EventDisplayNumber = 528
    OR vEvent.EventDisplayNumber = 865)
)

INSERT INTO @temp(RowNum, DateTime, EventSource, Computer,Type,EventID, EventChannelTitle, UserName, EventDescription, LogOffTime, LogTime)

SELECT *
, (SELECT T2.DateTime
    FROM CTE AS T2
    WHERE (CTE.RowNum + 1)= T2.RowNum) AS LogOffTime
, DATEDIFF(s, CTE.DateTime, (SELECT T2.DateTime
    FROM CTE AS T2
    WHERE (CTE.RowNum + 1)= T2.RowNum) ) AS LogTime
FROM CTE
WHERE RowNum%2 = 1

SELECT
    Computer,
    UserName,
    COUNT(t1.LogTime) AS [NUMBEROFLOGINS],
    MAX(t1.LogTime) AS [MAXLOGTIME],
    MIN(t1.LogTime) AS [MINLOGTIME],
    AVG(t1.LogTime) AS [AVGLOGTIME]
    FROM @temp t1
    GROUP BY Computer,UserName

Screenshot Result:

image

Yes! This is what we were looking for. Now we have the right Data SQL query, we can Open Visual Studio to create our Custom User LogOn Time Report.

Create a Custom Logon Time OpsMgr Report with Visual Studio

Let’s open SQL Server Business Intelligence Development Studio.

image

Create a New Project and select Report Server Project Wizard and give your project a name.

image

Select Next in the Welcome to the Report Wizard Screen

image

Create a Data Source

image

Click Edit button to enter the SQL Server information.

image

And Test Connection if you want.

Click Next in the Report Wizard Screen.

image 

Enter the previously created SQL query with some changes (remove the Declare statements).

DECLARE @temp TABLE(
    RowNum INTEGER,
    DateTime DATETIME,
    EventSource NVARCHAR(250),
    Computer NVARCHAR(250),
    Type NVARCHAR(250),
    EventID INTEGER,
    EventChannelTitle NVARCHAR(250),
    UserName NVARCHAR(250),
    EventDescription NVARCHAR(250),
    LogOffTime DATETIME,
    LogTime INTEGER );

WITH CTE AS
    (SELECT   
    ROW_NUMBER() OVER(ORDER BY vEvent.DateTime) AS RowNum,
    vEvent.DateTime,
    vEventPublisher.EventPublisherName as 'EventSource',
    vEventLoggingComputer.ComputerName as 'Computer',
    vEventLevel.EventLevelTitle as 'Type',
    vEvent.EventDisplayNumber as 'EventID',
    vEventChannel.EventChannelTitle,
    vEventUserName.UserName,
    vEventDetail.RenderedDescription as 'EventDescription'
    FROM
    Event.vEvent LEFT OUTER JOIN
    vEventUserName ON vEvent.UserNameRowId =
    vEventUserName.EventUserNameRowId LEFT OUTER JOIN
    vEventCategory ON vEvent.EventCategoryRowId =
    vEventCategory.EventCategoryRowId LEFT OUTER JOIN
    vEventPublisher ON vEvent.EventPublisherRowId =
    vEventPublisher.EventPublisherRowId LEFT OUTER JOIN
    vEventLoggingComputer ON vEvent.LoggingComputerRowId =
    vEventLoggingComputer.EventLoggingComputerRowId LEFT OUTER JOIN
    vEventLevel ON vEvent.EventLevelId = vEventLevel.EventLevelId LEFT OUTER JOIN
    vEventChannel ON vEvent.EventChannelRowId =
    vEventChannel.EventChannelRowId LEFT OUTER JOIN
    Event.vEventDetail ON vEvent.EventOriginId = vEventDetail.EventOriginId
    WHERE vEventLevel.EventLevelTitle = 'Information'
    AND vEvent.Datetime between @StartDate and @EndDate
    AND (vEvent.EventDisplayNumber = 528
    OR vEvent.EventDisplayNumber = 865)
)

INSERT INTO @temp(RowNum, DateTime, EventSource, Computer,Type,EventID, EventChannelTitle, UserName, EventDescription, LogOffTime, LogTime)

SELECT *
, (SELECT T2.DateTime
    FROM CTE AS T2
    WHERE (CTE.RowNum + 1)= T2.RowNum) AS LogOffTime
, DATEDIFF(s, CTE.DateTime, (SELECT T2.DateTime
    FROM CTE AS T2
    WHERE (CTE.RowNum + 1)= T2.RowNum) ) AS LogTime
FROM CTE
WHERE RowNum%2 = 1

SELECT
    Computer,
    UserName,
    COUNT(t1.LogTime) AS [NUMBEROFLOGINS],
    MAX(t1.LogTime) AS [MAXLOGTIME],
    MIN(t1.LogTime) AS [MINLOGTIME],
    AVG(t1.LogTime) AS [AVGLOGTIME]
    FROM @temp t1
    GROUP BY Computer,UserName

Copy and paste above (or your own query) to the Query Builder window and click on Next.

image

Select your Report Type and click on Next

image

Select how you want to group your report. (I just kept the default settings)

image

Select the Table Style of the Report and click on Next

image

Enter Report server and Deployment folder info and click on Next.

image

Give your Report a name and select Preview Report and click on Finish

image

Change Report Parameters from Text to Date/Time Date Type.

image

image

You need to change this for both parameters!

Let’s check the Report. Go to Preview, select the Start Date and End Date and click on View Report.

image

Ok it’s not exactly the way we would like it to be, but the results are there!

Let’s Pimp this Report a little.

image

So this could be the end result. And you can pimp it even more if you want…

 

Have fun creating Custom OpsMgr Reports!

Posted by stefstr | 0 Comments

PowerShell: State Changes for a specified Monitor

This week a got a question from a customer about ‘flapping’ taking place from a Monitor. I found out that they meant the State Changes that took place for a newly created Monitor. They found out that for a certain machine the State changed quite often and this was caused by a Recovery Task that was part of this monitor.

So they wanted to know if there was a way to see quickly if a Monitor caused a lot of State Changes. There are quite some SQL queries you can use to have a look at the State Changes taken place in your OpsMgr environment. Just take a look at some of the SQL queries on the weblog of my colleague Jonathan Almquist.

But what if you only want to know the State Changes that took place for a specific Monitor? Again you can use one of Jonathan’s SQL queries and change them to fit your needs. And this is exactly what I’ve done but I also wanted to run the query from the OpsMgr Command Shell. The reason for this was that I easily wanted to retrieve the Monitor Name using the OpsMgr Get-Monitor Cmdlet.

 

So here is the PowerShell script I created. You can change the SQL query if you want, to fit your own needs ;-)

Result screenshot:

image

Have fun with OpsMgr and PowerShell!

Posted by stefstr | 2 Comments

Have these servers an OpsMgr agent installed?

Today I got a question from a customer if I would check if a number of servers had an OpsMgr agent installed?

Because this was a large list and the number of servers being monitored by OpsMgr was also a very large list I didn’t wanted to to copy and paste all the server names for the text file and check them in the OpsMgr Console.

So I created a PowerShell script to check if an OpsMgr Agent was installed for each of the servers in the file list.

The first script I created was not very fast because it did a get-agent for each of the servers in the list and that takes quite some time in a large environment ;-) So I created a new one that’s much faster.

Let’s start with the slow script:

First you need to put all the servers you want to check in a file, like this:

servername1
servername2
servername3
servername4
servername5
servername6
servername7
servername8
servername9
servername10
servername11
dc8


Save this list in a text file like d:\temp\servers.txt

Now run the next script in the OpsMgr Command shell:

$servers = get-content d:\temp\servers.txt

foreach ($server in $servers) {get-agent | where {$_.ComputerName -eq $server} | select Name}

As you can see it takes almost 12 seconds to do this the slow way.

image

And now the fast way.

$Servers = get-content c:\temp\servers.txt
$Agents = get-agent | select ComputerName
Foreach ($agent in $Agents) {if ($servers –contains $agent.ComputerName) {$agent | select ComputerName}}

image

So the next time someone is asking you if an OpsMgr agent is installed on their servers you now it in seconds.

Have fun using PowerShell!

Posted by stefstr | 0 Comments

Updated version for Schedule Maintenance Mode Management Pack Guide on OpsManJam

This management pack provides an automated method to schedule maintenance mode for a given set of Windows computers that are in a pre-defined set of groups and the associated rules to target against the groups.

 

Comments:

Updates for this version:

1. Created two additional alert rules that notify the admin/operator if the script is unable to connect to the RMS or resolve the Group Name provided to the script.

2. Created a Troubleshooting section in the deployment guide.

3. Provided a statement regarding using this demo MP and Windows Cluster services

4. Provided additional guidance regarding the parameters that can be overridden.

Contributor: Matt Goedtel

Go and download at OpsManJam

Posted by stefstr | 0 Comments

New Screencast Series: Service Level Dashboard 2.0

In these three short screencasts, IT Pro Evangelist Matt Hester shows how you can use the Service Level Dashboard 2.0 for System Center Operations Manager 2007 R2 to keep mission-critical, line of business applications up and running.  The dashboard automatically displays application or system availability and performance in near-real time.  Using the dashboard, you can easily keep track of availability and performance trends, and head off problems before they occur.  The dashboard also lets you easily create role-specific dashboards to support different departments, like HR, Finance, or Operations.   

Part 1: SLD overview.

Part 2: How to install SLD.

Part 3: How to configure SLD.

To a look at the screencasts and download the Service Level Dashboard 2.0 today!   

Posted by stefstr | 0 Comments
Filed under: ,

Microsoft and Novell Announce Broad Collaboration on Windows and Linux Interoperability and Support

Maybe you missed this news being busy at Tech Ed Berlin ;-) But Microsoft and Novell announced a set of broad business and technical collaboration agreements to build, market and support a series of new solutions to make Novell and Microsoft products work better together.

The two companies also announced an agreement to provide each other’s customers with patent coverage for their respective products. These agreements will be in place until at least 2012. Under this new model, customers will realize unprecedented choice and flexibility through improved interoperability and manageability between Windows and Linux.

The two companies will create a joint research facility at which Microsoft and Novell technical experts will architect and test new software solutions and work with customers and the community to build and support these technologies. The agreement between Microsoft and Novell focuses on three technical areas that provide important value and choice to the market:

  • Virtualization. Virtualization is one of the most important trends in the industry. Customers tell Microsoft that virtualization is one way they can consolidate and more easily manage rapidly growing server workloads and their large set of server applications. Microsoft and Novell will jointly develop a compelling virtualization offering for Linux and Windows.

  • Web services for managing physical and virtual servers. Web services and service-oriented architectures continue to be one of the defining ways software companies can deliver greater value to customers. Microsoft and Novell will undertake work to make it easier for customers to manage mixed Windows and SUSE Linux Enterprise environments and to make it easier for customers to federate Microsoft Active Directory with Novell eDirectory.

  • Document format compatibility. Microsoft and Novell have been focusing on ways to improve interoperability between office productivity applications. The two companies will now work together on ways for OpenOffice and Microsoft Office system users to best share documents, and both will take steps to make translators available to improve interoperability between Open XML and OpenDocument formats.

“As a result of this collaboration, customers will now be able to run virtualized Linux on Windows or virtualized Windows on Linux,”

You can read the full story here.

TechNet Webcast: Optimizing Operations Manager for Monitoring, Auditing, and Dashboards (Level 300)

Check out this webcast.

Event Overview

Learn how to optimize Microsoft System Center Operations Manager for cross-platform devices, applications, and regulatory auditing requirements, and see how to create advanced line-of-business (LOB), geographic, and executive-level dashboards in Microsoft Office SharePoint Server 2007. This webcast includes more than 40 minutes of demonstrations, and we provide customer examples of:

  • Monitoring Oracle and Apache applications using BridgeWays
  • Supporting Sarbanes Oxley (SOX) and PCI audit requirements using Secure Vantage Technologies.
  • Building intelligent views across solutions using Savision Live Maps.
  • Integrating solutions with SharePoint Server.

Presenters: Jeremiah Beckett, President, Secure Vantage Technologies,  Ryan Brennan, Chief Technology Officer, Secure Vantage Technologies, Rob Doucette, Software Development Manager, BridgeWays, and Dennis Rietvink, President, Savision

Jeremiah Beckett is the founder and president of Secure Vantage Technologies, Inc. (SVT), a Microsoft Gold partner that specializes in security and compliance auditing software for Microsoft System Center and Microsoft Forefront technologies. Jeremiah is a recognized industry expert in IT security and compliance with more than 10 years of expertise in enterprise management. Jeremiah is a regular guest speaker at Microsoft events, author of the Audit Collection Service (ACS) Master Class Series ACS wiki on System Center Central, and contributing author to a Microsoft System Center Operations Manager 2007 R2 Unleashed ebook. He also holds a bachelor's degree in business IT management from the DeVry Institute of Technology in Phoenix, Arizona.

Posted by stefstr | 0 Comments
Filed under: ,

Interoperability: Monitor your Unix and Linux Servers with OpsMgr 2007 R2

Today I created a video demonstrating monitoring your Unix and Linux servers with OpsMgr 2007 R2 for the Dutch LinuxWorld expo next week. I created this video so I can also have a moment to look around at the LinuxWorld Expo ;-) It’s part of a rolling presentation so I didn’t added any sound to it, but I thought it would be nice to upload the video anyway.

In the video you can see that I’m monitoring two Linux servers, one Redhat and one Suse Novell machine in my demo environment. To demo the health of the Suse server I stopped the powersaved service on the machine and with the help of a geographical map created with the latest version of Savision Live Maps you can see that the Suse server is going from healthy to unhealthy and to healthy again after restarting the service.

 

See you at the LinuxWorld expo next week!

New version of Savision Live Maps for Operations Manager R2

I just downloaded and installed the latest version of Savision Live Maps in my demo environment and started creating a new List View for my Linux servers.

image

The new release of Live Maps 4.1 for Operations Manager R2 contains, besides some fixes and performance improvements, a number of new features that have been added based on customer feedback. Some of the new features are highlighted in this article, a complete overview can be found in the release notes. You can read more about the new features on their weblog.

The new release can be downloaded here.

You may ask why are you creating a List View for your Linux Servers? I’m preparing a demo for next week’s Dutch LinuxWorld event in Utrecht. You can visit us at booth D072 of our partner Ictivity. You can also take a look at the website http://www.metopenvizier.nl/. [Dutch]

Public Beta OpenUMR - Cross Monitoring Integrator available

Today I got a friendly email from Markus Schneider about the general availability of OpenUMR on CodePlex. I was interested in this project but it was not open for public yet. But now it is and it looks very cool.

OpenUMR (Open Universal Message Receiver)
OpenUMR offers the capability to integrate agentless all kinds of monitoring solutions into Operations Manager 2007 R2 in a very easy way.
A cross-platform script interface gives the flexibility to discover monitoring objects and to send event/performance data from remote.

Basic Idea
The basic idea behind OpenUMR is to combine the power of Open Source with the strength of Operations Manager 2007 R2. Open Source
gives us the flexibility we need to handle the complexity that is caused by the individual needs of an enterprise IT environment.

Life means diversity! - So we think the most efficient way to build up an effective enterprise Monitoring is to integrate existing System
Management solutions instead of replacing them. In our opinion that's the most practical and successful approach. With OpenUMR we want
to develop a powerful interface that makes it easy for you to create a "Focal Point of IT-Control" with Operations Manager 2007 R2
especially for non Windows-Components.

Our wish is that OpenUMR grows by a strong community that improves the code, creates a lot of different management packs and event
message senders (OpenUMS) in all kinds of languages (Perl, Ruby, Python, PHP, PowerShell, Groovy etc...)

Please, never forget - OpenUMR is only one more way to do things.

Features
10 Good reasons for using OpenUMR

  •  Native Integration
  •  Decentral Administration
  •  Remote Discovery
  •  Event/Alert Management
  •  Performance Data Collection
  •  High Availability
  •  Agentless Architecture
  •  Fast and Simple
  •  Open Source Free of Charge

So take an look and let Markus know what you think about this new cool project.

OpsMgr Crossplatform Logging on the Unix Agent

I’m currently busy with learning more about Crossplatform monitoring with OpsMgr 2007 R2 and stumbled on Logging on the Unix Agent for troubleshooting issues. As you may know on the Linux agent you can troubleshoot, manage and manually control the agent by using the scxadmin tool.

/opt/microsoft/scx/bin/tools/scxadmin -stop [all|cimom|provider]
/opt/microsoft/scx/bin/tools/scxadmin -start [all|cimom|provider
/opt/microsoft/scx/bin/tools/scxadmin -restart [all|cimom|provider]

You can view the running status by executing:
/opt/microsoft/scx/bin/tools/scxadmin -status [all|cimom|provider]

image

And you can view the agent version by executing:
/opt/microsoft/scx/bin/tools/scxadmin –version

 

You can enable debug level logging on all 3 components - wsman, cimom (openPegasus) and the providers. The following command creates the necessary entries in the agent configuration for logging:
/opt/microsoft/scx/bin/tools/scxadmin -log-set [all|cimom|provider] {verbose | intermediate | errors}

The following logs are created in /var/opt/microsoft/scx/log:

  • scx.log
  • scxcimd.log
  • cimserver.trc
  • cimserver.trc.SCXCoreProviderModule.root

 

image

The initial Linux Logging setting shows this:

image

As you can see no logging is currently configured.

When we change the logging level to verbose for all components the logging level changes to TraceLevel 4.

image

Let’s have a look at the log files first to see what’s happening now.

image

You can see the log file size is growing fast ;-)

Ok, after you have found what you are looking for you want to stop the Linux Agent logging. But how do you stop the Linux Agent Logging?

According to the scxadmin  --help you can stop the logging with the next commando: scxadmin –log-reset

image

Let’s run that command now and check the new settings.

image

Huh? Even though we did a –log-reset according to the –log-list the traceLevel is still 1.

If we look at the log files for info if there is still logging going on we see that no logging is taking place after the –log-reset. The reason why the –log-list command still shows a tracelevel of 1 is due to explicit config files (/etc/opt/microsoft/scx/conf/cimserver_current.conf). So you can ignore the tracelevel=1 in the –log-list of scxadmin after enabling and resetting logging on a Linux Agent.

image

Have fun with OpsMgr and Crossplatform monitoring.

OpsMgr can monitor everything: The Coretech Coffee Monitor Management Pack – 0.0.0.1

How cool is this? Coretech has created a coffee monitor MP.

This management packs can be used to keep track of the level of coffee in left in the pot.

With this management pack, you will never run dry of, what we all know, is the most important part of a productive environment!

This is mostly made as a proof of concept, as this technique can be transferred to other monitor types. It could be expanded with other types of sensors, like a weight to check the level of coffee instead of a camera, or a thermometer to check the temperature of the coffee.

This is the very first version. It has been tested in test environments.

By default, it will trigger a warning when under 50% is left, and a Critical Alert when under 20% is left.

Please do not hesitate to report any bugs and please send suggestions for the next version you might have.

This was developed by Jakob Gottlieb Svendsen with the help of Kåre Rude Andersen

Guys great work!

Loving it.

Online documentation on Authoring in Operations Manager 2007 R2

Now the System Center Operations Manager 2007 R2 Authoring Resource Kit has been released you may want to know more about Authoring in OpsMgr 2007 R2.

Did you know you can find all that info on Microsoft TechNet?

image

Check them out!

More Posts Next page »
 
Page view tracker