Trabalhando com o Gerenciador de Solicitações no SharePoint 2013

Artigo original publicado no sábado, 15 de setembro de 2012

Ainda não vi muitas informações sobre este assunto, então decidi dedicar um tempo para falar um pouco sobre o PowerShell para o Gerenciador de Solicitações (RM). Para os que não conhecem o RM, ele é um novo elemento do SharePoint 2013 desenvolvido para realizar encaminhamento e limitação de solicitações do SharePoint. Conhecendo a natureza das solicitações recebidas (por exemplo, agente do usuário, URL solicitado ou IP de origem), o SharePoint pode personalizar a resposta a cada solicitação. Ele pode encaminhá-la com base nas regras definidas ou limitar completamente a solicitação. As regras do RM são aplicadas por aplicativo Web, assim como a limitação é realizada no SharePoint 2010. 

Em linhas gerais, as metas do RM são as seguintes:

  • O RM pode realizar encaminhamento para WFEs com integridade melhor, mantendo WFEs de baixa integridade em atividade
  • O RM pode identificar solicitações perigosas e recusá-las imediatamente
  • O RM pode priorizar solicitações limitando aquelas com baixa prioridade (bots) para atender às com prioridade mais elevada (usuários finais)
  • O RM pode enviar todas as solicitações de tipos específicos (como pesquisa, por exemplo) para máquinas específicas
  • O tráfego isolado pode ajudá-lo a solucionar erros em uma máquina
  • O RM pode enviar solicitações pesadas a WFEs mais sofisticados

As regras de encaminhamento e limitação são implementadas da seguinte maneira:

  • As regras de encaminhamento encaminham solicitações e são associadas a pools de computadores
  • Os pools de computadores contêm servidores
  • Os servidores usam pesos para encaminhamento: pesos estáticos e de integridade
  • Os pesos estáticos são constantes para WFEs; os pesos de integridade mudam dinamicamente com base nas pontuações de integridade

Essa é a visão geral básica do que elas são. É provável que haja outros documentos na TechNet, caso você deseje mais detalhes sobre os recursos e o uso do RM. Se você está lendo este post, suponho que tenha conhecimentos suficientes sobre o RM (ou esteja curioso o suficiente) a ponto de querer trabalhar com ele. Então, eu simplesmente colocarei alguns comandos de PowerShell aqui para ajudá-lo a começar. Você verá a seguir os cmdlets que achei úteis ao trabalhar com o RM. O processo básico é parecido com este:

  • Obter uma referência a SPWebApplication
  • Obter uma referência às configurações de gerenciamento de solicitações para o aplicativo Web
  • Criar um ou mais critérios
    • Uma solicitação deve corresponder a TODOS os critérios de uma regra para que corresponda a essa regra (por exemplo, união por AND)
  • Obter uma referência a um pool de computadores ou crie um novo,, se necessário
  • Adicionar a regra

Veja um exemplo a seguir:

#Obter uma referência a SPWebApplication
$w = Get-SPWebApplication -identity https://foo

#Obter uma referência às configurações de gerenciamento de solicitações para o aplicativo Web
$rmset = $w | Get-SPRequestManagementSettings

#Criar um ou mais critérios
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex

#Obter uma referência a um pool de computadores ou criar um novo, se necessário
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)

#Adicionar a regra
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp

Agora, vejamos a regra de encaminhamento:
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"

 

#ver os critérios
$rr.Criteria

 

#alterar a data e hora e expiração da regra de encaminhamento
$rr.Expiration = "12/25/2013 5:00:00 PM"

 

Pronto, você já tem um regra de encaminhamento. O processo de criação de uma regra de limitação é semelhante:

 

#Adicionar uma nova regra de critérios que procure solicitações do OneNote. Ela pode fazer isso examinando UserAgent na solicitação e procurando no cabeçalho usado pelo OneNote.
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex

#Adicionar uma regra de limitação que use a regra de critérios quando a integridade do servidor atingir pontuação 8.
#Observe que as regras de limitação aplicam-se a todo o aplicativo Web, #não a máquinas individuais; portanto, não
#use um pool de computadores com elas.
$rmset | Add-SPThrottlingRule -Name "OneNote Throttle Rule" -Criteria $criteria -Threshold 8

 

#agora, visualize todas as regras de encaminhamento para o aplicativo Web
$rmset.RoutingRules

 

#Visualizar todas as regras de limitação
$rmset.ThrottlingRules 

 

Agora veremos um pouco mais a fundo como trabalhar com pools de computadores:

#Obter todas as máquinas de encaminhamento disponíveis
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available

#Obter todas as máquinas em um pool específico
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table

#Adicionar WFE1 da máquina a todos os pools de computadores de um aplicativo Web específico; minha eterna gratidão ao Tyler, que me ajudou neste caso (sinceramente, não sou muito bom com o 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) }

#Adicionar WFE1 da máquina a um pool especifico
$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)

#Remover WFE1 de todos os pools de computadores
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo

Isso é tudo por enquanto, pessoal. Com isso, você já terá bastante material para começar a trabalhar.

 

 

Este é um post traduzido. O artigo original está em Working with Request Manager in SharePoint 2013