SlideShare a Scribd company logo
Kåre Rude Andersen
Be a Hero – Optimize SCOM and
present your Services
Who am I
•
•
•

Kåre Rude Andersen - @KraCoretech
Consultant / Speaker / Trainer / Member of Microsoft SC Alliance Team
Coretech A/S | mail: kra@coretech.dk
Agenda
•
•
•
•
•
•

Introduction to Services
Ready Steady – GO!
Present SLO and SLA in a Dashboard
Bottlenecks – SCOM Performance
Whats New in R2
Use cases
Services Concept
• ITEL/MOF Process
• People, Process and IT

• Service Alert Escalation
• Service Owners (layer 1-2-3)
• 1/3 have a defined service plan, and
less downtime
Services Concept
•
•
•
•

•

Clear Goal
Base Monitoring
What is ”Normal”
Marketing yourself – Do your colleagues know about the
fantastic work you are doing?
Get the Control and Console
•

•
•
•

Find those SQL Report Servers installed on HP HW

Find the objects and the error
Security Services – Use the products (AEM/ACS/APM)
Service Catalog (CMDB – Service Manager)
Ready, Steady - GO!
•
•
•

•
•
•
•

Define the Goal
Define Service Owners and
let them in..
Define which dashboard
your organization will see
Do a PoC, and Test
Built-in Dashboard
Visio Maps / Sharepoint
3. part solutions
SLA Dashboard
• Create DA’s or
Groups in SCOM
• Define your Services
SLA and SLO
• Create Rollup and
Present
Demo
• Create a Group
• Put SLA on it
• Present it in varios ways
SBTOS
Bottleneck
• Is it slow?
• Identify the individual layers
• What’s Normal???
Layer 1 - Database
Memory – Page Life Expectancy
SELECT cntr_value AS [Page Life Expectancy]
FROM sys.dm_os_performance_counters
WHERE [object_name] = N'SQLServer:Buffer Manager’
AND counter_name = N'Page life expectancy' OPTION
RECOMPILE);
Layer 1 - Database
Disks – Database Performance against SAN, DAS
SELECT DB_NAME(fs.database_id) AS [Database Name], mf.physical_name, io_stall_read_ms,
num_of_reads,
CAST(io_stall_read_ms/(1.0 + num_of_reads) AS NUMERIC(10,1)) AS
[avg_read_stall_ms],io_stall_write_ms,
num_of_writes,CAST(io_stall_write_ms/(1.0+num_of_writes) AS NUMERIC(10,1)) AS
[avg_write_stall_ms],
io_stall_read_ms + io_stall_write_ms AS [io_stalls], num_of_reads + num_of_writes AS
[total_io],
CAST((io_stall_read_ms + io_stall_write_ms)/(1.0 + num_of_reads + num_of_writes) AS
NUMERIC(10,1))
AS [avg_io_stall_ms]
FROM sys.dm_io_virtual_file_stats(null,null) AS fs
INNER JOIN sys.master_files AS mf
ON fs.database_id = mf.database_id
AND fs.[file_id] = mf.[file_id]
ORDER BY avg_io_stall_ms DESC OPTION (RECOMPILE);
Layer 1 - Database
Disks – Database Performance against SAN, DAS
SELECT DB_NAME(fs.database_id) AS [Database Name], mf.physical_name, io_stall_read_ms,
num_of_reads,
CAST(io_stall_read_ms/(1.0 + num_of_reads) AS NUMERIC(10,1)) AS
[avg_read_stall_ms],io_stall_write_ms,
num_of_writes,CAST(io_stall_write_ms/(1.0+num_of_writes) AS NUMERIC(10,1)) AS
[avg_write_stall_ms],
io_stall_read_ms + io_stall_write_ms AS [io_stalls], num_of_reads + num_of_writes AS
[total_io],
CAST((io_stall_read_ms + io_stall_write_ms)/(1.0 + num_of_reads + num_of_writes) AS
NUMERIC(10,1))
AS [avg_io_stall_ms]
FROM sys.dm_io_virtual_file_stats(null,null) AS fs
INNER JOIN sys.master_files AS mf
ON fs.database_id = mf.database_id
AND fs.[file_id] = mf.[file_id]
ORDER BY avg_io_stall_ms DESC OPTION (RECOMPILE);
Layer 1 – SQL – Why Wait?
WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK',
'SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE',
'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT',
'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT',
'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
'ONDEMAND_TASK_QUEUE', 'BROKER_EVENTHANDLER', 'SLEEP_BPOOL_FLUSH'))
SELECT W1.wait_type,
CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 99 OPTION (RECOMPILE)
SQL – Database Performance
• SQL Standard settings
•
•
•
•
•

