jeudi 17 juin 2010
Indexer proprement un serveur Confluence avec GSA
Ceux qui ont déjà essayé le savent : indexer un wiki Confluence avec la Google Search Appliance n'est pas une sinécure. Il y a quelques jours, je me suis retrouvé devant un serveur Confluence totalement à genoux devant la GSA et voici comment j'ai résolu le problème.

Le serveur indiquait un nombre absolument terrifiant de sockets dans l'état TIME_WAIT. Evidemment le processeur était full (et les utilisateurs du wiki, furieux). Le premier réflexe que j'ai eu, vu que je ne connais pas la machine sur lequel tourne ce wiki et que je n'y ai pas accès, a été de régler le plus light possible les paramètres de charge d'hôte. Premier constat, ça ne change rien. Après avoir tourné la doc dans tous les sens, un détail m'a sauté aux yeux : il s'agit bien d'une charge d'hôte et non de machine. Ainsi si le serveur fait tourner plusieurs services ou si ces services sont accessibles via des aliases ou des adresses IP, il faut toutes les déclarer. Et oui... Ceci dit, déclarer tous les aliases du wiki n'a pas eu un impact phénoménal : le serveur était toujours (presque) autant surchargé. Il fallait donc trouver une autre solution...
Je suis alors allé faire un tour approfondi dans les journaux et rapports et il est vite devenu évident que le problème venait de Confluence. J'ai d'ailleurs trouvé à ce sujet une issue intéressante (et non résolue) sur le tracker d'Atlassian. Confluence n'est pas un foudre de guerre en ce qui concerne la gestion du cache. Il est même plutôt mauvais. Et pour contourner le problème, une seule solution : le robots.txt. Comme vous le savez sans doute, ce fichier, situé à la racine d'un site, sert à indiquer aux crawler comment se comporter. Bien évidemment l'exploitation de ce fichier est laissé à la charge du crawler, et nombre d'entre eux ne le respecte pas ; mais avec Google - standards obligent - c'est assez redoutable. Je me suis donc inspiré du fichier cité dans le tracker d'Atlassian et l'ai retravaillé aux vues de mes logs. Le voici :
# Confluence 2.X ROBOTS.TXT User-agent: * Disallow: /*decorator=printable Disallow: /*javascript* Disallow: /administrators.action? Disallow: /createrssfeed.action? Disallow: /dashboard.action? Disallow: /labels-javascript Disallow: /doexportpage.action? Disallow: /dopeopledirectorysearch.action Disallow: /dosearchsite.action Disallow: /dosearchsite.action? Disallow: /exportword? Disallow: /login.action Disallow: /login.action? Disallow: /searchsite.action? Disallow: /admin/ Disallow: /display/~* Disallow: /display/*tasklist.complete= Disallow: /display/*tasklist.uncomplete= Disallow: /display/*decorator=normal Disallow: /display/*decorator=printable Disallow: /display/*focusedCommentId= Disallow: /display/*refresh= Disallow: /display/*replyToComment= Disallow: /display/*rootCommentId= Disallow: /display/*showChildren= Disallow: /display/*sortBy= Disallow: /display/*showComments= Disallow: /download/attachments/*version= Disallow: /download/userResources/ Disallow: /download/resources/ Disallow: /label/ Disallow: /labels/ Disallow: /pages/*showComments= Disallow: /pages/*tasklist.complete= Disallow: /pages/*tasklist.uncomplete= Disallow: /pages/*decorator=normal Disallow: /pages/*decorator=printable Disallow: /pages/*focusedCommentId= Disallow: /pages/*refresh= Disallow: /pages/*replyToComment= Disallow: /pages/*rootCommentId= Disallow: /pages/*showChildren=false Disallow: /pages/*sortBy= Disallow: /pages/copypage.action? Disallow: /pages/createblogpost.action? Disallow: /pages/createpage.action? Disallow: /pages/diffpages.action? Disallow: /pages/diffpagesbyversion.action? Disallow: /pages/editblogpost.action? Disallow: /pages/editpage.action? Disallow: /pages/removepage.action? Disallow: /pages/revertpagebacktoversion.action? Disallow: /pages/templates Disallow: /pages/templates/ Disallow: /pages/viewchangessincelastlogin.action? Disallow: /pages/viewpage.action?*showComments Disallow: /pages/viewpage.action?spaceKey= Disallow: /pages/viewpagesrc.action? Disallow: /pages/viewpreviouspageversions.action? Disallow: /plugins/ Disallow: /spaces/*decorator=printable Disallow: /spaces/*decorator=normal Disallow: /spaces/blogrss.action? Disallow: /spaces/listrssfeeds.action? Disallow: /spaces/viewmail.action? Disallow: /spaces/viewmailarchive.action? Disallow: /spaces/viewthread.action? Disallow: /themes/ Disallow: /users/ # End file
La mise en place de ce fichier robots.txt a eu l'effet escompté et les utilisateurs du wiki sont désormais satisfaits. Il a en outre l'avantage de ne faire aucune hypothèse quant aux spécifités éventuelles du crawler qui le visite et il est donc possible de gérer la charge d'hôte directement dans l'interface de la Google Search Appliance. Ce qui n'est pas le cas du fichier qui m'a servi d'inspiration...
Bookmark/Search this post with
URL de trackback :
http://www.rawlog.net/trackback/62
- confluence /
- google est mon ami /
- gsa /
- robots.txt /
- t&t /
- wiki /

Poster un nouveau commentaire