La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

IIS 6.0 Administración Avanzada

Presentaciones similares


Presentación del tema: "IIS 6.0 Administración Avanzada"— Transcripción de la presentación:

1

2 IIS 6.0 Administración Avanzada
Iván González Microsoft MVP – Windows Server - IIS

3 Agenda Reciclado de aplicaciones Diagnóstico de errores HTTP 500
Trazado y auditoría con Windows Server 2003 SP1 LogParser

4 Reciclado de aplicaciones Cambios en la Arquitectura
Objetivo: Lograr el completo aislamiento entre núcleo del servidor Web y las aplicaciones Web La funcionalidad en INETINFO se divide: HTTP.sys: escucha las peticiones en modo kernel y las enruta W3SVC: configuración y gestión de procesos W3Core: donde se ejecutan las aplicaciones Web Varias dll’s W3Core se cargan dentro de procesos W3WP.exe Dos modelos de procesos Modo de aislamiento de Worker Processes Modo de aislamiento de IIS 5.0 Objetivo: Aislar el servidor Web de las aplicaciones “chungas” que pudiesen afectarle en su funcionamiento y evitar que las aplicaciones Web se dañen entre si Lo que antes hacia principalmente INETINFO se ha separado en 3 componentes HTTP.sys se dedica a escuchar las peticiones y enrutarlas (todo en modo Kernel). Es un driver. Hace caché de las respuestas W3SVC almacena la lógica que configurar el driver HTTP.sys así como configura y gestiona los procesos que ejecutan las aplicaciones Web (W3Core) En W3Core se ejecutan las ISAPI (extensiones y filtros) y ASP y ASP.NET Varios ficheros W3Core.dll se pueden cargar dentro de procesos W3WP

5 Reciclado de aplicaciones El modelo de procesos de IIS 5.0
DLLHOST.exe Pooled OOP Apps INETINFO.exe metabase ftp, smtp, nntp ASPNET_WP.exe DLLHOST.exe .Net App Domain W3SVC DLLHOST.exe .Net App Domain Isolated OOP App .Net App Domain DLLHOST.exe Isolated OOP App ASP.NET In-proc Apps Isolated OOP App Las peticiones son redirigidas a IIS por WinSock Inetinfo es el proceso master donde funciona todo… ftp, smtp, metabase, y el W3SVC que es donde se ejecutan las aplicaciones… Las aplicaciones dentro de procesos pueden tumbar el servidor Web si fallan. Las aplicacions que se ejecutan en aislamiento medio o alto, se ejecutan en un proceso DLLHost (varios si el aislamiento es medio, o una aplicación en cada DLLHost si el aislamiento es alto) Esto es un poco confuso. Si tenemos una aplicación Web con páginas ASP, páginas ASP.NET, contenido estático y filtros ISAPI resulta que cada una de estas cosas puede estar ejecutandose o gestionandose en un sitio distinto NOTA: ASP.NET incluye su propio worker_process (en vez de DLLHOST.exe) y se llama ASPNET_WP.exe Filtros ISAPI Modo usuario Modo kernel Winsock

6 Reciclado de aplicaciones Modo de aislamiento de Worker Processes en IIS 6.0
Application Pool Application Pool Application Pool INETINFO.exe SVCHOST.exe W3WP.exe W3WP.exe W3WP.exe W3Core metabase W3SVC W3Core W3Core ASP.net Apps Apps (no OOP) Apps (no OOP) ftp, smtp, nntp .Net App Domain W3 Config Mgr W3 Process Mgr .Net App Domain .Net App Domain IIS 6.0 funcionando en Worker Process Isolation Mode Ahora HTTP.sys es el que recibe las peticiones de la red en vez de Winsocks. HTTP.sys redirige estas peticiones a la aplicación, es decir a su W3WP.exe (esto incluye peticiones para contenido estático, asp, asp.net, etc.) En IIS 5.0 solo teníamos un application pool, ahora podemos tener varios. Se pueden crear los que se quiera. Cada uno puede hospedar 1 o varias aplicaciones. W3SVC se ejecuta dentro de SVCHOST.exe. Se encarga de la configuración y administración de los procesos. INETINFO todavía existe y se encarga del FTP,SMTP, etc y de la metabase. Se pueden configurar un montón de cosas acerca de cómo funciona un pool Filtros ISAPI Filtros ISAPI Modo usuario Modo kernel HTTP.SYS