MDOP
Stripe the Database (Tempdb and OpsMgr)
Max Memory
Truncate log on Checkpoint
Always On

http://blogs.technet.com/b/manageabilityguys/archive/2013/
09/20/quot-mdoping-quot-your-scom-console-performancewith-some-simple-sql-tips.aspx
Layer 2 – Management Server
•
•
•
•

Disk, Disk, Disk, Disk, Disk
Disk, Disk, Disk, Disk, Disk
Disk, Disk, Disk, Disk, Disk
CrystalDiskMark
Layer 2 – Management Server
• Memory
• Installed connectors on the Management Server
• Distribute the Workload
• Resource pools
• GW servers if round time threshold > 20 ms
• Processer:
• HKLMSOFTWAREMicrosoftMicrosoft Operations
Manager3.0GroupCalcPollingIntervalMilliseconds
Layer 3 – Agent, Linux, Network
• Management Pack Design – discoveries
• Scripts, Powershell timeout
• MaximumQueuesizeKB
• Network and Linux
Demo
• SQL Server Performance
SDK
• Get down to it
• Good samples
SDK – Web Services
param($ServiceNowUrl,$AlertXML)
$ErrorActionPreference = "stop"
Import-Module OperationsManager
$Alert = Get-SCOMAlert -Id $AlertXML.AlertId
#login SOAP
$username = "MIDserver3M"
$password = "password" | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
$url = 'https://MMMdev.service-now.com/u_scom.do?WSDL'
$sn = New-WebServiceProxy -uri $url -Credential $credential
#get autogenerated namespace
$type = $sn.GetType().Namespace
$insert = new-object ($type + '.insert')
#Insert a new record with these values
$insert.acknowledgesync = ""
$insert.category = $Alert.Category
$insert.customfield1 = $Alert.Custom1
$insert.customfield2 = $Alert.Custom2
$insert.description = $Alert.AlertDescription
$insert.id = $Alert.AlertId
$insert.managementgroup = $Alert.managementgroup #TODO
$insert.monitoringobjectfullname = $Alert.ManagedEntityFullName
$insert.monitoringobjectid = $Alert.ManagedEntity
$insert.monitoringobjectpath = $Alert.ManagedEntityPath
$insert.name = $Alert.AlertName
$insert.netbioscomputername = $Alert.netbioscomputername #TODO
$insert.owner = $Alert.AlertOwner
$insert.parameters = $Alert.AlertParams
$insert.principalname = $Alert.principalname #TODO
$insert.priority = $Alert.priority
$insert.repeatcount = $Alert.RepeatCount
$insert.resolutionstate = $Alert.ResolutionStateName
$insert.severity = $Alert.severity
$insert.sitename = $Alert.sitename #TODO
$insert.timeraised = $Alert.TimeRaised
$insert.timeresolution_telastmodified = $Alert.TimeResolutionStateLastModified

$result = $sn.insert($insert)
$Alert | Set-SCOMAlert -TicketId $result.display_value
SDK – Get the Guids from Name
SDK – Get HealthState
Use-Cases
• Automatic Maintenance Mode
• Alert Robot
• Resend Alert again
Automatic Maintenance Mode
Use either:
http://www.systemcentercentral.com/opsmgr-2012-groupmaintenance-mode-via-powershell-the-way-it-should-be

