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.dll
Interop.D8_CLASSLIBLib.dll
Interop.D8_PROXY2.dll
Interop.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
- Первая версия.