Назад | Перейти на главную страницу

Лучшая практика для проверки работы IIS или веб-сайта IIS?

У нас есть внутренний сервер IIS, на котором размещено несколько веб-сайтов, которые перенаправляются на внешние размещенные веб-приложения. Иногда люди будут делать сумасшедшие вещи, такие как перезапуск серверов, остановка служб, отключение кабелей, что угодно, это случается ... Я хочу убедиться, что наш внутренний веб-сервер IIS запущен и работает каждые 15 минут, и если нет, попробуйте перезапустить службу и отправьте мне электронное письмо.

Я написал этот сценарий PowerShell, но не уверен, что это лучший способ добиться этого?

###################################################################
# Summary: Verify W3SVC service is running, send email if it's down
###################################################################
##############################
# Get service status
##############################
$serviceName = "W3SVC"
$serverName = hostname

$status = (Get-Service $serviceName).Status

if ($status -ne "Running"){
    sendMail "$serviceName" "$serverName"  #sendmail is a function (not shown)
    Restart-Service $ServiceName
}else{
        # Service is running, do nothing;
}

Однако я не уверен, что W3SVC лучший сервис для проверки работоспособности IIS7? Мне нужно проверить WAS и IISADMIN также? Есть ли тот, кто достигнет всего?

Я также думал о проверке кода состояния HTTP для этих хостов, но даже если сайт не работает, а IIS работает, мой код возврата возвращается 200. Это была скорее идея мозгового штурма, есть ли лучшие «лучшие практики» для достижения чего-то вроде этого?

$url = "http://intranet_site"
$xHTTP = new-object -com msxml2.xmlhttp;
$xHTTP.open("GET",$url,$false);
$xHTTP.send();
$xHTTP.status # returns the status code 
    if ($xHTTP.status -ne "200"){
        sendMail "$serviceName" "$serverName"
        Restart-Service $ServiceName
    }

Это была скорее идея мозгового штурма, есть ли лучшие «лучшие практики» для достижения чего-то вроде этого? Я хочу убедиться, что сайт работает и перенаправления работают.

Если вы хотите проверить, доступен ли сайт, лучший способ - запросить страницу и проверить ее содержимое. Проверьте $xHTTP.responseText или $xHTTP.responseXML в дополнение к коду состояния во втором скрипте. Однако вы можете захотеть запустить эту проверку с другого хоста, иначе такие вещи, как фильтры пакетов или проблемы с подключением, могут помешать доступу, несмотря на то, что веб-сайт доступен на самом хосте.