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:
- Uruchomieniu Internet Explorera
- Otwarciu witryny o adresie http://intranet
- Wyświetleniu zawartości witryny poprze kliknięcie w przycisk Wyświetl całą zawartość witryny
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.
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
Brak podobnych wpisów