7 Reciclado de aplicaciones Application Pools
Podemos tener uno o más Cada uno servidor por uno o más W3WP.exe Cada W3WP.exe solo sirve un pool Peticiones redirigidas al pool por HTTP.sys Podemos aislar las aplicaciones Web basándonos: En sitio/cliente En la funcionalidad En la fiabilidad Es un límite que definimos para contener nuestras aplicaciones. Podemos hacer que un pool se ejecute en uno o más Worker Process (esto se llama Web Garden). O sea tener varios W3WP.exe para un pool Un W3WP solo puede atender un pool Objetico: Aislamiento entre aplicaciones Web y entre aplicaciones Web y el servidor

8 Reciclado de aplicaciones Reciclado periódico de los procesos
Qué es Reiniciamos las aplicaciones Web basándonos en: El tiempo que llevan funcionando El número de peticiones En un calendario En el consumo de memoria Bajo demanda Porqué usarlo Prevenir que aplicaciones defectuosas afecten al sistema Refrescar las aplicaciones para aumentar la disponibilidad Antes había gente que programa un IISRESET cada cierto tiempo para que el servidor no se corrompiese… (esto produce un corte aunque sea pequeño en el servicio) Esta es una solución más elegante. Mientras se reciclan los Worker Process, HTTP.sys sigue encolando peticiones… => no hay corte en el servicio OJO!!. Durante el proceso de reciclado, puede ser que varias instancias existan a la vez, la vieja que está acabando de procesar las peticiones que tenía y la nueva a la cual ahora HTTP.sys empezará a redirigir las peticiones. Reciclado solapado.

9 Reciclado de aplicaciones Arquitectura con autorecuperación
Qué es Diseñada para detectar bloqueos de threads dentro de W3WP.exe Cómo funciona W3SVC consulta cada W3WP.exe El proceso tiene un tiempo para responder Si no responde en ese tiempo: Matar el proceso, publicar un evento y lanzar uno nuevo (por defecto) IIS puede ser configurado para realizar una acción sobre el proceso Consultamos a los worker process para ver si hay threads libres para atender respuestas… si no hay, lo reiniciamos…

10 Reciclado de aplicaciones Detección de fallos y recuperación
W3SVC detecta “casques” en W3WP.exe W3SVC lanzará un nuevo W3WP.exe si es necesario Las peticiones son encoladas por HTTP.sys mientras se crea el nuevo W3WP Resultado: no existe interrupción en el servicio Protección Solo se permiten x fallos en y minutos El pool será detenido si se superan estos valores (error 503 para las peticiones) Si una aplicación está fallando muy a menudo… posiblemente queramos detenerla… A partir de haberla detenido… el servidor responderá con un error 503 (servicio no disponible)

11 Reciclado de aplicaciones Rendimiento
Web Garden Application pool con más de un Worker Process Afinidad de procesador Vincular los procesos de un Application pool a uno o más procesadores Se hace caché de las respuestas en HTTP.sys (kernel) Se liberan los procesos después de un tiempo de inactividad Se relanzarán cuando sea necesario (peticiones) Esto no implica que la aplicación no esté activa!!

12 demo

13 Diagnóstico de errores HTTP 500
Introducción a los errores HTTP 500 Varios tipos de errores 500 Diagnóstico

14 Errores HTTP 500 El protocolo HTTP está formado por varios mensajes
100: Información 200: OK 300: Redirección 400: Error del cliente 500: Error del servidor El RPF para el protocolo HTTP

15 Errores HTTP 500 (II) Los errores HTTP 500 devuelven una página genérica al cliente ( asp) Excepciones: 500.16 500.19 Internet Explorer a menudo reemplazará este error Deshabilitar los mensajes descriptivos de error en Internet Explorer Opciones de Internet, Opciones Avanzadas, Examinar

