Utilizzo di Request Manager in SharePoint 2013

Articolo originale pubblicato sabato 15 settembre 2012

Poiché non sono state diffuse molte informazioni su questo componente, ho pensato di dedicare un po' di tempo a PowerShell per Request Manager (RM). Per chi non lo sapesse, RM è un nuovo componente di SharePoint 2013 per la limitazione e il routing delle richieste di SharePoint. Conoscendo la natura delle richieste in ingresso, ad esempio l'agente utente, l'URL richiesto o l'IP di origine, SharePoint è in grado di personalizzare la risposta a ogni richiesta eseguendo il routing in base alle regole definite o limitando completamente la richiesta. Le regole di RM vengono applicate per app Web, mentre la limitazione avviene in SharePoint 2010. 

A un livello elevato, RM svolge le funzioni seguenti:

  • RM esegue il routing a front-end Web con una migliore integrità, mantenendo attivi i front-end Web con integrità compromessa
  • RM identifica le richieste dannose e le rifiuta immediatamente
  • RM assegna la priorità alle richieste limitando quelle con priorità meno elevata (bot) a favore di quelle con priorità più elevata (utenti finali)
  • RM invia tutte le richieste di un tipo specifico, ad esempio di ricerca, a computer specifici
  • Il traffico isolato può aiutare a risolvere gli errori su un computer
  • RM invia le richieste più pesanti a front-end Web più potenti

Le regole di routing e limitazione vengono implementate nel modo seguente:

  • Le regole di routing consentono di indirizzare le richieste e sono associate a pool di computer
  • I pool di computer contengono server
  • I server utilizzano pesi per il routing, pesi statici e pesi di integrità
  • I pesi statici sono costanti per i front-end Web, mentre i pesi di integrità cambiano dinamicamente in base allo stato di integrità

Con questa spiegazione ho cercato di offrire una panoramica di base. Per ulteriori informazioni sulle funzionalità e l'utilizzo di RM, fate riferimento alla documentazione disponibile su TechNet. Se state leggendo questo articolo, presumo che siate interessati a questo componente o che desideriate acquisire familiarità con il suo utilizzo. Ho quindi deciso di fare riferimento ad alcuni cmdlet di PowerShell per darvi alcune informazioni preliminari. Si tratta di cmdlet utili per l'utilizzo di RM. Il processo di base sarà simile al seguente:

  • Ottenere un riferimento a SPWebApplication
  • Ottenere un riferimento alle impostazioni di gestione delle richieste per l'applicazione Web
  • Creare uno o più criteri
    • Una richiesta deve corrispondere a TUTTI i criteri di una regola affinché esista una corrispondenza con quest'ultima (collegati da AND)
  • Ottenere un riferimento a un pool di computer o crearne uno nuovo se necessario
  • Aggiungere la regola

Vediamo ora un esempio:

#Ottenere un riferimento a SPWebApplication
$w = Get-SPWebApplication -identity https://foo

#Ottenere un riferimento alle impostazioni di gestione delle richieste per l'applicazione Web
$rmset = $w | Get-SPRequestManagementSettings

#Creare uno o più criteri
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex

#Ottenere un riferimento a un pool di computer o crearne uno nuovo se necessario
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)

#Aggiungere la regola
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp

Vediamo ora la regola di routing:
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"

 

#visualizzare i criteri
$rr.Criteria

 

#modificare la data e l'ora di scadenza della regola di routing
$rr.Expiration = "12/25/2013 5:00:00 PM"

 

Ora disponete di una regola di routing. La creazione di una regola di limitazione è un processo molto simile:

 

#Aggiungere una nuova regola di criteri per la ricerca di richieste di OneNote. Questo avviene esaminando l'agente utente nella richiesta e cercando l'intestazione utilizzata da OneNote.
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex

#Aggiungere una regola di limitazione che utilizza la regola dei criteri quando l'integrità del server raggiunge un punteggio pari a 8.
#Si noti che le regole di limitazione si applicano all'intera applicazione Web, #non ai singoli computer,
#pertanto non utilizzare un pool di computer.
$rmset | Add-SPThrottlingRule -Name "OneNote Throttle Rule" -Criteria $criteria -Threshold 8

 

#visualizzare ora tutte le regole di routing per l'applicazione Web
$rmset.RoutingRules

 

#Visualizzare tutte le regole di limitazione
$rmset.ThrottlingRules 

 

Analizziamo ora in dettaglio l'utilizzo dei pool di computer:

#Ottenere tutti i computer di routing disponibili
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available

#Ottenere ogni computer in un pool specifico
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table

#Aggiungere il computer WFE1 a ogni pool di computer per una determinata applicazione Web; molte grazie a Tyler per il suo prezioso aiuto perché non sono così esperto di PowerShell
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool | % { $_ | Set-SPRoutingMachinePool -machinetargets ($_.machinetargets + $b) }

#Aggiungere il computer WFE1 a un pool specifico
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
$pool = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName
$pool | Set-SPRoutingMachinePool -MachineTargets ($pool.MachineTargets + $b)

#Rimuovere WFE1 da ogni pool di computer
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo

Ora ci siamo. Queste informazioni dovrebbero esservi sufficienti per iniziare.

 

 

Questo è un post di blog localizzato. Consultate l'articolo originale: Working with Request Manager in SharePoint 2013