Home Menu Search

Saqwel

IT and other things blog

Server Manager на Windows Server 2012 R2

Share

А вы пользуетесь Server Manager? Server Manager появился в операционной системе Windows Server 2008. Однако, в версии Windows Server 2012 внешний вид Server Manager был радикально изменён. Когда я иногда обращал на него внимания, то не понимал, как такая разноцветная программа может управлять чем-то на сервере, то есть с точки зрения моего мозга, привыкшего к серости серверных операционок Server Manager казался несерьезной побрякушкой. Я не понимал, что Server Manager под Windows Server 2012 – это потомок Server Manager под Windows Server 2008

В принципе не мудрено запутаться, ведь привычная древовидная структура, в виде которой были представлены все роли, фичи, логи и т.д. были заменены на простой список ролей в левой части окна. Лишь через полгода после первой встречи с Server Manager на Windows Server 2012, я начал понимать, что эта программа может служить не только для добавления ролей, консолей и фич. Оказывается, благодаря Server Manager можно держать под контролем всю серверную (и не только) инфраструктуру организации. Даже не представляю, как раньше я обходился без этого менеджера.

Прозрение по поводу полезности сервер менеджера пришло ко мне после настройки RDS. Там четко указывалось, что настройку нескольких серверов надо производить с одного сервера. Я сразу оценил удобство, не надо ходить с одного сервера на другой, а можно установить все роли тут же с одного сервера, просто запуская процессы на остальных, даже не видя их рабочие столы и это с использованием GUI, а не Powershell. Затем я заметил, что в разделе Dashboard отображаются проблемы, которые есть на сервере, при этом если в Server Manager добавить несколько серверов, то отображаются уведомления со всех серверов.

Кроме всего прочего, после установки RSAT на Windows 8, Server Manager доступен и здесь. Я решил попытаться мониторить серверы прямо с рабочего места. Добавил все серверы организации в сервер менеджер, доустановил, где это было необходимо WinRM 4. Конечно, не без проблем, но со временем в дашборде Server Manager появились уведомления о проблемах. Особенно полезным мне показалось наличие уведомлений о превышении порога нагрузки на центральный процессор и оперативную память. Тут нет возможности настроить уведомления на почту или в линк, однако, достаточно несколько раз в день заглянуть в Server Manager, чтобы быть в курсе происходящего на серверах.

О чем уведомляет Server Manager:

  1. необходимость перезагрузки сервера (после установки обновлений или ролей);
  2. ошибки в журнале событий Windows;
  3. службы Windows находятся в неположенном состоянии;
  4. превышение порога загрузки процессора и памяти;
  5. не соответствие рекомендациям BPA.

И всё это в одном окне. Как я уже ранее упоминал, самым полезным мне показалось возможность получать уведомление о проблемах с производительностью на сервере. Для того, чтобы получать эти уведомления, необходимо на сервере запустить счётчики производительности. Они будут сохранять показатели загрузки процессора и памяти в папку C:\PerfLogs на сервере, где запущены счетчики производительности. При этом размер папки при сборе недельной статистики не превышает 50Мб.

Если на каком-то сервере возникли проблемы с производительностью, через Server Manager даже можно посмотреть, какие процессы сколько процессорного времени использовали в критический момент.

После того как Server Manager настроен, туда добавлены серверы, необходимо как-то обновлять этот список серверов. Оказалось, для того, чтобы автоматизировать этот процесс необходимо изменять XML файл, в котором хранится список управляемых серверов. Логично для этого использовать Powershell. Ниже скрипт, который по расписанию запускается каждый день пока я хожу на обед и автоматически обновляет список серверов в Server Manager.

# Импорт модуля AD для перебора всех серверов в AD
import-module activedirectory

# Закрыть Server Manager
get-process ServerManager | stop-process –force

# Объявить переменные
$adsArray = @()
$xmlArray = @()

# Список серверов, которые я не хочу видеть в Server Manager
$srvException = @( 'server-test01', ‘server-test02’)

# Расположение файла со списком серверов
$file = get-item "$env:APPDATA\Microsoft\Windows\ServerManager\ServerList.xml"

# Сделать бекап файла
copy-item –path $file –destination $file-backup –force

# Прочитать файл со списком серверов
$xml = [xml] ( get-content $file )

# Заполнить массив серверов из AD
ForEach( $objServer IN Get-ADComputer -Filter { OperatingSystem -like "*Server*" }`
 -Properties operatingSystem ) {
    if( $srvException -notcontains $objServer.Name ) {
        $adsArray += "$( $objServer.Name).ab.ru"
    }
}

# Заполнить массив серверов из списка
for( $i=0; $i -lt @( $xml.ServerList.ServerInfo ).Length; $i++ ) {
    $xmlArray += @( $xml.ServerList.ServerInfo )[$i].Name
}

# Сравнить массивы
Compare-Object $xmlArray $adsArray
$c = Compare-Object $xmlArray $adsArray
# Добавить в список новые серверы
for( $n=0; $n -lt $c.Length; $n++ ) {
    if( $c[$n].SideIndicator -eq "=>" ) {
        $newserver = @( $xml.ServerList.ServerInfo )[0].clone()
        $newserver.name = "$( $c[$n].InputObject )"
        $newserver.lastUpdateTime = “0001-01-01T00:00:00”
        $newserver.status = “2”
        $xml.ServerList.AppendChild( $newserver )
    }
}

# Поместить список в файл
$xml.Save( $file.FullName )
# Запустить Server Manager
ServerManager.exe –WindowStyle Maximized 

Вот и всё, чем я хотел поделить с миром о Server Manager. Надеюсь, и читатель найдёт полезным этот инструмент администрирования, хотя он, конечно не заменит Saqwel Remote Administration Tool.

Leave a Reply