16 Errores HTTP 500 (III) Algunas herramientas y logs ayudan a solucionar los problemas de errores HTTP 500: Los logs de IIS: %windir%\system32\logfiles Visor de sucesos Monitor de red WFetch: Q284285 IIS Debug ToolKit 1.1 Herramientas de depuración para Windows

17 HTTP 503 Service Unavailable
El servidor es actualmente incapaz de manejar la petición debido a una sobrecarga temporal o a mantenimiento del servidor. Las herramientas de depuración de IIS y el monitor de rendimiento son útiles para solucionar este problema. Posibles causas del problema Problemas de conectividad a la Base de Datos Más peticiones de las esperadas están llegando al servidor El App Pool está offline

18 HTTP 500.100 El mensaje de error:
HTTP – Internal Server Error – ASP Error Si deshabilitamos los errores de Internet Explorer: Podría ser un problema de permisos que podemos solucionar con regmon o filemon

19 HTTP (II) Con los mensajes de error de Internet Explorer deshabilitados podríamos obtener Este error está documentado en el artículo La solución fue registrar de nuevo el componente (dll)

20 demo

21 Trazado y auditoría con Windows Server 2003 SP1
Nueva instrumentación en IIS6 SP1 Enhanced Request-based Tracing Currently-executing Requests Tracing Auditoría de la Metabase Uso de la nueva instrumentación Cuelgues o fallos en peticiones Problemas de Autenticación/Autorización ¿Qué se está ejecutando actualmente? ¿Quién cambió qué, cuándo y cómo?

22 Enhanced Request-based Tracing Introducción
OBJETIVO: seguir las peticiones a través de IIS y en ASP/ASP.NET a través de eventos de traza CÓMO: Eventos de traza ETW en 4 proveedores principales IIS: WWW Server IIS: W3 Isapi IIS: Active Server Pages (ASP) ASP.NET Events PORQUÉ usar ETW? Mecanismo de trazado general de alto rendimiento Configuración dinámica – no es necesario reiniciar para reconfigurar SIN VOLCADOS!!

23 Enhanced Request-based Tracing Un vistazo a ETW
Controller Session Control Enable/Disable Events Event Tracing Sessions Trace files Session 1 Session 2 Session 64 Buffers Logged Events Real time delivery Events Provider A Provider C Consumer Consumer Provider B

24 Enhanced Request-based Tracing IIS y ETW
C:\logman stop IisTrace -ets C:\Logman start IisTrace –pf MyProvs.txt -ets W3wp.exe Tracing enabled Tracing enabled Asp.dll ETW Infrastructure Some COM obj IisTrace Session COM_OBJ_START COM_OBJ_END ASP_REQ_START ASP_REQ_END FILTER_START FILTER_END REQ_START REQ_END Isapi filter IisTrace.etl New request

25 Enhanced Request-based Tracing Uso de trazas
Controlar las trazas Logman.exe Perfmon Logs & Alerts service APIs de la plataforma no manejadas Consumir trazas Tracerpt.exe: consume ETL’s, informes de salida y csv’s Excel para ver csv’s LogParser 2.2: lee ETL’s

26 Enhanced Request-based Tracing IIS WWW Server Provider
Los eventos cubren Cuando W3WP.exe recoge la petición – a – Cuando W3WP.exe termina con la petición EXCLUYE: El manejo de ISAPI -> cubierto por IIS: W3 Isapi & proveedores ISAPI individuales (ASP/ASP.net) Flags: 9 en total, 7 para filtrado Verbosidad: 0. GENERAL 1. Errores críticos 2. Errores 3. Advertencias 4. Información 5. Verbose Flag # Descripción UseUrlFilter 0x1 Filtras URL’s específicas IISAuthentication 0x2 Eventos autenticación IISSecurity 0x4 Eventos autorización IISFilter 0x8 Eventos filtros ISAPI IISStaticFile 0x10 Manejador de ficheros estáticos IISCGI 0x20 Eventos relacionados con CGI’s IISCompression 0x40 Compresión estática & dinámica IISCache 0x80 Eventos relacionados con la caché IISAll 0xFE Todos los eventos