or
http://gallery.technet.microsoft.com/scriptcenter/Put-OM2012Computer-Group-43902672
Next slide
Automatic Maintenance Mode
Create a Command Channel that runs a script like this:
Alert Robot
Import-Module OperationsManager
$Alerts = get-scomalert -ResolutionState 0
if ($Alerts)
{
foreach($Alert in $Alerts)
{
$newState = $null
switch -wildcard ($Alert.Description)
{
"*Active directory*" { $newState = 10 }
"*DNS*"
{ $newState = 30 }
"*Cisco*"
{ $newState = 250}
}
switch -wildcard ($Alert.Name)
{
"ACME.Monitor.Event.Dummy.100" { $newState = 249 }
"Another Alert Text" { $newState = 10 }
}
if($newState -ne $null)
{
$Alert.ResolutionState = $newState
$Alert.Update(“Resolution State changed automatically by the QueueManager Robot”)
}
}
}
Resend Alert again, again a…
$oldAlerts = Get-SCOMAlert | Where-Object {($_.LastModified -ge
[DateTime]::Now.AddHours(-4)) -and ($_.ResolutionState -eq 0)}
ForEach($alert in $oldAlerts)
{
$alert.Update("")
}
Summary
• Present your Services
• Find the bottlenecks
• Implement Automation
Please evaluate the session
before you leave


More Related Content

What's hot (15)

PPTX
Introduction databases and MYSQL
Naeem Junejo
 
PPTX
Using Spark to Load Oracle Data into Cassandra
Jim Hatcher
 
PPTX
MongoDB-SESSION03
Jainul Musani
 
PDF
Cassandra 3.0 Awesomeness
Jon Haddad
 
PDF
OSDC 2012 | Scaling with MongoDB by Ross Lawley
NETWAYS
 
PDF
Cassandra summit keynote 2014
jbellis
 
PDF
OrientDB
aemadrid
 
PDF
Cassandra 3.0 Data Modeling
DataStax Academy
 
PPTX
Deploy and Manage the Infrastructure Using Azure Resource Manager
GlobalLogic Ukraine
 
PDF
Cassandra Day Chicago 2015: Advanced Data Modeling
DataStax Academy
 
PDF
Tokyo cassandra conference 2014
jbellis
 
PDF
DataStax | Advanced DSE Analytics Client Configuration (Jacek Lewandowski) | ...
DataStax
 
PPTX
Scaling with MongoDB
MongoDB
 
KEY
An introduction to CouchDB
David Coallier
 
Introduction databases and MYSQL
Naeem Junejo
 
Using Spark to Load Oracle Data into Cassandra
Jim Hatcher
 
MongoDB-SESSION03
Jainul Musani
 
Cassandra 3.0 Awesomeness
Jon Haddad
 
OSDC 2012 | Scaling with MongoDB by Ross Lawley
NETWAYS
 
Cassandra summit keynote 2014
jbellis
 
OrientDB
aemadrid
 
Cassandra 3.0 Data Modeling
DataStax Academy
 
Deploy and Manage the Infrastructure Using Azure Resource Manager
GlobalLogic Ukraine
 
Cassandra Day Chicago 2015: Advanced Data Modeling
DataStax Academy
 
Tokyo cassandra conference 2014
jbellis
 
DataStax | Advanced DSE Analytics Client Configuration (Jacek Lewandowski) | ...
DataStax
 
Scaling with MongoDB
MongoDB
 
An introduction to CouchDB
David Coallier
 

Viewers also liked (17)

PPTX
Ståle Hansen - Understand how video works in lync and how video interoperabil...
Nordic Infrastructure Conference
 
PDF
Andy Malone - The new office 365 for it pro's
Nordic Infrastructure Conference
 
