A partir de Windows 7/2008R2 vino una tool llamada netsh para realizar traces de nuestras placas de red (entre otras cosas de este comando).
http://technet.microsoft.com/en-us/library/dd878517%28v=ws.10%29.aspx
Aplica a: Windows Server 2012|2012 R2, Windows 8|8.1, Windows Server 2008R2, Windows 7
Probado sobre: Sharepoint 2013 SP1, CU agosto, Windows Server 2012, Azure VM (A6 instance)
Algunas ventajas de este comando:
- No instalo nada en mis servers, ya viene incluido dentro de mi SO
- Permite tracing persistentes, esto es, incluso con reboots, el trace sigue funcionando
- Nos permite enfocar el trace en un escenario específico (Ej: dns, lan, dhcp, etc)
- Los paquetes generados del trace (ETL) pueden ser abiertos por Wireshark, Network Monitor o Message Analyzer
- Podemos ver reportes rápidos del trace (.cab)
Primero vemos que escenarios (conjunto de providers de trace) tenemos:
netsh trace show scenarios
Si nos interesa algún escenarios específico, podemos ejecutar
netsh trace show scenario lan
Pueden tener más providers con este comando: netsh trace show providers >c:\providers.txt
Revisando este archivo, veo que hay providers de Sharepoint
{0119F589-72D7-4EC3-ADF5-1F082061E832} Microsoft-SharePoint Products-Web Content Management
{137DEDCF-DAEC-4E65-A6BC-02212AECD32F} Microsoft-SharePoint Products-Office Automation Services
{1C415899-58B3-4BFC-9236-105E7FD38719} Microsoft-SharePoint Products-SharePoint Foundation Search
{252BB337-A7F5-413F-9B03-F36FA4F18EF8} Microsoft-SharePoint Products-Business Connectivity Services
{278E40D0-FDAA-4EB4-AB6B-9E0AD6BDBE79} Microsoft-SharePoint Products-Excel Services Application
{38BB51E9-CF75-40CA-92CC-49E22F935F65} Microsoft-SharePoint Products-Visio Graphics Service
{4CB0A010-80C2-4CDF-BB9D-8B7E923FAC8F} Microsoft-SharePoint Products-Access Services 2010
{4F33CA13-30A4-4AF2-AEB7-DE59AA6C2563} Microsoft-SharePoint Products-Services Infrastructure
{5311B1CA-DDE7-408B-A097-F7A1BF5BB170} Microsoft-SharePoint Products-Access Services
{6FB10E7F-F8EF-44A7-9678-25744648F92C} Microsoft-SharePoint Products-Document Conversions
{6FB7E0CD-52E7-47DD-997A-241563931FC2} Microsoft-SharePoint Products-SharePoint Foundation
{73541538-24DA-4282-AE1C-3A6321C23FB8} Microsoft-SharePoint Products-Secure Store Service
{8B3DDD3D-2B09-4669-BF81-E2D6921FEEEA} Microsoft-SharePoint Products-SharePoint Portal Server
{A3499A35-DB34-421A-94FC-4D76522BEAB3} Microsoft-SharePoint Products-InfoPath Forms Services
{A7CD5295-CBBA-4DCA-8B67-D5BE061B6FAE} Microsoft-SharePoint Products-PerformancePoint Service
{B9499A35-DB34-421A-94FC-5A8DBBBC4228} Microsoft-SharePoint Products-Education
{BAFFAE3D-E80A-4219-B41F-5760B7CEC473} Microsoft-SharePoint Products-Shared
{C33B4F2A-64E9-4B39-BD72-F0C2F27A619A} Microsoft-SharePoint Products-SharePoint Server
{C544CCCA-DCAA-416D-B91B-E639B8B28589} Microsoft-SharePoint Products-Word Automation Services
{C8263AFE-83A5-448C-878C-1E5F5D1C4252} Microsoft-SharePoint Products-SharePoint Server Search
{C8A9829C-C62B-46CD-AACF-95788DE23730} Microsoft-SharePoint Products-SharePoint Translation Services
{D191778A-DFE4-11DE-A777-F8AD55D89593} SharePoint Express
{E0E675CD-EA07-450D-9841-786EAC9A9812} Microsoft-SharePoint Products-eApproval
{F78D66EC-09A9-42A2-AC7A-5EE2062DE7E4} Microsoft-SharePoint Products-Document Management Server
Si yo quisiera ver un provider específico, ejecuto lo siguiente:
netsh trace show provider name="Microsoft-SharePoint Products-SharePoint Portal Server"
Estos providers nos permite enforcarnos en un trace espcífico, ej: search de Sharepoint
Ej: netsh trace start persistent=yes capture=yes tracefile=c:\temp\nettrace-search.etl" provider="Microsoft-SharePoint Products-SharePoint Server Search"
En este post, no me voy a enfocar en un escenario específico, sólo haré un trace de todo el tráfico del servidor de Sharepoint
Para ello ejecuto el siguiente comando:
netsh trace start persistent=yes capture=yes tracefile=C:\Temp\nettrace-sharepoint.etl
recuerda revisar que tengas espacio suficiente en el directorio. Por default usará 250 MB.
Acá tenés todos los parámetros del comando: http://technet.microsoft.com/en-us/library/dd878517%28v=ws.10%29.aspx#bkmk_traceStart
http://msdn.microsoft.com/en-us/library/windows/desktop/dd569142%28v=vs.85%29.aspx
Considera en principio los siguientes: level, maxSize
Ahora navego un poco el sitio de Sharepoint, y después de 10 minutos ejecuto el siguiente comando para detenerlo.
netsh trace stop
Veo que se generaron los dos archivos
Si yo ingreso al archivo .cab, veo un montón de archivos.
Si abro el archivo report.html (selecciona todos los files –> extract), nos muestra un montón de información del trace
Si selecciono un item, por ejemplo “DNS Information” veo más info
Los que nos importa es ver el archivo .etl con alguna tool de red. Exporta tu archivo .etl a tu máquina, y abre el archivo con Wireshark, Message Analyzer o Network Monitor
Por ejemplo mediante Message Analyzer (Browse)
Después selecciono Analysis Grid/Sequence Match
Veo el diagnóstico de los paquetes de red
Ej: veo 3 segmentos perdidos
Si cambio la vista “Analysis Grid”
Veo todos los paquetes del trace
Si yo aplico un filtro (tcp.port==80)
Si yo le aplico otro filtro (add destination to filter)
y aplico el filtro (cambia or por and)
Veo lo que me interesaba, filtrar los paquetes relacionados a mi sitio de Sharepoint
Cómo pueden ver tengo un montón de paquetes con status 401
Si yo me enfoco en un message number (648), veo que hubo dos paquetes en esta operación
Message Number 648: mi solicitud al Sharepoint montado sobre Azure
Algunos parámetros útiles del message number:
Method: Get
Host: chrissp2013dev.cloudpapp.net
Referer Url y User-Agent
Message Number 649: la respuesta del servidor de Sharepoint
Algunos parámetros útiles del message number:
StatusCode: 401 (unauthorized)
MicrosoftSharePointTeamServices: 15.0.0.4551 (es la versión de Sharepoint que está corriendo sobre Azure IaaS)
request-id o SPRequestGuid: 9094b39c-ee71-007a-0000-011f7b37ee10 (es el GUID asociado en los ULS logs)
Si yo reviso los logs mediante ULS Viewer, veo la solicutud
SPIisLatency: 0 (es el queue time del IIS antes de pasarle la solicitud a Sharepoint)
SPRequestDuration: 3 (es el tiempo que tardo Sharepoint en procesar la solicitud )
La misma información la pueden procesar con Wireshark o Network Monitor.
Para mayor información sobre netsh, consulta este post, muy buen repaso por todos los componentes del trace: http://chentiangemalc.wordpress.com/2012/02/22/netsh-traceuse-it/