Iván González Microsoft MVP – Windows Server - IIS [email protected] IIS 6.0...

47

Transcript of Iván González Microsoft MVP – Windows Server - IIS [email protected] IIS 6.0...

Page 1: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.
Page 2: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Iván GonzálezMicrosoft MVP – Windows

Server - [email protected]

IIS 6.0Administración Avanzada

Page 3: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Agenda

• Reciclado de aplicaciones

• Diagnóstico de errores HTTP 500

• Trazado y auditoría con Windows Server 2003 SP1

• LogParser

Page 4: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 5: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Reciclado de aplicaciones

El modelo de procesos de IIS 5.0

INETINFO.exe

metabase ftp, smtp, nntp

W3SVCW3SVC

Winsock

Filtros ISAPI

In-proc

Apps

ASP.NET

.Net App .Net App DomainDomain

.Net App .Net App DomainDomain

.Net App Domain

ASPNET_WP.exe

Pooled OOP Apps

DLLHOST.exe

Isolated Isolated OOP AppOOP App

DLLHOST.exe

Isolated Isolated OOP AppOOP App

DLLHOST.exe

Isolated OOP App

DLLHOST.exe

Modo usuario

Modo kernel

Page 6: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Reciclado de aplicaciones

Modo de aislamiento de Worker Processes en IIS 6.0

INETINFO.exeINETINFO.exe

metabase

ftp, smtp, nntp

Modo usuario

Modo kernel

HTTP.SYS

W3SVC

SVCHOST.exeSVCHOST.exe

W3

Co

nfi

g M

gr

W3

Pro

ce

ss

Mg

r

W3CoreW3Core

Filtros ISAPI

W3WP.exe

Apps

(no OOP)

Application Pool

W3CoreW3Core

Filtros ISAPI

W3WP.exe

Apps

(no OOP)

Application Pool

W3CoreW3Core

W3WP.exe

Application Pool

ASP.net Apps

.Net App .Net App DomainDomain

.Net App .Net App DomainDomain

.Net App Domain

Page 7: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 8: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 9: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 10: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Reciclado de aplicaciones

Detección de fallos y recuperación

• Detección de fallos– 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)

Page 11: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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!!

Page 12: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

demo

Page 13: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Diagnóstico de errores HTTP 500

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

Page 15: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Errores HTTP 500 (II)

• Los errores HTTP 500 devuelven una página genérica al cliente (500-100.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

Page 16: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 17: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 18: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

HTTP 500.100

• El mensaje de error:HTTP 500.100 – 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

Page 19: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

HTTP 500.100 (II)

• Con los mensajes de error de Internet Explorer deshabilitados podríamos obtener

• Este error está documentado en el artículo 278604

• La solución fue registrar de nuevo el componente (dll)

Page 20: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

demo

Page 21: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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?

Page 22: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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!!

Page 23: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Enhanced Request-based Tracing

Un vistazo a ETW

Provider C

Provider B

Provider A

Trace files

Controller

Consumer

Real time delivery

Logged Events

Session 1

Buffers

Session 2 Session 64

Event Tracing Sessions

Events

EventsEnable/DisableSession Control

Consumer

Page 24: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Enhanced Request-based Tracing

IIS y ETW

IisTraceIisTrace

SessionSession

ETW InfrastructureETW Infrastructure

W3wp.exeW3wp.exe

Isapi filterIsapi filterIsapi filterIsapi filter

Asp.dllAsp.dll

Some COMSome COMobjobj

Some COMSome COMobjobj

C:\Logman start IisTrace –C:\Logman start IisTrace –pf MyProvs.txt -etspf MyProvs.txt -ets

Tracing enabledTracing enabled

Tracing enabledTracing enabled

New requestNew request

REQ_START

REQ_STARTFILTER_START

FILTER_STARTFILTER_ENDFILTER_END

ASP_REQ_STARTASP_REQ_START

COM_OBJ_START

COM_OBJ_START

COM_OBJ_END

COM_OBJ_ENDASP_REQ_ENDASP_REQ_END

REQ_END

REQ_END

C:\logman stop IisTrace -etsC:\logman stop IisTrace -ets

IisTrace.etlIisTrace.etl

Page 25: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 26: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 27: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Enhanced Request-based Tracing

Trazar URLS específicas • ¿Qué es?

– La posibilidad de trazar solo URLs específicas en vez de todas las URLs

• ¿Cómo usarlo…?1. Establecer la propiedad TraceUriPrefix del sitio

2. Establecer el flag UseUrlFilter en IIS: WWW Server provider

3. 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/Adsutil set w3svc/1/TraceUriPrefixTraceUriPrefix = “/*.aspx” = “/*.aspx”

““IIS: WWW Server”IIS: WWW Server” 0x00000000x000000011 0 0

““IIS: Active Server Pages (ASP)”IIS: Active Server Pages (ASP)” 0xFFFFFFFF 50xFFFFFFFF 5

Page 28: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Enhanced Request-based TracingResolviendo 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:• 0x00000004 => Eventos de Autenticación• 0x00000002 => Eventos de Seguridad/Autorización• Verbosity = 5 => Todos los eventos anteriores

““IIS: WWW Server”IIS: WWW Server” 0x00000000x000000066 55

Page 29: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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.

Page 30: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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 C:\Logman start CurrReqDump –p “IIS: Request Monitor”“IIS: Request Monitor” -ets -ets

Page 31: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 32: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 33: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 34: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 35: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

demo

Page 36: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

LogParser

• Introducción a LogParser– Formatos de entrada y de salida– Funciones– Plantillas de salida– Cómo empezar…

• LogParser 2.2– El nuevo formato de salida ‘chart’– CheckPoint

Page 37: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Log Parser

es…• Una herramientas gratuita, aplicación

independiente– Versión 2.1: www.microsoft.com/download, buscar por

“IIS 6.0 Resource Kit Tools”– Versión 2.0: www.microsoft.com/download, buscar por

“Log Parser”

• Desarrollada por Gabriele Giuseppini, del equipo de IIS

• No soportada oficialmente (www.logparser.com)• Disponible de dos formas:

– .exe en línea de comandos– Objeto COM– No hay ningún GUI por el momento

Page 38: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

LogParser

Conceptos clave• Log Parser requiere…

– Formato de entrada• [+opciones]

– Consulta– Formato de salida

• [+opciones]

– [+opciones]

• Lenguaje de consulta– Soporte la mayoría de la sintaxis de SQL– Extiende el lenguaje con funciones adicionales

Page 39: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

LogParser

Funciones• Para obtener una lista de las funciones

– [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]

Page 40: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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\ex040308.log

Page 41: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

LogParser

Plantillas de salida• Logparser –h –o: TPL• Formada por:

– Cabecera– Cuerpo– Pie

• Mejora el aspecto del resultado

Page 42: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 43: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 44: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

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

Page 45: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

demo

Page 46: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

Q&[email protected]

om

www.plainconcepts.com

www.microsoft.com/spain/technet

Page 47: Iván González Microsoft MVP – Windows Server - IIS ivan@plainconcepts.com IIS 6.0 Administración Avanzada.

© 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.