PDF
AndreaRenaud_DesignMgt_Portfolio2
Andrea Renaud
 
PPTX
Airport authority of India summer training ppt
Dinesh Bansal
 
PPTX
Rose & Relationship
Sareez
 
PDF
2013.06.19 Эрчим хүчний диваажин, Б. Бямбасайхан
The Business Council of Mongolia
 
PPTX
SEMINAR
vashisth kumar
 
PDF
23.04.2010, NEWSWIRE, Issue 115
The Business Council of Mongolia
 
PDF
2014, REPORT, Real Estate Report 2014, Mongolia Properties
The Business Council of Mongolia
 
DOCX
Story telling. Tom Sawyer
selarom7
 
PPTX
Asian monetary cooperation
Sana Hassan Afridi
 
PPTX
Beringe icorto
gmmlke
 
PPS
Renacimient oppt
mcruzferlen
 
PDF
Marc
Kashif Jamal
 
PPTX
Male extra pills review
Derek Marshall
 
DOC
Program tahunan kls iii smt 1 &amp; 2
689386
 
PPTX
S4 tarea4 fegur
raulferreyra1973
 
Ståle Hansen - Understand how video works in lync and how video interoperabil...
Nordic Infrastructure Conference
 
Andy Malone - The new office 365 for it pro's
Nordic Infrastructure Conference
 
AndreaRenaud_DesignMgt_Portfolio2
Andrea Renaud
 
Airport authority of India summer training ppt
Dinesh Bansal
 
Rose & Relationship
Sareez
 
2013.06.19 Эрчим хүчний диваажин, Б. Бямбасайхан
The Business Council of Mongolia
 
23.04.2010, NEWSWIRE, Issue 115
The Business Council of Mongolia
 
2014, REPORT, Real Estate Report 2014, Mongolia Properties
The Business Council of Mongolia
 
Story telling. Tom Sawyer
selarom7
 
Asian monetary cooperation
Sana Hassan Afridi
 
Beringe icorto
gmmlke
 
Renacimient oppt
mcruzferlen
 
Male extra pills review
Derek Marshall
 
Program tahunan kls iii smt 1 &amp; 2
689386
 
S4 tarea4 fegur
raulferreyra1973
 
Ad

Similar to Kåre Rude Andersen - Be a hero – optimize scom and present your services (20)

PDF
Doc 2011101412020074
Rhythm Sun
 
PDF
Back2 Basic Tools
sqlserver.co.il
 
PDF
Back 2 basics - SSMS Tips (IDf)
sqlserver.co.il
 
PDF
SQL Server Performance Analysis
Eduardo Castro
 
PDF
Ajuste (tuning) del rendimiento de SQL Server 2008
Eduardo Castro
 
PPTX
Advanced Database Administration 10g
Connor McDonald
 
PPTX
Sql server performance tuning
Jugal Shah
 
PDF
Donatone_Grid Performance(2)11111111.pdg
cookie1969
 
PDF
Monitor some of the things
andertech
 
PDF
les06.pdf
VAMSICHOWDARY61
 
PPTX
The 5 Minute DBA-DBA Skills for Non-DBA
percona2013
 
PDF
Presentation cloud control enterprise manager 12c
xKinAnx
 
PPT
Thomas+Niewel+ +Oracletuning
afa reg
 
PDF
Microsoft SQL Server Query Tuning
Mark Ginnebaugh
 
PDF
Oracle database performance are database users telling me the truth
Alfredo Krieg
 
PDF
553: Oracle Database Performance: Are Database Users Telling Me The Truth?
Alfredo Krieg
 
PPTX
SCOM 2012 service SaaS
M Senthil Kumar
 
PPT
Troubleshooting SQL Server
Stephen Rose
 
PDF
VirtaThon 2011 - Mining the AWR
Kristofferson A
 
PDF
Why new hardware may not make SQL Server faster
SolarWinds
 
