======FAS - Fredhopper Access Server======
====Externi odkazy:====
[[http://www.cse.chalmers.se/research/hats/node/150|FAS]] (Fredhopper Access Server)\\
[[http://www.itu.dk/courses/DSDS/F2010/notes/j_kohne_thesis.pdf|Clanek a dokumnetace k FAS]]\\
[[http://www.hats-project.eu/node/150|Brief introduction to FAS]]\\
[[https://www.fredhopper.com/learningcenter/display/learningcenter|Oficialni (placena) dokumentace]]\\
[[http://en.wikipedia.org/wiki/Extract,_transform,_load|ETL]]Extract Transform Load proces\\
[[http://retailingtoday.com/article/sdls-cloud-based-solution-optimizes-online-shopping-experience|SDL Fredhopper]] - clanek\\
====Fredhopper====
Produkt Fredhopper - FAS je program, ktery umi naseptavat pri psani textu do vyhledavaciho policka, umi zobrazovat relevantni produkdy atd., umi strukturovat url tak,
aby vyhledavace umely prohledat web (SEO) a umi reportovat data z fredhopperu. Soucasti fradhoperu jsou:
Program samotny - ktery obsahuje aplikacni server - jboss (ale umi jet i pod jinymi) a aplikaci samotnou
Instance - jednotlive "profily", instance mohou mit ruzne funkce a muze jet vice instanci na jednou pocitaci
Deployment agent - javovsky program na snadnou administraci fredhopperu a jeho instanci, transfer souboru, konfiguraci a instalaci
Data manager - Nastroj na ETL - import dat do FAS
Business manager - Web nastroj na business konfiguraci (business.xml, i18n - lokalizace, enrich.py, atd.)
kitchen ... customizovatelny nastroj na import dat z DB do XML a pote do Derby DB
qserver - spousteny $FAS/j2ee/jboss/bin/run.sh -c fas - engine ktery provadi vyhledavani polozek z DB a indexu na zaklade webovych pozadavku (obecne z aplikace - WCS, WAS atd)
treebuilder - spousteny $FAS//bin/treebuilder -u catalog01 -U 0 -I 1 ... Vytvari seznamy kategorii a prirazuje k nim polozky
searchindexer - spousteny $FAS/bin/searchindexer -I 1 ... Vytvari indexy z klicovych slov pouzivanych v qserveru na vyhledavani v datech z DB
xmlloader - spousteny $FAS/bin/xmlloader -I 1... Nastroj na transformaci dat z xml z kitchen a import do treebuilderu searchindexeru
syncclient - spousteny $FAS/bin/syncclient -I 1 -s SYNCSERVERNAME -P PORT ... nastroj na prijimani dat do LIVE qserveru obecne po indexaci
reporting ... (reporting.pentaho.com) nastroj na reportovani a statistiky vyhledavani
Kazda instance obahuje vlastni procesy. Tyto procesu jsou: searchindexer, xmlloader, treebuilder, syncclient, syncserver, reporting, qserver.
==Single Start/Stop==
$FAS/bin/qserver ... start qserveru\\
$FAS/bin/reporting ... start reportingu\\
$FAS/bin/qserver stop ... stop\\
$FAS/bin/reporting stop ... stop\\
/home/fredhopper/instance01/FAS/j2ee/jboss/bin/run.sh -c fas\\
/bin/sh bin/syncclient -I 1 -s BO1P01FRHS01 -P 8100\\
\\
/home/fredhopper/instance01/FAS/j2ee/jboss/bin/run.sh -c fas\\
/home/fredhopper/instance01/FAS/bin/searchindexer -I 1\\
/home/fredhopper/instance01/FAS/bin/treebuilder -u catalog01 -U 0 -I 1\\
/home/fredhopper/instance01/FAS/bin/xmlloader -I 1\\
==info==
ps -ef | grep java | awk -F"/" '{ a=1; for (i=1; i<=NF; i++) if (($(i) ~ "PRO") || ($(i) ~ "WORK") || ($(i) ~ "LIVE")) a=i; } ; { if (a != 1) print ($a) }' ... ukaze bezici instance\\
ps -ef | grep java | sed 's/-classpath [^ ]*//g' | sed 's/-X[^ ]*//g' | sed 's/-D[^ ]*//g' | sed 's/\s\+/ /g' | sed -e 's/\S* \S* \S* \S* \S* \S* \S* //' ... Ukaze java procesy bez \\
$INSTANCE/bin/get-qserver-port ... port, na kterem bezi qserver\\
$(( $($FAS/bin/get-qserver-port) + 100 )) ... port, na kterem bezi reporting\\
====Deployment Agent====
==Start/Stop/Status==
Sluzba ktera umoznuje ovladat jednotlive instance a nabizi k tomu krome klienta (deployment-agent-client) i webove rozhrani (http://localhost:8177).
~/bin/fredhopper start/stop/status ... Start/stop/status Deployment agenta. Spusti: ~/bin/deployment-agent nebo ~/bin/deployment-agent-client stop-agent\\
~/bin/deployment-agent start/stop ... Nastartuje/zastavi DA pomoci ~/deployment-agent/bin/deployment-agent\\
~/deployment-agent/bin/deployment-agent ... Spusti java proces s com.fredhopper.deployment.agent.AgentBooter tridou\\
==Ovladani a konfigurace pomoci Deployment agenta==
bin/deployment-agent-client ... vypise napovedu k prikazum\\
bin/deployment-agent-client info ( http://localhost:8177 ) ... vypise informace o instancich, verzi DA atd.\\
bin/deployment-agent-client environment ( http://localhost:8177/environment ) ... Seznam promennych prostredi\\
bin/deployment-agent-client list-installations ( http://localhost:8177/installation ) ... Seznam instalaci komponent (FAS, DM)\\
bin/deployment-agent-client describe-installation FAS ( http://localhost:8177/installation/FAS ) ... Ukaze, kde je komponenta nainstalovana\\
bin/deployment-agent-client install ... nainstaluje komponentu ze zdrojoveho kodu\\
bin/deployment-agent-client uninstall FAS ... odinstaluje komponentu FAS\\
bin/deployment-agent-client list-instances ( http://localhost:8177/instance ) ... seznam instanci \\
~/bin/deployment-agent-client list-processes INSTANCE ( http://localhost:8177/instance/INSTANCE/process/ ) ... seznam procesu dane instance\\
bin/deployment-agent-client list-universes LIVE1 ... seznam promennych dane instance\\
~/bin/deployment-agent-client list-verbs INSTANCE qserver ( http://localhost:8177/instance/INSTANCE/process/qserver ) ... seznam akci/statusu\\
bin/deployment-agent-client describe-instance INSTANCE ( http://localhost:8177/instance/INSTANCE ) ... Vypise podrobne informace o instanci, portech atd., , pokud jede Deployment Agent\\
bin/deployment-agent-client get-option LIVE1 qserver_memory ... Vypise prepinac qserver_memory z instance LIVE1\\
bin/deployment-agent-client set-option LIVE1 qserver_memory=2000 ... nastavi prepinac\\
bin/deployment-agent-client delete-option LIVE1 qserver_memory ... smaze prepinac\\
bin/deployment-agent-client rename-instance LIVE1 LIVE2 ... prejmenuje instanci z LIVE1 na LIVE2\\
bin/deployment-agent-client create -I 3 LIVE1 FAS ... vytvori instanci c. 3 (jedouci na portu 3*1000 + 7180 ) - LIVE1 v instalaci FAS\\
bin/deployment-agent-client remove LIVE1 ... smaze instanci LIVE1\\
bin/deployment-agent-client invoke LIVE1 qserver stop ( http://localhost:8177/instance/LIVE1/process/qserver/verb/stop ) ... provede akci (stop) na danem procesu (qserver) a instanci (LIVE1)\\
bin/deployment-agent-client import-capture STAGING ... import zalohy konfigurace\\
bin/deployment-agent-client export-capture STAGING ( http://localhost:8177/instance/STAGING/capture ) ... export nastaveni konfigurace instance STAGING\\
bin/deployment-agent-client list-jmx LIVE2 qserver ( http://localhost:8177/instance/LIVE2/process/qserver/monitor ) ... Seznam JMX objektu procesu qserver instance LIVE2
bin/deployment-agent-client list-jmx LIVE2 qserver mbeans.fredhopper.com:type=QServer ( http://localhost:8177/instance/LIVE2/process/qserver/monitor/mbeans.fredhopper.com:type=QServer ) ... Vypis atributu JMX objektu\\
bin/deployment-agent-client get-jmx LIVE2 qserver mbeans.fredhopper.com:type=QServer QServerState ( http://localhost:8177/instance/LIVE2/process/qserver/monitor/mbeans.fredhopper.com:type=QServer/QServerState ) ... Vypise hodnotu atributu JMX objektu\\
bin/deployment-agent-client add-role STAGING FAS/staging.xml ... prida roli do instance LIVE2 z xml souboru\\
bin/deployment-agent-client list-roles STAGING ( http://localhost:8177/instance/STAGING/role ) ... seznam roli instance STAGING\\
bin/deployment-agent-client get-role STAGING staging ( http://localhost:8177/instance/STAGING/role/staging ) ... popis role staging na instanci STATING\\
bin/deployment-agent-client remove-role LIVE2 qserver ... smaze roli qserver\\
bin/deployment-agent-client invoke-command LIVE1 stop ( http://MA1FHORS01:8177/instance/LIVE1/role/qserver/stop ) ... Vyvola zastaveni role na instanci LIVE1\\
curl http://localhost:8177/instance/INSTANCE/stop ... zastavi celou instanci\\
http://localhost:8177/instance/NORTH_PRODREADY1/capture ... ulozi konfiguraci instance\\
~/bin/deployment-agent-client list-roles WEST_PRODREADY2 ... seznam roli\\
bin/deployment-agent-client --location get --instance config/java.options. > tmp/java.options.txt ... stahne soubor z jineho serveru na kterem bezi DA\\
bin/deployment-agent-client --location FHORS01 put --instance LIVE1 config/java.options.qserver tmp/java.options.txt ... posle soubor na jiny server na kterem bezi DA\\
bin/deployment-agent-client --location FHORS01 delete --instance LIVE1 config/aaa ... smaze soubor na jinem serveru na kterem bezi DA\\
====Ostatni spustitelne soubory====
bin/chk-up LIVE1 ... zkontroluje kazdych 20 sec. dostupnost qserveru, indexy a upozorni na (ne)dostupnost a pocet polozek\\
bin/chk-publishing STAGING ... zkontroluje datum business.xml pro publikace (v data/business)\\
bin/chk-valid-index LIVE1 ... zkontroluje indexy a podindexy instance LIVE1 oproti minimalimu cislu polozek MINITEMS nastavenych ve config/fasrc. RC=0, pokud je polozek vic.\\
bin/ws-query localhost 12180 'fh_location=/companyitems/nl_NL/categories<{manutan_3074457345616669470_8563771665917835204}' ... posle dotaz na qserver a vrati datum,cas,queryID,page_time,round_trip_time,query\\
bin/ws-query localhost 12180 '//company/de_CH&fh_secondid=7158312898563771665917839687' ... dalsi dotaz\\
~/bin/instance INSTANCE start/stop ... it will manually start/stop individual INSTANCE on the server. It runs ~/bin/run-job jobs/ACTION-instance-with-variable.kjb -Didentifier=INSTANCE. INSTANCE is from:
ls ~/data/instances | grep _
~/bin reindex INSTANCE ... Index creation - it will process the reindexing. It starts ~bin/run-job jobs/reindex-all-instances.kjb -Didentifier=$INSTANCE, where INSTANCE is WORKSPACE1 or PRODREADY1 from
ls ~/data/instances | grep _
~/bin/fresh-index-to-live AREA_PRODREADY1 preprod ... Deployment of the index to the Query server PRODREADY. I will lunch: ~/bin/run-job jobs/fresh-index-and-config-to-live.kjb -Didentifier=$INSTANCE -Dlive=$LIVE
~/bin/run-etl-job ... runs ~/bin/data-manager-blocking-process etl kitchen $@
~/bin/run-job ... runs ~/bin/data-manager-blocking-process deployment kitchen $@
~/bin/data-manager-blocking-process ... runs ~/bin/deployment-agent-client invoke $1 $2 start -DfileName=$3 -DlogLevel=basic $4+ and then it chacks every 2 seconds the status until it is not STOPPED (~/bin/deployment-agent-client invoke $1 $2 status)
~/bin/deployment-agent-client ... runs ~/deployment-agent/bin/deployment-agent-client $@
~/deployment-agent/bin/deployment-agent-client ... runs java process with com.fredhopper.deployment.client.CLIMain class
==Role:==
Role je definice procesu, ktere se startuji, ci stopuji pri spusteni instance. Zda se, ze existuji pouze pri existency Deployment Agenta.\\
lynx http://localhost:8177/instance/INSTANCE/role\\
ls $INSTANCE_PATH/role ... seznam roli a jejich xml definice\\
====URL qserveru====
http://localhost:8180/fredhopper/query ... zobrazovani dotazu ve forme XML\\
http://localhost:8180/preview/ ... zobrazovani dotazu ve forme html\\
http://localhost:8180/status/ ... zobrazeni casu spusteni qserveru\\
http://localhost:8180/fredhopper/up.txt ... zobrazeni casu spusteni qserveru\\
http://localhost:8180/fredhopper/xml/index.jsp?fh_log=0\\
http://localhost:8180/fredhopper-ws/services/FASWebService?wsdl .. dotaz na qserver\\
http://localhost:8180/fredhopper ... Fredhopper Business manager - urava konfigurace\\
http://localhost:20180/fredhopper/sysadmin/ ... System admin - provadeni nekterych akci na qserveru\\
wget -O - http://MA1FHORS01:8180/fredhopper/sysadmin/reload-config.jsp?select=business ... znavu nacte business.xml\\
==Konfiguracni soubory==
topology.txt ... definice instanci pro vytvoreni instalace pomoci ?cluster-config?. Cislo instance urcuje porty isntance. napr. instance 1 -> 7180 + 1*1000, 10 -> 7180 + 10*1000.\\
$FAS/conf/instance ... cislo instance\\
$FAS/conf/instance.conf ... config portu a dalsich globalnich promennych JVM (memory,...) - To same pomoci DA: "deploymneet-agent-client describe-instance"\\
$FAS/conf/java.options* ... JVM parametry procesu\\
$FAS/conf/enrich.py ... config nastaveni ktere se budur respektovat behem ?indexace?\\
$FAS/conf/business.xml ... business konfigurace pro qserver a indexaci\\
$FAS/conf/repporting-instance.conf ... globalni nastaveni pro pentaho reporting (ports, memory, ...)\\
==LOG soubory==
data/log/agent.log ... log deployment agenta\\
data/instances/deployment/log/kitchen.log ... log deployment procesu (publikace konfigurace)\\
data/instances/etl/log/kitchen.log ... log ETL procesu (indexace)\\
data/instances//log/qserver.log ... log JBoss AS - pri spusteni qserveru\\
data/instances//log/fredhopper.log ... Fredhopper udalosti v qserveru\\
data/instances//log/xmlloader.log ... logy xml loaderu\\
data/instances//log/searchindexer.log ... logy searchindexeru\\
data/instances//log/treebuilder..log ... logy treebuilderu\\
data/instances//log/syncserver.log ... logy synchronizavniho serveru (na STAGING)\\
data/instances//log/syncclient.log ... logy synchronizavniho klienta (na LIVE)\\
~/data/instances/etl/log/kitchen.log\\
~/data/log/agent.log ... deployment agent log\\
~/data/instances/etl/log/pan.log ... output of data manager transformation (ETL - extract, transform, load)\\
~/data/instances//log/*log ... FAS logs of an instance \\
====Priklady JMX objektu====
http://MA1FHORL01:8177/instance/LIVE1/process/searchindexer/monitor/mbeans.fredhopper.com:type=ItemStore/IndexingId\\
/instance//process/qserver/monitor/mbeans.fredhopper.com:type=ItemStore/ItemCount\\
instance//process/qserver/monitor/mbeans.fredhopper.com:type=QServer/DeploymentServerRole (bin/deployment-agent-client get-jmx SOUTH_LIVE1 qserver mbeans.fredhopper.com:type=QServer DeploymentServerRole) ... Vypise jakou roli jede qserver (staging/live)\\
/instance//process/qserver/monitor/mbeans.fredhopper.com:type=ItemStore/ItemCount ... Celkovy pocet nahranych indexu\\
/instance//process/qserver/monitor/mbeans.fredhopper.com:engine=-,server=Server,type=Search/Alive ... Vrati "true" pokud je vyhledavani nastavene a dostupne pro danou universe-locale kombinaci.\\
/instance//process/qserver/monitor/mbeans.fredhopper.com:type=Tree,universe=/NavigationIndexSize ... Pocet polozek v navigation index pro specificky universe. Nejzajimavejsi k monitorovani je pocet polozek v produktovem rejstriky (universe). \\
/instance//process/qserver/monitor/mbeans.fredhopper.com:engine=-,indextype=,server=Server,type=Search/Size ... Vrati pocet polozek pro universe-locale-index typ kmbinace. Available index types are : "Index for spell correction suggestions", "Index over specific attributes of items", "Index over text content of items"\\
http://localhost:8177/instance/LIVE1/process/qserver/monitor/java.lang:name=ConcurrentMarkSweep,type=GarbageCollector/CollectionCount ... Ukaze pocet Full GC od startu procesu\\
====REPORTING:====
V FAS < 7 je soucasti FAS reporting. Konkretne Pentaho reporting:
bin/install .. nainstaluje (preinstaluje) parametery. Smaze java nastaveni a znovu vytvori\\
$FAS/reporting/db ... Vzor Derby DB\\
$FAS/data/reporting/DB6 ... Derby DB - Pro vycisteni reportingu je treba smazat\\
INFO: Inflating reporting/BACKUP.HISTORY\\
INFO: Inflating reporting/service.properties\\
INFO: Inflating reporting/log/log.ctrl\\
INFO: Inflating reporting/log/logmirror.ctrl\\
INFO: Inflating reporting/log/log180737.dat\\
reporting/seg0/*\\
Config: reporting-instance.conf: instanceX_reporting_qserver (port napr. 8180) (server.xml)\\
Config - reporting-instance.conf: instanceX_reporting_jbossport (port napr. 8280)\\
(reporting-instance.conf - instance1_reporting_jbossport=8280 )\\
\\
URL:\\
http://localhost:8280/pentaho ... login\\
http://localhost:8280/status/ ... status reportu\\