Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Monitorización DeSymfony

1,027 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Monitorización DeSymfony

  1. 1. Cristina QuintanaSoy de CórdobaJava Sun CertifiedProgrammerZend Certified EngineerPHP 5.3
  2. 2. Monitorización
  3. 3. Monitorización¿Por qué?
  4. 4. BuenoConoceríamos el estado de las piezasvitales del sistema.Monitorización¿Por qué?
  5. 5. Bueno BonitoAnticiparnos a errores.Mínimos tiempos de respuesta a fallos.Monitorización¿Por qué?
  6. 6. Bueno Bonito BaratoPrevenimos perder dinero con:•  cortes de servicio•  estructuras mal dimensionadas•  estructuras mal configuradasMonitorización¿Por qué?
  7. 7. MonitorizaciónObjetivos
  8. 8. MonitorizaciónObjetivosIdentificarObtenerUtilizar
  9. 9. Ejemplo de infraestructra
  10. 10. Ejemplode infraestructuraEsquema básico
  11. 11. Ejemplode infraestructuraAtentos...Queremos saber:•  el estado de los servicios•  qué ven los nodos entre ellos•  qué ve el usuario
  12. 12. Ejemplode infraestructuraComprobando nodos
  13. 13. Ejemplode infraestructuraAtentos... ¿a qué?Queremos saber:•  el estado de los servicios•  qué ven los nodos entre ellos•  qué ve el usuario
  14. 14. Ejemplode infraestructuraEsto también, ¿eh?
  15. 15. Ejemplode infraestructuraAhora... ¡sí!
  16. 16. Ejemplode infraestructuraAtentos... ¿a qué?Queremos saber:•  el estado de los servicios•  qué ven los nodos entre ellos•  qué ve el usuario
  17. 17. Ejemplode infraestructuraCasi... pero no
  18. 18. Ejemplode infraestructuraVerdad verdadera
  19. 19. ¿Cómo monitorizar?
  20. 20. ¿Cómo monitorizar?Niveles de seguimientoInfraestructuraAplicaciónFuncional
  21. 21. ¿Cómo monitorizar?Socket / puertosA nivel de infraestructura
  22. 22. ¿Cómo monitorizar?Socket / puertosA nivel de infraestructuraSe debe monitorizar todo aquello que tenga un socket, que seanecesario para el funcionamiento de la plataforma.server$ netstat -lnpt(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)Active Internet connection (only servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:902 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTENtcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
  23. 23. ¿Cómo monitorizar?ProcesosA nivel de infraestructuraroot 31905 1 0 May28 ? 00:00:00 nginx: master process /usr/sbin nginxwww-data 31906 31905 0 May28 ? 00:03:11 nginx: worker processwww-data 31907 31905 0 May28 ? 00:01:48 nginx: worker processwww-data 31908 31905 0 May28 ? 00:01:28 nginx: worker processwww-data 31909 31905 0 May28 ? 00:03:05 nginx: worker processSe debe controlar, por ejemplo, que el número de procesosno sea excesivo.
  24. 24. ¿Cómo monitorizar?StatusA nivel de infraestructuraApache, nginx o lighttpd tienen módulos que muestran elestado del servidor a través de una url.Estos datos pueden ser analizados por nagios.
  25. 25. ¿Cómo monitorizar?Third partiesA nivel de infraestructuraChequeo de las conexiones con plataformas externas,como servicios de correo o de envío de sms.•  Puertos de escucha•  Funciones por api•  ...
  26. 26. ¿Cómo monitorizar?HERRAMIENTASA nivel de infraestructuraCactiNagiosNew RelicIcingaSplunk
  27. 27. ¿Cómo monitorizar?HERRAMIENTASIcinga
  28. 28. ¿Cómo monitorizar?HERRAMIENTASIcinga
  29. 29. ¿Cómo monitorizar?Niveles de seguimientoInfraestructuraAplicaciónFuncional
  30. 30. ¿Cómo monitorizar?Probes end2endA nivel de aplicaciónChequeo de que la aplicación devuelve lo que esperamos.•  Medición de tiempos de respuesta•  ...
  31. 31. ¿Cómo monitorizar?LogsA nivel de aplicaciónComplemento de la anterior.•  Seguimiento de los logs de la app•  Sequimiento de los logs de máquinas
  32. 32. ¿Cómo monitorizar?HERRAMIENTASA nivel de aplicaciónNew relicMonologDesarrollo deOfertix
  33. 33. ¿Cómo monitorizar?HERRAMIENTASA nivel de aplicaciónNew Relic
  34. 34. ¿Cómo monitorizar?HERRAMIENTASNew Relic
  35. 35. ¿Cómo monitorizar?Niveles de seguimientoInfraestructuraAplicaciónFuncional
  36. 36. ¿Cómo monitorizar?HERRAMIENTASA nivel de funcionalPingdom Behat
  37. 37. ¿Cómo monitorizar?HERRAMIENTASBehatserver$ bin/behat features/search.featureFeature: Buscar en el museoVamos a buscar arteScenario: Buscar # ../search.feature:4Given I am on "http://www.museothyssen.org/thyssen/home" # ::visit()When I fill in "buscar_thyssen" with "tintoretto" # ::fillField()And I press "sa" # ::pressButton()Then I should see "andrea" # ::assetPageContainsText()1 scenario (1 passed)4 steps (4 passed)0m1.333s
  38. 38. ¿Cómo monitorizar?HERRAMIENTASBehat<form method="post" action="http://www.museothyssen.org/validation/resultados_buscador" id="cse-search-box"><fieldset><label for="buscar_thyssen"><input type="text" id="buscar_thyssen" name="q"/><input type="submit" name="sa" alt="Enviar" src="http://www.museothyssen.org/img/flecha33.png" id="submit_buscar_thyssen"value=""/></fieldset></form>Given I am on "http://www.museothyssen.org/thyssen/home"
  39. 39. ¿Cómo monitorizar?HERRAMIENTASBehat<form method="post" action="http://www.museothyssen.org/validation/resultados_buscador" id="cse-search-box"><fieldset><label for="buscar_thyssen"><input type="text" id="buscar_thyssen" name="q"/><input type="submit" name="sa" alt="Enviar" src="http://www.museothyssen.org/img/flecha33.png" id="submit_buscar_thyssen"value=""/></fieldset></form>When I fill in "buscar_thyssen" with "tintoretto"
  40. 40. ¿Cómo monitorizar?HERRAMIENTASBehat<form method="post" action="http://www.museothyssen.org/validation/resultados_buscador" id="cse-search-box"><fieldset><label for="buscar_thyssen"><input type="text" id="buscar_thyssen" name="q"/><input type="submit" name="sa" alt="Enviar" src="http://www.museothyssen.org/img/flecha33.png" id="submit_buscar_thyssen"value=""/></fieldset></form>And I press "sa"
  41. 41. ¿Cómo monitorizar?HERRAMIENTASBehat<ul class="listadoCalendario"><li><a title=" <strong>TINTORETTO</strong>" href="http://www.museothyssen.org/thyssen/ficha_artista/558"><strong>TINTORETTO</strong><span>Andrea Schiavone.<strong>TINTORETTO</strong>empezó a ejercer como maestro independiente en 1539,cultivando en esos años asuntos religiosos,...</span></a></li></ul>Then I should see "andrea"
  42. 42. ¿Cómo monitorizar?HERRAMIENTAS
  43. 43. ¿Cómo monitorizar?HERRAMIENTASPingdom
  44. 44. ¿Cómo monitorizar?HERRAMIENTASNew RelicPingdom
  45. 45. ¿Cómo monitorizar?HERRAMIENTAS
  46. 46. Casos
  47. 47. CasosSUPUESTO 1Infraestructura:o  Varnisho  Varias máquinas virtuales (webserver)Problema:o  Una de cada 5 páginas vistas, por ejemplose queda en blanco.
  48. 48. CasosPágina en blancoSupuesto 1
  49. 49. CasosSupuesto 1
  50. 50. CasosSupuesto 1
  51. 51. CasosPágina en blancoSupuesto 1
  52. 52. Casos¿La caché de symfony de una de las máquinasvirtuales no se ha generado correctamente?Unas veces si y otras no, ¿algo en una máquina?Supuesto 1CAUSA
  53. 53. CasosConsulta de logs de symfony.Supuesto 1DETECCIÓN DEL PROBLEMA
  54. 54. Casos•  Parseo del fichero según criterios debúsqueda.•  Alertas a usuarios.Supuesto 1FUTURA MONITORIZACIÓN
  55. 55. CasosSupuesto 1EJEMPLO DE NOTIFICACIÓN
  56. 56. CasosSupuesto 1EJEMPLO DE NOTIFICACIÓN
  57. 57. CasosVARIANTE DEL SUPUESTO 1
  58. 58. CasosSUPUESTO 2No login
  59. 59. CasosSUPUESTO 2Login
  60. 60. CasosSUPUESTO 2La visualización de esta pequeña parte depantalla, cambia aleatoriamente.
  61. 61. CasosCAUSA¿Tener varios varnish?¿APC?¿Security.yml?...¿Mala suerte?Supuesto 2
  62. 62. CasosFactor humanoSupuesto 2DETECCIÓN DEL PROBLEMA
  63. 63. CasosSupuesto 2POSIBLE SOLUCIÓNCambiar el hash por el que se cachea esarequest en Varnish, mediante una cookie.La cookie se crea y destruye en función delacceso de cada usuario.La cookie contiene información reproducible porel usuario.
  64. 64. Curiosidades
  65. 65. CuriosidadesQuerido hacker,
  66. 66. CuriosidadesXXX - - [31/May/2013:11:00:29 -0400] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 404 239 "-" "ZmEu" "-" 0/905XXX - - [31/May/2013:11:00:30 -0400] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 226 "-" "ZmEu" "-" 0/442XXX - - [31/May/2013:11:00:30 -0400] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 226 "-" "ZmEu" "-" 0/341XXX - - [31/May/2013:11:00:31 -0400] "GET /admin/scripts/setup.php HTTP/1.1" 404221 "-" "ZmEu" "-" 0/312XXX - - [31/May/2013:11:00:31 -0400] "GET /pma/scripts/setup.php HTTP/1.1" 404219 "-" "ZmEu" "-" 0/370XXX - - [31/May/2013:11:00:32 -0400] "GET /mysql/scripts/setup.php HTTP/1.1" 404221 "-" "ZmEu" "-" 0/895¡Ay truhán! que poco me conoces...
  67. 67. CuriosidadesQuerido hacker, Toda relación es pasajera. Te enseñan lo que necesitassaber, y luego se van paracontinuar su camino. Se te quiere...
  68. 68. Preguntas
  69. 69. Muchas gracias@jautuquintana.cano@gmail.comhttp://es.linkedin.com/in/cristinaquintanacanohttp://joind.in/talk/view/8850Contacto

×