Monitorowanie dostępności SharePoint od strony użytkownika

Dostępność usług jest bardzo często krytycznym aspektem w przypadku firmowego SLA. Zajmując się jednak tematem monitorowania dostępności systemów należy zastanowić się nad możliwością monitorowania poszczególnych komponentów systemu a monitorowaniem End User Experience, czyli statusu działania usługi od strony użytkownika.

Nad tym drugim podejściem warto się zastanowić z wielu względów. Przede wszystkim nie zawsze prawidłowe działanie wszystkich komponentów usługi: usługi systemowe, dostęp do baz danych czy IIS będą oznaczać prawidłową pracę systemu jako takiego.

Dla przykładu: wyobraźmy sobie w jaki sposób zbadać odebranie uprawnień czytania strony głównej grupie Domain Users prowadzące do całkowitej niedostępności usługi (mimo jej poprawnej pracy) dla pracowników firmy?

W dalszej części wpisu przedstawię wam prosty skrypt powershellowy, który umożliwi monitorowanie SharePointa poprzez odgrywanie roli użytkownika klikającego po witrynie.

 

Poniższy skrypt, aby sprawdził się w kwestii monitorowania usługi powinien być cyklicznie wykonywany na przykładowym desktopie lub maszynie wirtualnej z użyciem konta domenowego.

Działanie skryptu polega na:

  1. Uruchomieniu Internet Explorera 
  2. Otwarciu witryny o adresie http://intranet
  3. Wyświetleniu zawartości witryny poprze kliknięcie w przycisk Wyświetl całą zawartość witryny
Skrypt uwzględnia automatyczne logowanie do witryny SharePoint.

Oczywiście zaprezentowane rozwiązanie testuje działanie witryny SharePoint w bardzo prosty sposób. Możliwe jest  rozszerzenie funkcjonalności poprze wykonanie dodatkowych operacji, np. dodatnie nowego elementu na liście. W tym celu warto poklikać po witrynie SharePointa z użyciem Narzędzi Developerskich w Internet Explorerze (uruchamianych za pomocą F12). Rozwiązanie to ułatwia bardzo uzyskanie ID danych elementów witryny.

[singlepic id=79 w=320 h=240 mode=web20 float=center]

Warto również zastanowić się nad kwestią raportowania statusu. W poniższej formie zwracana jest wartość true/false. Oczywiście można rozszerzyć funkcjonalność o wysłanie maila (przykładowy skrypt) lub zapis do bazy danych.

Skrypt

$ie = new-object -comobject InternetExplorer.Application
try{
#Otwarcie witryny SharePoint'a
$ie.navigate('http://intranet')

#Widoczność okna Internet Explorer'a
#$ie.visible = $true

#Test layout'u 2007
while( $ie.busy){Start-Sleep 1}
$link = $ie.document.getElementsByTagName('A') | where-object {$_.innerText -eq 'Wyświetl całą zawartość witryny'}
$link.Click()

#Test layout'u 2010
#while( $ie.busy){Start-Sleep 1}
#$link = $ie.document.getElementById('ctl00_PlaceHolderLeftNavBar_PlaceHolderQuickLaunchBottom_PlaceHolderQuickLaunchBottomV4_idNavLinkViewAllV4')
#$link.Click()

}
catch
{
$ie.quit()	#Zamknięcie procesu Internet Explorer'a
return $false	#Błąd
}
$ie.quit()	#Zamknięcie procesu Internet Explorer'a
return $true	#OK

Leave a Reply

Your email address will not be published. Required fields are marked *