Doc 2011101412020074
Rhythm Sun
 
Back2 Basic Tools
sqlserver.co.il
 
Back 2 basics - SSMS Tips (IDf)
sqlserver.co.il
 
SQL Server Performance Analysis
Eduardo Castro
 
Ajuste (tuning) del rendimiento de SQL Server 2008
Eduardo Castro
 
Advanced Database Administration 10g
Connor McDonald
 
Sql server performance tuning
Jugal Shah
 
Donatone_Grid Performance(2)11111111.pdg
cookie1969
 
Monitor some of the things
andertech
 
les06.pdf
VAMSICHOWDARY61
 
The 5 Minute DBA-DBA Skills for Non-DBA
percona2013
 
Presentation cloud control enterprise manager 12c
xKinAnx
 
Thomas+Niewel+ +Oracletuning
afa reg
 
Microsoft SQL Server Query Tuning
Mark Ginnebaugh
 
Oracle database performance are database users telling me the truth
Alfredo Krieg
 
553: Oracle Database Performance: Are Database Users Telling Me The Truth?
Alfredo Krieg
 
SCOM 2012 service SaaS
M Senthil Kumar
 
Troubleshooting SQL Server
Stephen Rose
 
VirtaThon 2011 - Mining the AWR
Kristofferson A
 
Why new hardware may not make SQL Server faster
SolarWinds
 
Ad

More from Nordic Infrastructure Conference (20)

PPTX
Raymond Comvalius & Sander Berkouwer - Bring your own device essentials with ...
Nordic Infrastructure Conference
 
PPTX
Mike Resseler - Using hyper-v replica in your environment
Nordic Infrastructure Conference
 
PPTX
Mike Resseler - Deduplication in windows server 2012 r2
Nordic Infrastructure Conference
 
PDF
Andy Malone - Migrating to office 365
Nordic Infrastructure Conference
 
PDF
Andy Malone - Microsoft office 365 security deep dive
Nordic Infrastructure Conference
 
PDF
Andy Malone - Keynote: the cloud one small step for man one giant leap for it
Nordic Infrastructure Conference
 
PPTX
Kent Agerlund - Via monstra part 4 become the hero of the day, master configm...
Nordic Infrastructure Conference
 
PPTX
Wally Mead - Overview of system center 2012 r2 configuration manager
Nordic Infrastructure Conference
 
PPTX
Wally Mead - Managing mobile devices with system center 2012 r2 configuration...
Nordic Infrastructure Conference
 
PPTX
Travis Wright - PS WF SMA SCSM SP
Nordic Infrastructure Conference
 
PPTX
Travis Wright - Complete it service management
Nordic Infrastructure Conference
 
PPTX
Wally Mead - Deploying a system center 2012 r2 configuration manager environm...
Nordic Infrastructure Conference
 
PPTX
Ståle Hansen - Understand how lync integrates with exchange
Nordic Infrastructure Conference
 
PPTX
Scott Schnoll - Exchange server 2013 virtualization best practices
Nordic Infrastructure Conference
 
PPTX
Scott Schnoll - Exchange server 2013 high availability and site resilience
Nordic Infrastructure Conference
 
PDF
Sami laiho - What's new in windows 8.1
Nordic Infrastructure Conference
 
PPTX
Robert Waldinger - How to recover active directory if disaster should occur
Nordic Infrastructure Conference
 
PPTX
Peter De Tender - The roadmap to deploying office365 pro plus
Nordic Infrastructure Conference
 
PPTX
Peter De Tender - How to efficiently license office 365
Nordic Infrastructure Conference
 
PDF
Sami Laiho - Black belt troubleshooting windows 8.1
Nordic Infrastructure Conference
 
Raymond Comvalius & Sander Berkouwer - Bring your own device essentials with ...
Nordic Infrastructure Conference
 
Mike Resseler - Using hyper-v replica in your environment
Nordic Infrastructure Conference
 