27 Enhanced Request-based Tracing Trazar URLS específicas
La posibilidad de trazar solo URLs específicas en vez de todas las URLs ¿Cómo usarlo…? Establecer la propiedad TraceUriPrefix del sitio Establecer el flag UseUrlFilter en IIS: WWW Server provider NOTA: se DEBE usar el proveedor IIS: WWW Server con el flag UseUrlFilter establecido para filtrar eventos ASP & ASP.net por URL. Adsutil set w3svc/1/TraceUriPrefix = “/*.aspx” “IIS: WWW Server” 0x “IIS: Active Server Pages (ASP)” 0xFFFFFFFF 5

28 Enhanced Request-based Tracing Resolviendo problemas de Autenticación/Autorización
ANTES: montones de problemas alrededor… ¿Se autenticó el usuario correctamente? ¿Es el ID del usuario anónimo correcto? ¿Qué UID se está usando para acceder al contenido? ¿Dónde se le está denegando el acceso al usuario? CÓMO: usar flags para el diagnóstico: Explicación: 0x => Eventos de Autenticación 0x => Eventos de Seguridad/Autorización Verbosity = 5 => Todos los eventos anteriores “IIS: WWW Server” 0x

29 Enhanced Request-based Tracing IIS: Active Server Pages Provider (ASP)
¿De QUÉ se hace log? Encolado/Desencolado: ¿cuanto tiempo permaneció en la cola? Tiempo de parseo y compilación Configuración de los objetos intrínsecos a la petición Eventos en tiempo de ejecución. OnApplication, etc. Ejecución de Global.asa Tiempos de objetos COM Creación de objetos Llamada a métodos Llamada a GetObject ¿PORQUÉ usarlo? La mayoría de las llamadas a soporte -> cuelgues en páginas ASP Método actual para la resolución -> volcado del proceso INETINFO o dllhost.exe, envío a PSS.

30 Currently Executing Requests Qué está ocurriendo realmente ahora
¿De QUÉ se hace log? Estadísticas de los Worker Processes Estadísticas para todas las peticiones actualmente en ejecución ¿PORQUÉ usarlo? Lista de la peticiones en ejecución sin tener que matar el proceso para ver HTTPERR log No hay que usar el depurador y extensiones del depurador para ver esto – integrado & no-intrusivo ¿CÓMO usarlo?: Usar ETW para volcar los datos o… IISReqMon.vbs (con LogParser 2.2) C:\Logman start CurrReqDump –p “IIS: Request Monitor” -ets

31 Currently Executing Requests Datos registrados
Estadísticas del Worker Process PID AppPoolID # Requests Served Total Worker Threads Available Worker Threads Process Start Time Process Uptime Estadísticas de la petición Start time Context ID (to correlate back to req-based tracing) Site ID Local IP & Port Host Name Connection ID Client IP Request Verb Request URL Processing State Elapsed total Time Elapsed time in State

32 Currently Executing Requests Auditoría de la Metabase
¿QUÉ?: Entrada en el log de eventos del sistema cada vez que hay un cambio en el metabase NT Security Audit Log Fuente: IISADMIN-Metabase ¿CÚANDO se registran los cambios? Intentos exitosos o fallidos de añadir, cambiar, mover, o borrar claves/propiedades ¿PORQUÉ usarlo? Auditoría de cambios Common Criteria Certification

33 Currently Executing Requests Auditoría de la Metabase
¿QUÉ se logea? Lo que está siendo cambiado Path de la Metabase Viejo valor de la Propiedad/Clave Nuevo valor de la Propiedad/Clave Quién lo cambió: dominio & nombre de usuario si se puede obtener Cómo fue cambiada: nombre del ejecutable usado para hacer el cambio (MMC.exe, etc.) & IP remota si está disponible. Éxito o fallo de la operación ¿CUÁNDO se hace (en detalle)? Operaciones sobre las claves: mover/borrar/copiar/añdir/renombrar Operaciones sobre las propiedades: añadir/modificar/borrar

34 Currently Executing Requests Habilitar la auditoría de la Metabase
Deshabilitada por defecto ¿CÓMO habilitarla?: Habilitar la auditoría global de objetos primero Establecer la ACE Audit Success & Audit Failure sobre los nodos de la metabase que se quieran auditar, & para qué usuarios (todos?) NOTA: esto configurará la propiedad AdminACL en la metabase para el nodo seleccionado La configuración de los nodos hijos sobreescribirán esta configuración

35 demo

36 LogParser Introducción a LogParser LogParser 2.2
Formatos de entrada y de salida Funciones Plantillas de salida Cómo empezar… LogParser 2.2 El nuevo formato de salida ‘chart’ CheckPoint

37 Log Parser es… Una herramientas gratuita, aplicación independiente
Versión 2.1: buscar por “IIS 6.0 Resource Kit Tools” Versión 2.0: buscar por “Log Parser” Desarrollada por Gabriele Giuseppini, del equipo de IIS No soportada oficialmente ( Disponible de dos formas: .exe en línea de comandos Objeto COM No hay ningún GUI por el momento

38 LogParser Conceptos clave
Log Parser requiere… Formato de entrada [+opciones] Consulta Formato de salida Lenguaje de consulta Soporte la mayoría de la sintaxis de SQL Extiende el lenguaje con funciones adicionales

39 LogParser Funciones Para obtener una lista de las funciones Ejemplos:
[2.1] logparser –h 2 [2.0] logparser –h FUNCTIONS Ejemplos: Funciones de conversión TO_TIMESTAMP TO_LOCALTIME TO_INT Manejo de cadenas STRLEN SUBSTR STRCAT Otras REVERSEDNS QUANTIZE EXTRACT_EXTENSION [2.2] CASE [2.2]

40 LogParser Ejemplo de función
Convertir el timestamp del fichero de log de UTC a hora local SELECT TO_DATE(TO_LOCALTIME(TO_TIMESTAMP(date, time))) AS date, TO_DATE( TO_LOCALTIME( TO_TIMESTAMP(date, time))) AS time, c-ip, cs-username, s-ip, s-port, cs-method, FROM C:\Windows\system32\logfiles\w3svc1\ex log

41 LogParser Plantillas de salida
Logparser –h –o: TPL Formada por: Cabecera Cuerpo Pie Mejora el aspecto del resultado

42 LogParser Cómo empezar
Encontrar los nombres de las columnas en la fuente de datos logparser –h –i:<IISW3C|IIS|EVT> o… “SELECT * FROM <datasource>” Para ficheros TSV o CSV: logparser –h –i:csv/tsv <nombre_fichero> Comprender los datos en cada columna Aplicar las funciones necesarias para convertir los datos [2.2] opción -queryinfo

43 LogParser Novedades en LogParser 2.2
Nuevos formatos de entrada ETW – “Event Tracing for Windows”, ficheros de log y sesiones vivas TSV – “Tab and Space Separated value text files” ADS – Lee información de objetos del DA REG – Lee información del registro NETMON – parsea las capturas de NETMON Nuevos formatos de salida CHART SYSLOG TSV

44 LogParser Checkpoint – parseo incremental
Parsea sólo lo que no ha sido parseado anteriormente ex*.log …de todos los ficheros de log en un directorio <1> …de todos los ficheros de log del sitio 1 System …del log de eventos del sistema Requiere un fichero de checkpoint para almacenar datos logparser “SELECT TimeGenerated, EventTypeName, Strings FROM System WHERE SourceName = ‘W3SVC’” –icheckpoint event.lpc

45 demo

46 Q&A ivan@plainconcepts.com www.plainconcepts.com

47 © 2005 Microsoft Corporation. Todos los derechos reservados.
Esta presentación es sólo con propósitos formativos. MICROSOFT NO GARANTIZA, EXPLÍCITA O IMPLÍCITAMENTE, LOS CONTENIDOS DE ESTA PRESENTACIÓN.


Descargar ppt "IIS 6.0 Administración Avanzada"

Presentaciones similares


Anuncios Google