Pandora FMS: Plugin de monitorizacin Selenium

  • Published on
    07-Jul-2015

  • View
    296

  • Download
    3

DESCRIPTION

Este plugin utiliza la herramienta selenium para realizar simulaciones de navegacin web utilizando un navegador web normal. El plugin genera dos modulos (de tipo generic_proc y generic_data) por cada tarea. Para ms informacin pueden visitar la siguiente pagina web: http://pandorafms.com/index.php?sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=426

Transcript

  • 1. Pandora FMS Manual Administrador Plugin Selenium (Navegacin Web)

2. PandoraFMSSelenium ArticaSolucionesTecnolgicas20052013 ndice de contenido 1Histrico de cambios..........................................................................................................................3 2Introduccin........................................................................................................................................4 3Matriz de compatibilidad....................................................................................................................5 4Documentacin que debe entregar el rea que requiere la monitorizacin.......................................6 5Mdulos del plugin.............................................................................................................................7 6Selenium.............................................................................................................................................8 6.1.OpenSUSE.................................................................................................................................8 6.1.1.Requisitos del sistema........................................................................................................8 6.1.2.Instalacin de Selenium.....................................................................................................8 6.1.3.Ejecucin de Selenium.......................................................................................................9 6.2.Windows..................................................................................................................................11 6.2.1.Requisitos del sistema......................................................................................................11 6.2.2.Instalacin de Selenium...................................................................................................11 6.2.3.Ejecucin de Selenium.....................................................................................................12 7Plugin de Selenium en agente pandora fms......................................................................................15 7.1.Configuracin del Plugin de Selenium....................................................................................15 8Firefox extensin de Selenium para PandoraFMS...........................................................................17 8.1.Instalacin de la extensin de Selenium en Firefox................................................................17 8.2.Uso de la extensin de Selenium en Firefox............................................................................19 9Anexo: Scripts de monitorizacin web.............................................................................................22 9.1.Ejemplos de scripts de monitorizacin....................................................................................22 9.2.Lista de comandos de scripts de monitorizacin.....................................................................23 3. 1HISTRICODECAMBIOS Fecha Autor Cambio Versin 21/01/13 Miguel de Dios Primera versin del documento v1r1 Page 3 4. 2INTRODUCCIN Estedocumentotienecomoobjetivoladescripcindelamonitorizacinusandolaherramienta SeleniumintegradaenPandoraFMS. Paraellodisponemosdetresherramientas: Selenium(http://seleniumhq.org/)herramientaparahacersimulacionesdenavegacinweb usandounnavegadorwebestandar. PlugindeSeleniumdePandoraAgent,unpluginparalosagentesdePandoraFMSdeLinux quegeneraporcadatareaenelficheroespecificado,dosmdulosunoelresultadodela tareayelotroeltiempoquehatardadoenrealizaresatareaenSelenium. SeleniumIDEforPandoraFMS,unaextensinparaFirefoxparagrabarunanavegacin comounatareaparaelplugindeSeleniumdePandoraAgent. Page 4 5. 3MATRIZDECOMPATIBILIDAD Sistemasdondesehaprobado SeleniumServerStandalone2.28.0 Java7 Sistemasdondedeberafuncionar SeleniumServerStandalone2.x Java7.x Page 5 6. 4DOCUMENTACINQUEDEBEENTREGARELREAQUEREQUIERELA MONITORIZACIN Ladocumentacinaentregarparalamonitorizacinserunaarchivoconlasesincapturadaporel grabadordenavegacinqueserlafuentededatosparalaejecucindelplugin.Lacreacindeeste archivoseexlicamsabajo. Page 6 7. 5MDULOSDELPLUGIN ElplugindeSeleniumporcadatareagenera2mdulos: generic_proc:conelnombrequellevelatareaentask_beginyseraelresultadodela simulacindelanavegacin. generic_data:quellevaelconteodetiempoquetardaenrealizarlatarea,siresultapositiva, sinonoloenva. Page 7 8. 6SELENIUM Seleniumcomohemosdichoesunaherramientadesimulacindenavegacinweb,quelarealiza tomandoelcontroldeunnavegadoryejecutandopasoapasolastareas.Elseleniumseejecuta comoundemonioensegundoplanoyrealizalacomunicacinporelpuerto4444porloquepuede estarenunamquinadistintaalPandoraAgentencargadodelplugindeSelenium. 6.1.OpenSUSE 6.1.1.Requisitosdelsistema LosrequisitosdelsistemaparalainstalacinenunaOpenSUSE12.2: elsubsistemagrficoXorgconcapacidaddeloguearsegrficamente. MaquinavirtualJava. AccesoalpuertoTCP4444desdelamquinaquetieneelagentequeejecutaraelplugin. Accesoanavegacinwebdesdeestamquinahalaswebs(intranetointernet)quese pretendenejecutartareasdemonitorizacinweb. NavegadorFirefoxoChromeuotrosoportadoporSelenium(ojohayqueespecificarloenel plugindePandoraAgent). 6.1.2.InstalacindeSelenium SiestasusandoOpenSUSE12.2porproblemasquedalacorporacinOraclealasempresasy organizacionesdesoftwarelibre,noestadisponibleelpaquetedeJavaenlosrepositorios oficialesdeOpenSUSEperonoobstantelopuedesdescargardesdelasiguienteURL: http://www.java.com/es/download/linux_manual.jsp?locale=es&host=www.java.com DescargandolaversinpaquetizadaenRPMconellink(LinuxRPM)situOpenSUSEesde 32bitsytienesinstaladounsistemade64bitsconellink(Linuxx64RPM). Yparainstalarlosoloesnecesarioejecutarconpermisosdeadministrador: sudorpmivhjre7u10linuxi586.rpm YdescargarelpaquetejardeSeleniumdesdelaweboficialen: Page 8 9. http://seleniumhq.org/download/ Quedentrodeestapginalopuedesencontrarenlaseccinconelsiguientenombre: SeleniumServer(formerlytheSeleniumRCServer) 6.1.3.EjecucindeSelenium ParaejecutarSeleniumtansolobastatenerunasesingrficaenlamaquinaabierta(directamente enlamaquinaoviaVNC)yejecutar: javajarseleniumserverstandalone2.28.0.jar ParatestearquefuncionaSeleniumbastaconentrarunnavegadorenlamaquinaalaURL http://localhost:4444/wd/hub Ysetienequeveralgoparecidoalasiguientecapturadeimagen: Page 9 10. YcrearunaSessionconelnavegadorquesevausarparalamonitorizacinWebcomosemuestra enlacapturadepantalla: YtetienequeaparecerunasesinenlalistadeSessionsenestapgina,talcomomuestrala siguientecapturadepantalla. Page 10 11. Yademastehabrejecutadounnavegador(enmicasounFirefox)enlamaquina. UnaveztesteadoelSelenium,puedesdestruirlasesinyaqueelplugindelAgentedePandorase encargaradecrearlasesionesyejecutarlaselautomaticamente. 6.2.Windows 6.2.1.Requisitosdelsistema Losrequisitosdelsistema MaquinavirtualJava. AccesoalpuertoTCP4444desdelamquinaquetieneelagentequeejecutaraelplugin. Accesoanavegacinwebdesdeestamquinahalaswebs(intranetointernet)quese pretendenejecutartareasdemonitorizacinweb. NavegadorFirefoxoChromeuotrosoportadoporSelenium(ojohayqueespecificarloenel plugindePandoraAgent). Para navegadores distintos a Firefox, es necesario instalar los driver para cada navegador. 6.2.2.InstalacindeSelenium LospasosparainstalarSeleniumenMicrosoftWindows. PorproblemasdelacorporacinMicrosoftconOracle,noestadisponibleelpaquetedeJava enlosrepositoriosoficialesdeOpenSUSEperonoobstantelopuedesdescargardesdela siguienteURL: http://www.java.com YdescargarelpaquetejardeSeleniumdesdelaweboficialen: http://seleniumhq.org/download/ Quedentrodeestapginalopuedesencontrarenlaseccinconelsiguientenombre: SeleniumServer(formerlytheSeleniumRCServer) ParaejecutarlamonitorizacinenelnavegadorFirefoxnoesnecesarionada,salvotenerlo instaladoenestamquina. Page 11 12. Paraejecutarlamonitorizacindenavegacinwebenotrosnavegadoresesnecesario instalareldriverporejemploparausarelMicrosoftInternetExplorer(navegadorqueno cumplelosestndareswebperoesampliamenteusadoenentornosdeescritorioperonoen latelefonadeltimageneracinquecasitodossonderivadosdelenginelibreWebkit). http://code.google.com/p/selenium/downloads/list http://code.google.com/p/selenium/downloads/detail? name=IEDriverServer_Win32_2.29.0.zip&can=2&q = YcopiarelejecutableaIEDriverServer.exealPATHdeejecucinquetengaelwindowsdela mquina. AdemasporundefectoenMicrosoftInternetExploreresnecesariodeschequearentodos losperfilesdeseguridad(Internet,LocalIntranet,SitiosdeconfianzaySitiosRestringidos) laopcinHabilitarModoProtegidocomomuestralacapturadepantalla: 6.2.3.EjecucindeSelenium ParaejecutarSeleniumtansolobastatenerunasesingrficaenlamaquinaabierta(directamente Page 12 13. enlamaquinaoviaVNC)yejecutar,segnlaversindewindowstepedirconfirmarlospermisos deejecucindeljar,ascomoporejemploelpasaratravesdelfirewalldeMicrosoftWindows: javajarseleniumserverstandalone2.28.0.jar ParatestearquefuncionaSeleniumbastaconentrarunnavegadorenlamaquinaalaURL http://localhost:4444/wd/hub Ysetienequeveralgoparecidoalasiguientecapturadeimagen: YcrearunaSessionconelnavegadorquesevausarparalamonitorizacinWebcomosemuestra enlacapturadepantalla: Page 13 14. YtetienequeaparecerunasesinenlalistadeSessionsenestapgina,talcomomuestrala siguientecapturadepantalla. Yademastehabrejecutadounnavegador(enmicasounFirefox)enlamaquina. UnaveztesteadoelSelenium,puedesdestruirlasesinyaqueelplugindelAgentede Page 14 15. Pandoraseencargaradecrearlasesionesyejecutarlaselautomticamente. 7PLUGINDESELENIUMENAGENTEPANDORAFMS EnlamaquinaquetieneelagentedePandoraFMSdebetenerinstaladoelpaqueteEnterprisedel Agente.Yportantoeneldirectorio: /usr/share/pandora_agent/plugins Tendrquetenerelficherodeplugin: SeleniumPlugin.pl ElplugindeSeleniumporcadatareagenera2mdulos: generic_proc:conelnombrequellevelatareaentask_beginyseraelresultadodela simulacindelanavegacin. generic_data:quellevaelconteodetiempoquetardaenrealizarlatarea,siresultapositiva, sinonoloenva. Page 15 16. 7.1.ConfiguracindelPlugindeSelenium DesdelaedicindeconfiguracinremotadelagenteenlaconsoladePandoracomovesenla capturadepantalla: Yaadirlalineaparecidaalaqueestaresaltadaporejemplo: module_pluginSeleniumPlugin.pl/var/selenium_plugin_example192.168.70.1984444*iexplore Dondees: module_plugin SeleniumPlugin.pl Dondelosparametrosson: path_script_tareas_monitorizacin:elpathalscriptdetareasquetienequetenerpermisode lecturadesdeelagentedePandora. ip_selenium:laipdelamaquinaqueestaejecutandoelSelenium puerto_selenium:elpuertodelservidordeSelenium,normalmenteesel4444. navegador:elnavegadordonderealizarlasimulacindenavegacin,tienesdosopciones *iexplore(solowindows)y*firefox(ambos,necesariotenerloinstaladoenlamquinade Selenium). Elscriptdelatareasepuedecreardeformamanualconunsimpleeditordetextooconla herramientaqueexplicaremosenposteriorescaptulosdeestemanual,laextensindeFirefoxde SeleniumparaPandoraFMS.Noobstantetendrunanexoconinformacinparacreardesdeun Page 16 17. editordetextooeditarunocreadoporlaextensindeFirefox. 8FIREFOXEXTENSINDESELENIUMPARAPANDORAFMS LaextensindeFirefoxdeSeleniumtedaunaherramientaparagenerarlasimulacinde navegacin,grabandolanavegacinquerealices. 8.1.InstalacindelaextensindeSeleniumenFirefox Laextensin,latendrenunficheroXPI,esnecesariotenerunFirefoxconunaversinigualo superiorala4. ParainstalarlotienequeiraMen Herramientas Complementoscomoseveenlacapturade pantalla. Page 17 18. YenlaventanademdulosenelBotndeopciones Instalarcomplementodesdearchivo...en laventanadedialogoseleccioneelficheroXPIdelaextensin. Page 18 19. FirefoxlemostraraunaventanadeconfirmacindeseguridadconelbotndeInstalardesactivado poruntiempodeunossegundosparaquesetomesutiempoenleerelmensajedeadvertenciade estaventana,comosemuestraenlacapturadepantallasiguiente.Estasventanassoncomunes cuandoseinstalacualquierextensinfueradelapginadeextensionesdeFirefoxoficial. DespusdeestolepedirquereinicieelFirefox. Ysihasalidocorrectamentelainstalacinestardisponibleenelmen: Page 19 20. 8.2.UsodelaextensindeSeleniumenFirefox Laherramientaesbastantefcil,agrandesrasgosesabrirlaherramienta,pulsarelbotndegrabar, navegar,darlealstopyguardarloenunfichero,noobstantevamosaexplicarloconmasdetalle. ParaactivarlaextensindeSeleniumesenMen Herramientas SeleniumIDEfor PandoraFMSytesaldrunaventanaquevemosenlasiguientecapturadepantalla.Unaventana complejaperoquesoloseusantrescontroles. Page 20 21. Loscontrolesqueusarasson: Botndegrabar:elquedelapartederechadearriba,cuandoestaactivo,todaslasacciones denavegacinseirngrabandoenlaventana. Listadeacciones:laqueestaenmediodelaventana,estaseirallenandoconlasacciones denavegacinquerealices,inclusosepuedeneditaroaadirmasdesdeaqu. MenArchivo:arribasuperioralaizquierda,simplementehayquedarleaSavetestcase unavezterminadalanavegacin. Desdelaversinv2r1delplugindePandoraSeleniumparaFirefox,guardaalavezdostiposde ficheros,elprimerodeellosesunficheroenformatoPandoraparausarconelplugindeagentede SeleniumparaPandora,yelsegundoesunficheroenformatoseleniumparaelplugindefirefox.El segundoficherosepuedeusarparaampliaroeditarfcilmentedesdefirefox Esinteresantequelaopcindechequearqueexisteundeterminadotextoenlawebqueseesta probandoamonitorizarcomoporejemplo,enlanavegacinwebdeunformularioquecuandose finalizacorrectamentedevuelveuntextocomooperacincorrectaoenunformulariode bsquedaquesalgaundeterminadoproductoenlabsqueda.Ydesdeelmencontextualunavez seleccionadountextotieneesaopcinparaaadiresepasoalscript,comopuedeverenla siguientecaptura. . Page 21 22. Page 22 23. 9ANEXO:SCRIPTSDEMONITORIZACINWEB Losscriptsdemonitorizacinwebsonentextoplanoyseejecutandeformasecuencial.Hayque tenerencuentaquenotodosloscomandosdelaextensindeFirefoxestansoportados,perolos mascomunesdeSeleniumestn,ademaslaextensintambinnosoportatodosloscomandosde monitorizacin. 9.1.Ejemplosdescriptsdemonitorizacin TodosestngeneradosporlaextensindeFirefox: ChequearqueenlaDemodePandoraFMSestaelagenteSummarizeEnergyDataenlalistade agentesyenestadodesconocido. Sepuededestacardelcdigoconenfoqueeducativolassiguienteslineasdecomandos: Losscriptsaunqueseanvariosenunsolofichero,comienzanconunalineadecomando task_beginytask_end,ademastask_begintienedeparmetroelnombredelscriptyde losdosmdulosquevacrear(unodeestadoodedatosextradosdelaweb,otroconel tiempoensegundoquehaduradolamonitorizacinweb),cuandoelscriptesgeneradopor laextensindeFirefoxeslaURLcompletadelasimulacindelanavegacin. Page 23 task_beginhttp://firefly.artica.es/pandora_demo/index.php openhttp://firefly.artica.es/pandora_demo/index.php typeid=nick,demo typeid=pass,demo clickid=imageLogin1 wait_for_page_to_load5000 clickcss=img.toggle clicklink=Vistadeagentes wait_for_page_to_load5000 clickid=group_id selectid=group_id,label=regexp:s+EnergyEfficiency wait_for_page_to_load5000 clickcss=option[value="19"] clickid=status clickid=status selectid=status,label=Desconocido wait_for_page_to_load5000 clickid=textsearch typeid=textsearch,S clickid=submitsrcbutton wait_for_page_to_load5000 is_text_presentSummarizeEnergyData task_end 24. Siempredespusdetask_beginvieneelcomandoopenquecontienecomoparmetrola URLcompletadondeseinicialanavegacin. Comandoscomotypeoclickoselectsuelenllevardosparmetroselprimeroesel objetivodelaaccin(sueleserunidhtmluotroelementounequivocamenteidentificaese elementoaniveldecdigohtml)yelsegundoseparadoporunaelcarctercoma(ojosin espaciosenblanco)eselvalorqueseintroduceenlacajadetextooseseleccionasiesuna listadesplegable. Tambinalolargodelanavegacinsevacambiandodeunapginaaotradentrodeun mismodominioono,esoconllevauntiempoenloquecargalaspginas,poresoes necesarioponerentremediaselcomandowait_for_page_to_loadseguidodelparmetro demilisegundosqueesperarantesdedevolverqueelscriptsehaejecutadomal,hayque tenerencuentaaunquetengaunparmetrodetiempoaltoesonoafectaalmdulode tiempoquetardaenejecutarlamonitorizacinweb,soloesuntiempodeesperadecargar correctamentelaweb. Normalmenteparafinalizartendruncomandois_text_presentseguidodeltextoo expresinregularquequierechequearqueexisteenlawebmonitorizada.Aunquetambin puedenoexistirestecomandoporquesolodeseachequearquelawebesnavegableynose quedacolgadacargandoohayunlinkroto,otambinquiereextraeruntextodelaweb, peroqueveremosmasadelanteenesteanexoenlalistadecomandos. 9.2.Listadecomandosdescriptsdemonitorizacin LossiguientescomandosonlosqueestnsoportadosporelplugindeSeleniumenelagentede Pandora,recuerdoquealgunosnoestnsoportadosporlaextensinFirefox. Comentario:cualquierlineaqueempiezaporelcarcter#. answer_on_next_prompt:comandoquepasaalaventanadepromptgeneradapor javascriptenlawebeltextopasadocomoprimerparmetro. attach_file:comandoqueaadeelficheroalcontroldesubirficherosdelformulario pasadocomoprimerparmetro,elsegundoparmetroeslarutaalficheroasubiralaweb. capture_entire_page_screenshot:guardaenunficheroPNGunacapturadelnavegadoren esemomento,conelprimerparmetrosepasalarutaalficheroaguardarlacaptura. capture_entire_page_screenshot_to_string:guardaunacapturadelnavegadorenun stringenBASE64yformatoPNG. check:marcaelcuadrodeconfirmacindelawebpasadocomoprimerparmetro. choose_cancel_on_next_confirmation:enlaventanadeconfirmacingeneradaporel javascriptdelaweb,pulsaraenelbotncancel. Page 24 25. click:elSeleniumharclickenelementodelawebpasadocomoprimerparmetroel objetivodehacerclick. close:elSeleniumaestaalturadeesalineadelscript,cerraraelnavegador. create_cookie:creaenelnavegadorunacookiedelaweb,conelparnombre:valor,donde elnombreesprimerparmetroyelsegundoelvalor. delete_all_visible_cookies:borrandelnavegadorlosparesnombre:valordeunacookiede laweb. delete_cookie:borraelparnombre:valordelacookiedelnavegador. double_click:realizalaaccindedobleclickenelelementowebpasadocomoprimer parmetroelobjetivodehacerdobleclick. focus:hacefocoenelnavegadorenelelementowebpasadocomoprimerparmetroel objetivoparahacerfoco. get_attribute:extraeelvalordelatributodelelementohtmlpasadocomoprimer parmetro. get_body_text:extraetodoelcontenidodelapginawebdelnavegadorcomosifueraun texto.Selepuedepasarcomoprimerparmetrounaexpresinregularqueintentaracasar envezdedevolvertodoelcontenidodelapgina. get_cookie_by_name:retornaelvalordelacookiepasadocomoprimerparmetroel nombredeesta. get_html_source:retornaelcontenidocomohtmldetodalapginawebdelnavegador comosifuerauntexto.Selepuedepasarcomoprimerparmetrounaexpresinregularque intentaracasarenvezdedevolvertodoelcontenidodelapgina. get_location:retornalaURLcompletaenesemomentodelscript,delnavegadorenla simulacindenavegacin. get_text:retornaeltextodeunelementoseleccionadoatravsdelprimerparmetro. get_table:devuelveelcontenidodeunatablaseleccionadaatravsdelprimerparmetro. get_title:devuelveelttulodelapginaqueestaelscriptenelmomentoenelquesellama elcomando. get_value:devuelveelvalordeuncampodeunformularioseleccionadoatravsdelprimer parmetro. go_back:realizalaaccindeiratrsdelnavegadorweb. is_cookie_present:chequeaqueexisteelvalordelacookiepasadoporelprimer parmetro. Page 25 26. is_text_present:chequeaqueexisteeltextoenlaweb,pasandounaexpresinregularcomo primerparmetro. is_visible:chequeaqueelelementoestavisible,pasadalalocalizacinenelprimer parmetro. open:abrelawebenSeleniumpasadalaURLcomoprimerparmetro. pause:esperalasimulacindeSeleniumduranteeltiempoenmilisegundossealadosenel primerparmetro. refresh:realizaunaaccinderefrescoenelnavegadorenelmomentoenqueSelenium encuentraestalineadecomandoenelscript. select:seleccionaunvalorenunalistadesplegable,siendoelprimerparmetrola localizacindelalistadesplegableenlaweb,yelsegundoparmetroeselvalordelalistaa seleccionar. select_window:seleccionalaventanaflotanteelegidaporelIDquevaenelprimer parmetro. set_timeout:pasauntiempoenmilisegundoscomoprimerparmetroaSeleniumparaque secompleteelscriptsinosecumpledevuelveerrordeestatusdelmdulodelatarea. submit:ejecutaelenvodelosdatosdeunformularioseleccionadoporelprimer parametro. type:hacelaescrituraenlacajadetextoseleccionadaporelprimerparmetro,yconel segundoparmetroeltextoarellenarporSelenium. type_keys:hacetambinlaescrituraenlacajadetextoperoteclaateclacomolas pulsacionesdeunusuariorealenlanavegacin,lacajadetextoseeligeenelprimer parmetroyelsegundolasteclasapulsarexpresadascomotexto. uncheck:realizaundeschequeoenelcuadrodechequeoseleccionadoporelprimer parmetro. wait_for_page_to_load:Seleniumesperatantosmilisegundoscomoseanpasadosenel primerparmetroaqueterminelacargadelapgina. wait_for_element_present:esperaaqueestepresenteenelnavegadorelelementopasada lalocalizacinporelprimerparmetroyelsegundoparmetroeseltiempoenmilisegundos paraesperarysinosedevuelveerrorenelestatusdelmdulodelplugindeagentede Pandora. wait_for_text_present:esperaaqueesteenelnavegadorpresenteeltextopasadocomo unaexpresinregularenelprimerparmetroyelsegundoparmetroeseltiempoen milisegundosaesperarysinosedevuelveerrorenelestatusdelmdulodepluginde Page 26 27. agentedePandora. Page 27