D8-WebMonitor - Руководство администратора¶
Назначение¶
D8-WebMonitor - это web-версия мониторинга системы Дельта (web-мониторинг), с помощью которой можно запускать сессии D8-Monitor удаленно на сервере через протокол HTTP/HTTPS.
На сервере D8-WebMonitor устанавливается как приложение IIS (Internet Information Services). Помимо IIS может использоваться другой web-сервер (например, web-сервер CS-MonitorHttpServer).
Кроме функций предоставления web-интерфейса для пользователей, D8-WebMonitor может применяться в качестве прокси для организации канала связи HTTP поверх нативных протоколов системы Дельта (ClientLL + SQL).
Описание работы¶
Для работы web-мониторинга нужно создать и настроить web-сайт на сервере IIS или другом web-сервере.
Веб-мониторинг загружает основные настройки из файла web.config из секции appSettings.
Дополнительные настройки и состояния сессий пользователя веб-мониторинг хранит в отдельной папке состояний в файлах и папках.
Список пользователей и групп пользователей загружается из файла Login.xml из папки состояний веб-мониторинга.
Также список пользователей, зарегистрировавшихся через сайт (если это функция используется), хранится во временном файле Users.xml в папке состояний веб-мониторинга.
Журнал событий¶
Сообщения, относящиеся к работе серверной части web-мониторинга, выводятся в журнал событий Windows в лог DeltaLog.
Для регистрации журнала событий необходимо выполнить:
%systemroot%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe
Настройка сайта IIS¶
- Установить .NET 4.x.
- Установить роли ОС, необходимые для работы IIS (см. ниже).
- Если ASP.NET не зарегистрирован (ошибка PageHandlerFactory), выполнить регистрацию:
%systemroot%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
- Создать корневую папку с документами сайта (стандартный путь -
C:\DELTA_WEB).
- Запустить оснастку администрирования IIS (
IIS Manager).
- В оснастке администрирования IIS создать сайт для web-мониторинга.
- Прописать путь до корневой папки сайта.
- В корневую папку сайта скопировать документы сайта (
delta_bin\D8V4\d8_monitor_web). В числе которых:monitor.aspx- документ для ASP.NET, через который идут все web-запросы (в том числе прокси-мониторинга);favicon.ico- иконка сайта для избранного;Global.asax- настройки для вызова обработчиков при закрытии сессий и т.п.;web.config- файл конфигурации web-приложения ASP.NET, где также хранятся все настройки web-мониторинга.
- В корневой папке создать подпапку
binи скопировать в нее исполняемые файлы мониторинга и папку встроенных ресурсов мониторинга (delta_bin\D8V4\d8_monitor).
Вместо копирования бинарниковD8 Monitorв папкуC:\DELTA_WEB\binможно использовать символическую ссылку. Например:CD C:\DELTA_WEB MKLINK /H bin C:\DELTA_CLIENT\BIN
Если предполагается использовать доступ к инстансам через устаревшее COM-API, то необходимо скопировать еще и эти сборки:d8_nativeclient.dllInterop.D8_CLASSLIBLib.dllInterop.D8_PROXY2.dllInterop.d8_rdglibraryLib.dll
- Создать папку состояния web-мониторинга с доступом на запись для сохранения состояния сессий web-сервера и прописать путь до нее в файле конфигурации
web.config(см. ниже). Стандартный путь -C:\DELTA_WEBSTATE.
- Создать в папке для сохранения состояний файл
Login.xmlс настройками доступа пользователей. Если в файлеweb.configуказан путь до файла со списком конфигураций, имя и пароль, то web-мониторинг может работать и без файлаLogin.xml(подробнее см. ниже).
- Разместить на сайте ссылку для входа в web-мониторинг:
monitor.aspx?c=WebGraph&p=
Если требуется вход через корень сайта, то можно скопировать в корень сайтаdefault.aspxи заходить через/илиdefault.aspx. Такжеdefault.aspxможно переименовать.
Общая схема файлов web-сайта:
\DELTA_CLIENT - папка клиентской части Дельта
\BIN - исполняемые файлы и внутренние ресурсы D8-Monitor
\DELTA_WEB - корневая папка сайта D8-WebMonitor
\bin - исполняемые файлы D8-WebMonitor - ссылка на C:\DELTA_CLIENT\BIN
\InternalResources - внутренние ресурсы мониторинга
d8_monitorwebserver.dll - исполняемые файлы мониторинга
...
\Patterns - настройки представления элементов управления интерфейса web-мониторинга
monitor.aspx - документы сайта ASP.NET
Global.asax
favicon.ico
web.config
\DELTA_WEBSTATE - папка для состояния web-мониторинга
\Users
\... - временные папки с состояниями сессий пользователей
Login.xml - настройками доступа пользователей
Users.xml - временный файл с зарегистрировавшимеся пользователями
...
Файл Login.xml¶
В файле Login.xml хранятся имена и пароли доступа для пользователей и групп пользователей, а также пути до файлов списков конфигураций мониторинга, которые пользователи будут просматривать (см. ниже).
<Login>
<!-- Список зарегистрированных пользователей
Кроме того, сервер хранит еще один списко зарегистрированных пользователей в отдельном файле Users.xml
-->
<Users>
<!-- Для каждого пользователя указывается:
Login, Password - имя и пароль входа в профиль на сайте, если имя указано: *, то будет производить авторизацию через плагин
Group - группа, к которой относится пользователь -->
<User Login="asd" Password="" Group="grp1"/>
</Users>
<!-- Список групп пользователей
Каждый зарегистрированный пользователь относится к группе
-->
<Groups>
<!-- Для каждой группы указывается имя и пароль входа Login, Password -->
<Group Login="grp1" Password="1">
<!-- Список доступных для просмотра файлов конфигураций мнемосхем -->
<ConfigListOptions>
<!-- Для каждого файла конфигураци указывается путь Url -->
<ConfigList Url="MonitorTest2\Data\monitor.configlist">
<!-- Список доступных для просмотра конфигураций в файле со списком конфигураций мнемосхем -->
<ConfigOptions>
<!-- Для каждой конфигурации указывается:
Index - индекс в файле списка,
ConfigName - имя для отображения в интерфейсе сайта,
Login, Password - логин и пароль от серверов системы Дельта
Offline - если равно true, то будет отображаться без подключения к серверу
-->
<Config Index="0" ConfigName="БГРЭС полная конфигурация" Login="delta" Offline="true" />
<Config Index="1" ConfigName="Куча параметров" Offline="True"/>
</ConfigOptions>
</ConfigList>
</ConfigListOptions>
</Group>
<!-- Для всех пользователей с windows-авторизацией-->
<Group Login="\">
<!-- Список доступных для просмотра файлов конфигураций мнемосхем -->
<!-- ... -->
</Group>
<!-- Для всех пользователей, но в Дельту будет заходить с именем и паролем пользователя-->
<Group Login="*">
<!-- Список доступных для просмотра файлов конфигураций мнемосхем -->
<!-- ... -->
</Group>
<!-- Пользователь домена будет отнесен к группе если у него одна из доменных ролей (групп) соответствует указанной в группе -->
<Group Login="Администраторы, Пользователи домена" InRole="true">
<!-- Список доступных для просмотра файлов конфигураций мнемосхем -->
<!-- ... -->
</Group>
</Groups>
</Login>
Файл web.config¶
Пример настроек файла web.config
<?xml version="1.0"?>
<configuration>
<appSettings>
<!--
Эта секция содержит настройки веб-мониторинга, которые загружаются при первом обращении к сайту
Формат такой
<add key="имя параметра" value="значение параметра"/>
Описание параметров:
log - выдавать сообщения об ошибках в системный журнал (true, false)
statefolder - путь до папки в которую будут сохраняться состояния сессий и всякие временные файлы (нужен доступ на запись)
logfile - имя текстового файла для выдачи сообщений об ошибках (не обязательно)
configlist - имя файла конфигураций мнемосхем мониторинга по умолчанию, если другое не указано в файле с настройками групп пользователей
index - индекс конфигурации в файле конфигураций мнемосхем мониторинга по умолчанию (для параметра configlist)
login - имя пользователя по умолчанию (если нужен вход без авторизации), если имя указано: *, то будет производить авторизацию через плагин
password - пароль пользователя по умолчанию (если нужен вход без авторизации)
winauth - будет использоваться windows авторизация (может быть либо windows авторизация - либо обычная) (true, false)
configlogin - имя пользователя для входа в конфигурацию, только если не используется файл login.xml
configpassword - пароль пользователя для входа в конфигурацию, только если не используется файл login.xml
DebugClient - выводить на веб-странице дополнительную отладочную информацию (true, false), по умолчанию false
plugin - подключить сборку с плагином (указать имя сборки без расширения .dll)
lang - язык вывода интерфейса и мнемосхем (например, английский: en, по умолчанию: ru)
AllowRegister - разрешать регистрацию пользователей на странице авторизации (true, false), по умолчанию false
ServerName - имя сервера которое будет указываться в логах, чтобы в логах отличать несколько серверов
templatefolder - папка с шаблонами оформления веб-сайта (кнопки главного меню, страница авторизации и т.д.)
AutoStretch - автоматически растягивать мнемосхемы по размеру окна браузера (true, false), по умолчанию true
OpenNewWindow - открывать графики, таблицы и пр. в новой вкладке (может блокироваться некоторыми браузерами) (true, false), по умолчанию false
expertmode - отображать доп. информацию для опытных пользователей
-->
<add key="log" value="false"/>
<add key="statefolder" value="d8_monitorwebserver/WebState"/>
<add key="logfile" value="d8_monitorwebserver/WebState/log.txt"/>
<add key ="configlist" value="MonitorTest2\Data\monitor.configlist"/>
<add key="login" value="asd"/>
<add key="password" value=""/>
</appSettings>
<connectionStrings/>
<system.web>
<!-- Это означает закрывать сессию после 1 минуты бездействия -->
<sessionState timeout="1"/>
<compilation debug="true">
<assemblies>
<!-- Сборки с плагинами можно загрузить здесь -->
<!--<add assembly="d8_monitor.chkts_heat_report" />-->
</assemblies>
</compilation>
<authentication mode="Windows"/>
</system.web>
</configuration>
Настройка Windows Server¶
Для работы IIS необходим следующий минимальный набор ролей ОС:- Веб-сервер
- Основные возможности
- Статическое содержимое
- Стандартный документ
- Обзор каталогов
- Ошибки HTTP
- Разработка приложений
- ASP.NET
- Расширяемость .NET
- Расширения ISAPI
- Фильтры ISAPI
- Безопасность
- Windows - проверка подлинности
- Фильтрация запросов
- Средства управления
- Консоль управления IIS
- Основные возможности
Использование windows-аутентификации¶
- Чтобы IE не спрашивал каждый раз имя и пароль надо изменить настройку "Автоматический вход в сеть только в зоне интрасети" или добавить сайт руками в зону "Местная интрасеть" (Узлы > дополнительно) (хотя может и сам определит), учесть что для "Зоны интрасети" нужно отключить "Параметры отображения совместимости > Отображать узлы интрасети в режиме представления совместимости".
- В браузере нужно обязательно заходить на сайт по доменному имени web-сервера, а не по IP-адресу (например:
webserver.complexsystems.local).
- Добавить компьютер с сервером IIS в домен.
- В настройках Active Directory на контроллере домена настроить делегирование прав для данного компьютера.
- Запускать пул приложений только от
ApplicationPoolIdentity(возможно не сработает),Network ServiceилиSYSTEM, т.к. только эти учетные записи в домене могут получать делегирование с сетевыми правами доступа.
- (возможно) SQL-сервер запускать или с системной учетной записью или с доменным администратором (нужно для регистрации SPN).
- Время на часах всех серверов должно быть одинаковым до минуты, иначе возникнут проблемы (сообщения в системном логе
KDC_ERR_BADOPTION,KDC_AP_ERR_SKEW).
- В настройках доступа для web-сайта (на странице "Проверка подлинности") включить аутентификацию Windows и олицетворение ASP.NET, а Анонимную проверку подлинности отключить:
<system.web> <authentication mode="Windows" /> <identity impersonate="true" /> </system.web>
- В файлы настроек
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
вписать:<legacyImpersonationPolicy enabled="false"/> <alwaysFlowImpersonationPolicy enabled="true"/>
По умолчанию там стоитtrue. Это нужно для передачи прав пользователя в параллельные потоки через классTask.
Есть еще возможность в ISS 7.5 задать файл настроекaspnet.configотдельно для каждого пула приложений (см. инет)
- Для ошибки "Обнаружены значения параметров ASP.NET, которые неприменимы в интегрированном режиме управляемого конвейера." настроить в web.config
<system.webServer> <validation validateIntegratedModeConfiguration="false"/> </system.webServer>
чтобы не возникало ошибок несовместимости с режимомIntegratedпула приложений.
- Дать пользователям, которые будут заходить, доступ к папке WebState, лог-файлу
- Может быть либо windows-аутентификация, либо обычная. Одновременно не работает, надо создавать отдельные сайты.
- В файле
web.configуказать что используется windows-аутентификация:<appSettings> <add key="winauth" value="true" /> </appSettings>
- Посмотреть отладочную информацию по текущему удостоверению пользователя можно по адресу ниже. На этой странице свойство
ImpersonationLevelдолжно бытьDelegation, иначе не работает.monitor.aspx?c=WebWinAuth
- Вновь созданные потоки в ASP.NET по умолчанию не получают учетные данные от родительского потока, надо это учитывать.
- Есть утилита для ASP.NET для помощи настройки windows-аутентификации. Устанавливается прямо на сайт и открывается из браузера.
Ссылка:http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx
- Права делегирования (тикеты) кешируются на компьютере. У них есть срок годности. Поэтому настройки на сервере домена могут не применяться сразу.
Чтобы удалить кешированые права для текущего пользователя нужно выполнить:klist purge
дляLOCALSYSTEM:klist -li 0x3e7 purge
дляNETWORK SERVICE:klist -li 0x3e4 purge
ТикетTGTудалить командойklistнельзя. Его таймаут по умолчанию 10 минут. Нужно подождать 10 минут, пока будет запрошен новый TGT и новые настройки делегирования вступят в силу (или перезагрузить компьютер).
- Пример настройки ограниченного делегирования:
- На контроллере домена в настройках для web-сервера указать:
- "Trust this computer for delegation to specified services only".
- "Use any authentication protocol". Здесь можно указать и "Use Kerberos only", но тогда делегирование прав на сетевые папки может не работать (см.
https://support.microsoft.com/en-us/kb/2602377).
- В список разрешенных служб добавить:
MSSQLSvc/DBSRV.domain.net:1433для сервера БДCIFS/FILESRV.domain.netдля сервера, где размещены нужные сетевые папки
- На контроллере домена в настройках для web-сервера указать:
Инструменты для отладки¶
monitor.aspx?c=WebWinAuth
Просмотр отладочной информации по текущему удостоверению пользователя.
monitor.aspx?c=WebTraceLog
Просмотр отладочного лога.
monitor.aspx?c=WebState
Просмотр текущих открытых сессий.
monitor.aspx?c=WebGraph&p=%23WebServer.EventLogDialog
Просмотр журнала событий Windows (необходима авторизация).
monitor.aspx?c=WebGraph&p=%23WebServer.SessionStateDialog
Просмотр и управление текущими открытыми сессиями.
monitor.aspx?c=c
Список ссылок на различные отладочные инструменты, в том числе описанные выше
Особенности работы¶
Использование устаревших макетов отчетов¶
Если используются макеты отчетов на основе устаревшего COM-API, то для построения отчетов из web-мониторинга необходимо на сервере, на котором развернут web-мониторинг, установить MS Excel.
Чтобы автоматизация Excel работала на серверной ОС необходимо создать папки:
C:\Windows\SysWOW64\config\systemprofile\Desktop C:\Windows\System32\config\systemprofile\Desktop C:\Windows\Sysnative\config\systemprofile\Desktop
Если не отображаются страницы web-мониторинга¶
Если вход пользователя выполняется, но страницы не отображаются:- Проверить не включился ли в IE режим отображения в "Режиме совместимости".
- Проверить не блокируются ли cookies. Если блокируются то сессия пользователя будет постоянно пересоздаваться.
История версий¶
4.2.21.0813- Изменения в названиях
4.2.21.0803- Изменения под новые сборки
4.2.20.0417- Переход на новые сборки
4.2.18.1220- Переделана выдача файлов чтобы не дописывались переводы строк в конце
4.1.15.1125- Авторизация по доменной роли (группе).
4.1.15.1125- Авторизация по доменной роли (группе).
1.0.13.0411- Реализована отправка клиенту сообщений об ошибках при загрузке файлов ресурсов и чтении архивов.
1.0.13.0402- Множество исправлений для разных браузеров.
1.0.12.1122- Первая версия.