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"