Mike Resseler - Deduplication in windows server 2012 r2
Nordic Infrastructure Conference
 
Andy Malone - Migrating to office 365
Nordic Infrastructure Conference
 
Andy Malone - Microsoft office 365 security deep dive
Nordic Infrastructure Conference
 
Andy Malone - Keynote: the cloud one small step for man one giant leap for it
Nordic Infrastructure Conference
 
Kent Agerlund - Via monstra part 4 become the hero of the day, master configm...
Nordic Infrastructure Conference
 
Wally Mead - Overview of system center 2012 r2 configuration manager
Nordic Infrastructure Conference
 
Wally Mead - Managing mobile devices with system center 2012 r2 configuration...
Nordic Infrastructure Conference
 
Travis Wright - PS WF SMA SCSM SP
Nordic Infrastructure Conference
 
Travis Wright - Complete it service management
Nordic Infrastructure Conference
 
Wally Mead - Deploying a system center 2012 r2 configuration manager environm...
Nordic Infrastructure Conference
 
Ståle Hansen - Understand how lync integrates with exchange
Nordic Infrastructure Conference
 
Scott Schnoll - Exchange server 2013 virtualization best practices
Nordic Infrastructure Conference
 
Scott Schnoll - Exchange server 2013 high availability and site resilience
Nordic Infrastructure Conference
 
Sami laiho - What's new in windows 8.1
Nordic Infrastructure Conference
 
Robert Waldinger - How to recover active directory if disaster should occur
Nordic Infrastructure Conference
 
Peter De Tender - The roadmap to deploying office365 pro plus
Nordic Infrastructure Conference
 
Peter De Tender - How to efficiently license office 365
Nordic Infrastructure Conference
 
Sami Laiho - Black belt troubleshooting windows 8.1
Nordic Infrastructure Conference
 

Recently uploaded (20)

PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Complete Network Protection with Real-Time Security
L4RGINDIA
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Complete Network Protection with Real-Time Security
L4RGINDIA
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 

