DCache Web Interface

From GridPP Wiki
Jump to: navigation, search

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"