DCache Web Interface
Web Interface
dCache provides the sysadmin with a web based interface showing the status of your dCache install in terms of cell services, pool status (usage and queues) and a log of actions that have been taken. From a terminal, issue the command:
links http://localhost:2288
to access the interface. The cell services page is particularly useful when initially setting up a system as it indicates which of the dCache cells are online.
Modifications to the Interface
It is often useful (or required) to make modifications to the web interface such that it displays the most relevant information about your system. For example, if you run the /opt/d-cache/install/install_doors.sh script on any of your nodes to create extra GridFTP or gsidCap doors, then you will want to see the status of these doors via the interface. By default, this will not be enabled and the system administrator will need to modify the /opt/d-cache/config/httpd.batch file by hand. For this case, follow the instructions in the dCache FAQ.
Below is an example of how httpd.batch can be modified to add extra information about your system. Additions to the file from its default state are clearly marked.
set printout default 3 <====== changed to 3 set printout CellGlue none onerror shutdown # check -strong setupFile # copy file:${setupFile} context:setupContext # # import the variables into our $context. # don't overwrite already existing variables. # import context -c setupContext # # Make sure we got what we need. # check -strong serviceLocatorHost serviceLocatorPort httpdPort config # create dmg.cells.services.RoutingManager RoutingMgr # # The LocationManager Part # create dmg.cells.services.LocationManager lm \ "${serviceLocatorHost} ${serviceLocatorPort} " # check -strong billingDb # create diskCacheV111.cells.BillingCell billing "${billingDb} -printMode=2" # #create diskCacheV111.cells.BillingCell billing \ # "${billingDb} \ # -useSQL -jdbcUrl=<> -jdbcDriver=<> -dbUser=<> -dbPass=<>" # create dmg.cells.network.TopoCell topo "none -update=100 -export" # #create dmg.cells.services.login.LoginManager Spy \ # "22222 dmg.cells.services.ObjectLoginCell -prot=raw" # # create dmg.cells.services.login.LoginBroker LoginBroker "default -export" # define context TransferObserverSetup endDefine table define large 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 table define small 6,8,4,5,9,10,11,15 endDefine create diskCacheV111.cells.TransferObserverV1 TransferObserver \ "default \ -loginBroker=LoginBroker \ -update=60 \ -fieldMap=diskCacheV111.util.MapInfoFields \ -mapFile=/etc/passwd " # # The web server part # define context httpdSetup endDefine set alias <home> context home.html set alias images directory ${images} set alias offline context offline.html set alias context context * set alias <default> context home.html set alias cellInfo context cellInfoTable.html -onError=offline set alias usageInfo context poolUsageTable.html -onError=offline set alias queueInfo context poolQueueTable.html -onError=offline set alias poolInfo class diskCacheV111.poolManager.HttpPoolMgrEngineV3 set alias billing class diskCacheV111.cells.HttpBillingEngine set update 60 endDefine # set alias system class dmg.cells.services.HttpSystemService define context home.html endDefine <html> <head><title>Online dCache Home</title></head> <body background="/images/bg.jpg" text="#000000" link="#000000" vlink="#000000" alink="#000000"> <br><br><br> <center> <table border="1" width="40%"> <tr> <td align="center" valign="middle" > <br><br> <img src="/images/eagle-main.gif"><br><br> <table> <tr> <td> <a href="/cellInfo"><h1>Cell Services</h1></a> <a href="/usageInfo"><h1>Pool (Space) Usage</h1></a> <a href="/queueInfo"><h1>Pool Request Queues</h1></a> <a href="/poolInfo"><h1>Pools</h1></a> <a href="/billing/"><h1>Actions Log</h1></a> <a href="/context/transfers.html"><h1>Transfer Knowledge</h1></a> <========= added in <a href="/context/small.html"><h1>Active Transfers</h1></a> <========= added in <a href="/context/large.html"><h1>Active Transfers Detailed</h1></a> <========= added in <a href="/poolInfo/restoreHandler/*"><h1>Restore Queue</h1></a> <a href="/poolInfo/restoreHandler/lazy"><h1>Lazy Restore Queue</h1></a> </td></tr> </table> <br> </td></tr> </table> </center> <br><br><br> <hr> <!-- <address><a href="/system/">system</a></address> --> </body> </html> endDefine define context offline.html endDefine <html> <head><title>dCache OFFLINE</title></head> <body background="/images/bg.jpg"> <center><img src="/images/eagle-main.gif"></center> <p> <center> <table border=0 width="80%"> <tr> <td align=right width="50%"><img src="/images/trudey.gif"></td> <td align=left width="50%"><img src="/images/sorry.gif"></td> </tr> </table> </center> </body> </html> endDefine define context online.html endDefine <html> <head><title>dCache OFFLINE</title></head> <body bgcolor=blue > <center><img src="/images/eagle_logo.gif"></center> <p> <center> <table border=0 width="90%" cellspacing=0 cellpadding=6> <tr> <td bgcolor=yellow align=left width="50%">Pool : poolA</td> <td bgcolor=yellow align=right width="50%">4/5/2001</td> </tr> </table> </center> </body> </html> endDefine # copy context:online.html context:setup.html # create dmg.cells.services.HttpServiceCell httpd ${httpdPort} # create diskCacheV111.cells.WebCollectorV3 collector \ "PnfsManager \ PoolManager \ PinManager \ <========= added in CopyManager \ <========= added in cleaner \ <========= added in GFTP-srm \ <========= changed door name SRM-srm \ <========= changed door name DCap-gsi-srm \ <========= changed door name GFTP-dcache \ <========= added in pool node door RemoteHttpTransferManager \ <========= added in RemoteGsiftpTransferManager \ <========= added in -replyObject" #
To allow for the cleaner cell (or any other cell) to be seen on the web interface, you need to export it by modifying the relevant /opt/d-cache/config/*.batch file to include the `-export \' option. For example, in pnfs.batch:
create diskCacheV111.cells.CleanerV2 cleaner \ "default \ -export \ <========= added in -refresh=120 \ -recover=240 \ -db=/opt/pnfsdb/pnfs/trash/2"