Kåre Rude Andersen - Be a hero – optimize scom and present your services

  • 1. Kåre Rude Andersen Be a Hero – Optimize SCOM and present your Services
  • 2. Who am I • • • Kåre Rude Andersen - @KraCoretech Consultant / Speaker / Trainer / Member of Microsoft SC Alliance Team Coretech A/S | mail: [email protected]
  • 3. Agenda • • • • • • Introduction to Services Ready Steady – GO! Present SLO and SLA in a Dashboard Bottlenecks – SCOM Performance Whats New in R2 Use cases
  • 4. Services Concept • ITEL/MOF Process • People, Process and IT • Service Alert Escalation • Service Owners (layer 1-2-3) • 1/3 have a defined service plan, and less downtime
  • 5. Services Concept • • • • • Clear Goal Base Monitoring What is ”Normal” Marketing yourself – Do your colleagues know about the fantastic work you are doing? Get the Control and Console • • • • Find those SQL Report Servers installed on HP HW Find the objects and the error Security Services – Use the products (AEM/ACS/APM) Service Catalog (CMDB – Service Manager)
  • 6. Ready, Steady - GO! • • • • • • • Define the Goal Define Service Owners and let them in.. Define which dashboard your organization will see Do a PoC, and Test Built-in Dashboard Visio Maps / Sharepoint 3. part solutions
  • 7. SLA Dashboard • Create DA’s or Groups in SCOM • Define your Services SLA and SLO • Create Rollup and Present
  • 8. Demo • Create a Group • Put SLA on it • Present it in varios ways
  • 10. Bottleneck • Is it slow? • Identify the individual layers • What’s Normal???
  • 11. Layer 1 - Database Memory – Page Life Expectancy SELECT cntr_value AS [Page Life Expectancy] FROM sys.dm_os_performance_counters WHERE [object_name] = N'SQLServer:Buffer Manager’ AND counter_name = N'Page life expectancy' OPTION RECOMPILE);
  • 12. Layer 1 - Database Disks – Database Performance against SAN, DAS SELECT DB_NAME(fs.database_id) AS [Database Name], mf.physical_name, io_stall_read_ms, num_of_reads, CAST(io_stall_read_ms/(1.0 + num_of_reads) AS NUMERIC(10,1)) AS [avg_read_stall_ms],io_stall_write_ms, num_of_writes,CAST(io_stall_write_ms/(1.0+num_of_writes) AS NUMERIC(10,1)) AS [avg_write_stall_ms], io_stall_read_ms + io_stall_write_ms AS [io_stalls], num_of_reads + num_of_writes AS [total_io], CAST((io_stall_read_ms + io_stall_write_ms)/(1.0 + num_of_reads + num_of_writes) AS NUMERIC(10,1)) AS [avg_io_stall_ms] FROM sys.dm_io_virtual_file_stats(null,null) AS fs INNER JOIN sys.master_files AS mf ON fs.database_id = mf.database_id AND fs.[file_id] = mf.[file_id] ORDER BY avg_io_stall_ms DESC OPTION (RECOMPILE);
  • 13. Layer 1 - Database Disks – Database Performance against SAN, DAS SELECT DB_NAME(fs.database_id) AS [Database Name], mf.physical_name, io_stall_read_ms, num_of_reads, CAST(io_stall_read_ms/(1.0 + num_of_reads) AS NUMERIC(10,1)) AS [avg_read_stall_ms],io_stall_write_ms, num_of_writes,CAST(io_stall_write_ms/(1.0+num_of_writes) AS NUMERIC(10,1)) AS [avg_write_stall_ms], io_stall_read_ms + io_stall_write_ms AS [io_stalls], num_of_reads + num_of_writes AS [total_io], CAST((io_stall_read_ms + io_stall_write_ms)/(1.0 + num_of_reads + num_of_writes) AS NUMERIC(10,1)) AS [avg_io_stall_ms] FROM sys.dm_io_virtual_file_stats(null,null) AS fs INNER JOIN sys.master_files AS mf ON fs.database_id = mf.database_id AND fs.[file_id] = mf.[file_id] ORDER BY avg_io_stall_ms DESC OPTION (RECOMPILE);
  • 14. Layer 1 – SQL – Why Wait? WITH Waits AS (SELECT wait_type, wait_time_ms / 1000. AS wait_time_s, 100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct, ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn FROM sys.dm_os_wait_stats WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK', 'SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE', 'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT', 'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT', 'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', 'ONDEMAND_TASK_QUEUE', 'BROKER_EVENTHANDLER', 'SLEEP_BPOOL_FLUSH')) SELECT W1.wait_type, CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s, CAST(W1.pct AS DECIMAL(12, 2)) AS pct, CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct FROM Waits AS W1 INNER JOIN Waits AS W2 ON W2.rn <= W1.rn GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct HAVING SUM(W2.pct) - W1.pct < 99 OPTION (RECOMPILE)
  • 15. SQL – Database Performance • SQL Standard settings • • • • • MDOP Stripe the Database (Tempdb and OpsMgr) Max Memory Truncate log on Checkpoint Always On http://blogs.technet.com/b/manageabilityguys/archive/2013/ 09/20/quot-mdoping-quot-your-scom-console-performancewith-some-simple-sql-tips.aspx
  • 16. Layer 2 – Management Server • • • • Disk, Disk, Disk, Disk, Disk Disk, Disk, Disk, Disk, Disk Disk, Disk, Disk, Disk, Disk CrystalDiskMark
  • 17. Layer 2 – Management Server • Memory • Installed connectors on the Management Server • Distribute the Workload • Resource pools • GW servers if round time threshold > 20 ms • Processer: • HKLMSOFTWAREMicrosoftMicrosoft Operations Manager3.0GroupCalcPollingIntervalMilliseconds
  • 18. Layer 3 – Agent, Linux, Network • Management Pack Design – discoveries • Scripts, Powershell timeout • MaximumQueuesizeKB • Network and Linux
  • 19. Demo • SQL Server Performance
  • 20. SDK • Get down to it • Good samples
  • 21. SDK – Web Services param($ServiceNowUrl,$AlertXML) $ErrorActionPreference = "stop" Import-Module OperationsManager $Alert = Get-SCOMAlert -Id $AlertXML.AlertId #login SOAP $username = "MIDserver3M" $password = "password" | ConvertTo-SecureString -asPlainText -Force $credential = New-Object System.Management.Automation.PSCredential($username,$password) $url = 'https://MMMdev.service-now.com/u_scom.do?WSDL' $sn = New-WebServiceProxy -uri $url -Credential $credential #get autogenerated namespace $type = $sn.GetType().Namespace $insert = new-object ($type + '.insert') #Insert a new record with these values $insert.acknowledgesync = "" $insert.category = $Alert.Category $insert.customfield1 = $Alert.Custom1 $insert.customfield2 = $Alert.Custom2 $insert.description = $Alert.AlertDescription $insert.id = $Alert.AlertId $insert.managementgroup = $Alert.managementgroup #TODO $insert.monitoringobjectfullname = $Alert.ManagedEntityFullName $insert.monitoringobjectid = $Alert.ManagedEntity $insert.monitoringobjectpath = $Alert.ManagedEntityPath $insert.name = $Alert.AlertName $insert.netbioscomputername = $Alert.netbioscomputername #TODO $insert.owner = $Alert.AlertOwner $insert.parameters = $Alert.AlertParams $insert.principalname = $Alert.principalname #TODO $insert.priority = $Alert.priority $insert.repeatcount = $Alert.RepeatCount $insert.resolutionstate = $Alert.ResolutionStateName $insert.severity = $Alert.severity $insert.sitename = $Alert.sitename #TODO $insert.timeraised = $Alert.TimeRaised $insert.timeresolution_telastmodified = $Alert.TimeResolutionStateLastModified $result = $sn.insert($insert) $Alert | Set-SCOMAlert -TicketId $result.display_value
  • 22. SDK – Get the Guids from Name
  • 23. SDK – Get HealthState
  • 24. Use-Cases • Automatic Maintenance Mode • Alert Robot • Resend Alert again
  • 25. Automatic Maintenance Mode Use either: http://www.systemcentercentral.com/opsmgr-2012-groupmaintenance-mode-via-powershell-the-way-it-should-be or http://gallery.technet.microsoft.com/scriptcenter/Put-OM2012Computer-Group-43902672 Next slide
  • 26. Automatic Maintenance Mode Create a Command Channel that runs a script like this:
  • 27. Alert Robot Import-Module OperationsManager $Alerts = get-scomalert -ResolutionState 0 if ($Alerts) { foreach($Alert in $Alerts) { $newState = $null switch -wildcard ($Alert.Description) { "*Active directory*" { $newState = 10 } "*DNS*" { $newState = 30 } "*Cisco*" { $newState = 250} } switch -wildcard ($Alert.Name) { "ACME.Monitor.Event.Dummy.100" { $newState = 249 } "Another Alert Text" { $newState = 10 } } if($newState -ne $null) { $Alert.ResolutionState = $newState $Alert.Update(“Resolution State changed automatically by the QueueManager Robot”) } } }
  • 28. Resend Alert again, again a… $oldAlerts = Get-SCOMAlert | Where-Object {($_.LastModified -ge [DateTime]::Now.AddHours(-4)) -and ($_.ResolutionState -eq 0)} ForEach($alert in $oldAlerts) { $alert.Update("") }
  • 29. Summary • Present your Services • Find the bottlenecks • Implement Automation
  • 30. Please evaluate the session before you leave 