1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458
|
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52
from spec on 25 November 2000 -->
<TITLE>Exim Specification - 54. The Exim monitor</TITLE>
</HEAD>
<body bgcolor="#FFFFFF" text="#00005A" link="#FF6600" alink="#FF9933" vlink="#990000">
Go to the <A HREF="spec_1.html">first</A>, <A HREF="spec_53.html">previous</A>, <A HREF="spec_55.html">next</A>, <A HREF="spec_59.html">last</A> section, <A HREF="spec_toc.html">table of contents</A>.
<P><HR><P>
<H1><A NAME="SEC900" HREF="spec_toc.html#TOC900">54. The Exim monitor</A></H1>
<P>
<A NAME="IDX1970"></A>
<A NAME="IDX1971"></A>
<A NAME="IDX1972"></A>
<A NAME="IDX1973"></A>
<A NAME="IDX1974"></A>
<A NAME="IDX1975"></A>
The Exim monitor is an application which displays in an X window information
about the state of Exim's queue and what Exim is doing. An admin user can
perform certain operations on messages from this GUI interface; however all
such facilities are also available from the command line, and indeed, the
monitor itself makes use of it.
</P>
<P>
<H2><A NAME="SEC901" HREF="spec_toc.html#TOC901">54.1 Running the monitor</A></H2>
<P>
The monitor is started by running the script called <EM>eximon</EM>. This is a shell
script which sets up a number of environment variables, and then runs the
binary called <EM>eximon.bin</EM>. The appearance of the monitor window can be changed
by editing the <EM>Local/eximon.conf</EM> file created by editing
<EM>exim_monitor/EDITME</EM>. Comments in that file describe what the various
parameters are for.
</P>
<P>
The parameters that get built into the <EM>eximon</EM> script can be overridden for a
particular invocation by setting up environment variables of the same names,
preceded by `EXIMON_'. For example, a shell command such as
<PRE>
EXIMON_LOG_DEPTH=400 eximon
</PRE>
<P>
(in a Bourne-compatible shell) runs <EM>eximon</EM> with an overriding setting of the
LOG_DEPTH parameter.
If EXIMON_LOG_FILE_PATH is set in the environment, it overrides the Exim
log file configuration. This makes it possible to have <EM>eximon</EM> tailing log
data that is written to syslog, provided that MAIL.INFO syslog messages are
routed to a file on the local host.
</P>
<P>
X resources can be used to change the appearance of the window in the normal
way. For example, a resource setting of the form
<PRE>
Eximon*background: gray94
</PRE>
<P>
changes the colour of the background to light grey rather than white. The
stripcharts are drawn with both the data lines and the reference lines in
black. This means that the reference lines are not visible when on top of the
data. However, their colour can be changed by setting a resource called
`highlight' (an odd name, but that's what the Athena stripchart widget uses).
For example, if your X server is running Unix, you could set up lighter
reference lines in the stripcharts by obeying
<PRE>
xrdb -merge <<End
Eximon*highlight: gray
End
</PRE>
<P>
<A NAME="IDX1976"></A>
In order to see the contents of messages on the spool, and to operate on them,
<EM>eximon</EM> must either be run as root or by an admin user.
</P>
<P>
The monitor's window is divided into three parts. The first contains one or
more stripcharts and two action buttons, the second contains a `tail' of the
main log file, and the third is a display of the queue of messages awaiting
delivery,
with two more action buttons. The following sections describe these different
displays.
</P>
<H2><A NAME="SEC902" HREF="spec_toc.html#TOC902">54.2 The stripcharts</A></H2>
<P>
<A NAME="IDX1977"></A>
The first stripchart is always a count of messages on the queue.
Its name can be configured by setting QUEUE_STRIPCHART_NAME in the
<EM>Local/eximon.conf</EM> file.
The remaining stripcharts are defined in the configuration script by regular
expression matches on log file entries, making it possible to display, for
example, counts of messages delivered to certain hosts or using certain
transports. The supplied defaults display counts of received and delivered
messages, and of local and SMTP deliveries. The default period between
stripchart updates is one minute; this can be adjusted by a parameter in the
<EM>Local/eximon.conf</EM> file.
</P>
<P>
The stripchart displays rescale themselves automatically as the value they are
displaying changes. There are always 10 horizontal lines in each chart; the
title string indicates the value of each division when it is greater than one.
For example, `x2' means that each division represents a value of 2.
</P>
<P>
It is also possible to have a stripchart which shows the percentage fullness of
a particular disc partition, which is useful when local deliveries are confined
to a single partition.
<A NAME="IDX1978"></A>
This relies on the availability of the <EM>statvfs</EM> function or equivalent in the
operating system. Most, but not all versions of Unix that support Exim have
this.
For this particular stripchart, the top of the chart always represents 100%,
and the scale is given as `x10%'. It is configured by setting
SIZE_STRIPCHART and (optionally) SIZE_STRIPCHART_NAME in the
<EM>Local/eximon.conf</EM> file.
</P>
<H2><A NAME="SEC903" HREF="spec_toc.html#TOC903">54.3 Main action buttons</A></H2>
<P>
<A NAME="IDX1979"></A>
<A NAME="IDX1980"></A>
<A NAME="IDX1981"></A>
Below the stripcharts there is an action button for quitting the monitor. Next
to this is another button marked `Size'. They are placed here so that shrinking
the window to its default minimum size leaves just the queue count stripchart
and these two buttons visible. Pressing the `Size' button causes the window to
expand to its maximum size, unless it is already at the maximum, in which case
it is reduced to its minimum.
</P>
<P>
When expanding to the maximum, if the window cannot be fully seen where it
currently is, it is moved back to where it was the last time it was at full
size. When it is expanding from its minimum size, the old position is
remembered, and next time it is reduced to the minimum it is moved back there.
</P>
<P>
The idea is that you can keep a reduced window just showing one or two
stripcharts at a convenient place on your screen, easily expand it to show
the full window when required, and just as easily put it back to what it was.
The idea is copied from what the <EM>twm</EM> window manager does for its <EM>f.fullzoom</EM>
action. The minimum size of the window can be changed by setting the
MIN_HEIGHT and MIN_WIDTH values in <EM>Local/eximon.conf</EM>.
</P>
<P>
Normally, the monitor starts up with the window at its full size, but it can be
built so that it starts up with the window at its smallest size, by setting
START_SMALL=yes in <EM>Local/eximon.conf</EM>.
</P>
<H2><A NAME="SEC904" HREF="spec_toc.html#TOC904">54.4 The log display</A></H2>
<P>
<A NAME="IDX1982"></A>
<A NAME="IDX1983"></A>
The second section of the window is an area in which a display of the tail of
the main log is maintained.
This is not available when the only destination for logging data is syslog,
unless the syslog lines are routed to a local file whose name is passed to
<EM>eximon</EM> via the EXIMON_LOG_FILE_PATH environment variable.
</P>
<P>
The log sub-window has a scroll bar at its lefthand side which can be used to
move back to look at earlier text, and the up and down arrow keys also have a
scrolling effect. The amount of log that is kept depends on the setting of
LOG_BUFFER in <EM>Local/eximon.conf</EM>, which specifies the amount of memory to
use. When this is full, the earlier 50% of data is discarded -- this is much
more efficient than throwing it away line by line. The sub-window also has a
horizontal scroll bar for accessing the ends of long log lines. This is the
only means of horizontal scrolling; the right and left arrow keys are not
available.
Text can be cut from this part of the window using the mouse in the normal way.
The size of this subwindow is controlled by parameters in the configuration
file <EM>Local/eximon.conf</EM>.
</P>
<P>
Searches of the text in the log window can be carried out by means of the ^R
and ^S keystrokes, which default to a reverse and forwards search respectively.
The search covers only the text that is displayed in the window. It cannot go
further back up the log.
</P>
<P>
The point from which the search starts is indicated by a caret marker. This is
normally at the end of the text in the window, but can be positioned explicitly
by pointing and clicking with the left mouse button, and is moved automatically
by a successful search. If new text arrives in the window when it is scrolled
back, the caret remains where it is, but if the window is not scrolled back,
the caret is moved to the end of the new text.
</P>
<P>
Pressing ^R or ^S pops up a window into which the search text can be typed.
There are buttons for selecting forward or reverse searching, for carrying out
the search, and for cancelling. If the `Search' button is pressed, the search
happens and the window remains so that further searches can be done. If the
`Return' key is pressed, a single search is done and the window is closed. If
^C is pressed the search is cancelled.
</P>
<P>
The searching facility is implemented using the facilities of the Athena text
widget. By default this pops up a window containing both `search' and `replace'
options. In order to suppress the unwanted `replace' portion for eximon, a
modified version of the <EM>TextPop</EM> widget is distributed with Exim. However, the
linkers in BSDI and HP-UX seem unable to handle an externally provided version
of <EM>TextPop</EM> when the remaining parts of the text widget come from the standard
libraries. The compile-time option EXIMON_TEXTPOP can be unset to cut out
the modified <EM>TextPop</EM>, making it possible to build Eximon on these systems, at
the expense of having unwanted items in the search popup window.
</P>
<H2><A NAME="SEC905" HREF="spec_toc.html#TOC905">54.5 The queue display</A></H2>
<P>
<A NAME="IDX1984"></A>
The bottom section of the monitor window contains a list of all messages that
are on the queue, which includes those currently being received or delivered,
as well as those awaiting delivery. The size of this subwindow is controlled by
parameters in the configuration file <EM>Local/eximon.conf</EM>, and the frequency at
which it is updated is controlled by another parameter in the same file -- the
default is 5 minutes,
since queue scans can be quite expensive.
However, there is an `Update' action button just above the display which can be
used to force an update of the queue display at any time.
</P>
<P>
When a host is down for some time, a lot of pending mail can build up for it,
and this can make it hard to deal with other messages on the queue. To help
with this situation there is a button next to `Update' called `Hide'. If
pressed, a dialogue box called `Hide addresses ending with' is put up. If you
type anything in here and press `Return', the text is added to a chain of such
texts, and if every undelivered address in a message matches at least one
of the texts, the message is not displayed.
</P>
<P>
If there is an address that does not match any of the texts, all the addresses
are displayed as normal. The matching happens on the ends of addresses so, for
example, <EM>cam.ac.uk</EM> specifies all addresses in Cambridge, while <EM>xxx@foo.com</EM>
specifies just one specific address. When any hiding has been set up, a button
called `Unhide' is displayed. If pressed, it cancels all hiding. Also, to
ensure that hidden messages don't get forgotten, a hide request is
automatically cancelled after one hour.
</P>
<P>
While the dialogue box is displayed, you can't press any buttons or do anything
else to the monitor window. For this reason, if you want to cut text from the
queue display to use in the dialogue box, you have to do the cutting before
pressing the `Hide' button.
</P>
<P>
The queue display contains, for each unhidden queued message, the length of
time it has been on the queue, the size of the message, the message id, the
message sender, and the first undelivered recipient, all on one line. If it is
a delivery error message, the sender is shown as `<>'. If there is more than
one recipient to which the message has not yet been delivered, subsequent ones
are listed on additional lines, up to a maximum configured number, following
which an ellipsis is displayed. Recipients that have already received the
message are not shown.
<A NAME="IDX1985"></A>
If a message is frozen, an asterisk is displayed at the left-hand side.
</P>
<P>
The queue display has a vertical scroll bar, and can also be scrolled by means
of the arrow keys. Text can be cut from it using the mouse in the normal way.
The text searching facilities, as described above for the log window, are also
available, but the caret is always moved to the end of the text when the queue
display is updated.
</P>
<H2><A NAME="SEC906" HREF="spec_toc.html#TOC906">54.6 The queue menu</A></H2>
<P>
If the <EM>shift</EM> key is held down and the left button is clicked when the mouse
pointer is over the text for any message, an action menu pops up, and the first
line of the queue display for the message is highlighted. This does not affect
any selected text.
If you want to use some other event for popping up the menu, you can
set the MENU_EVENT parameter in <EM>Local/eximon.conf</EM> to change the default,
or set EXIMON_MENU_EVENT in the environment before starting the monitor.
The value set in this parameter is a standard X event description. For example,
to run eximon using <EM>ctrl</EM> rather than <EM>shift</EM> you could use
<PRE>
EXIMON_MENU_EVENT='Ctrl<Btn1Down>' eximon
</PRE>
<P>
The title of the menu is the message id, and it contains entries which act as
follows:
</P>
<UL>
<LI>
<EM>message log</EM>: The contents of the message log for the message are displayed in
a new text window.
<LI>
<EM>headers</EM>: Information from the spool file that contains the envelope
information and headers is displayed in a new text window. See chapter
56 for a description of the format of spool files.
<LI>
<EM>body</EM>: The contents of the spool file containing the body of the message are
displayed in a new text window.
There is a default limit of 20,000 bytes to the amount of data displayed. This
can be changed by setting the BODY_MAX option at compile time, or the
EXIMON_BODY_MAX option at run time.
<LI>
<EM>deliver message</EM>: A call to Exim is made using the -<EM>M</EM> option to request
delivery of the message. This causes an automatic thaw if the message is
frozen. The -<EM>v</EM> option is also set, and the output from Exim is displayed in a
new text window. The delivery is run in a separate process, to avoid holding up
the monitor while the delivery proceeds.
<LI>
<EM>freeze message</EM>: A call to Exim is made using the -<EM>Mf</EM> option to request that
the message be frozen.
<LI>
<A NAME="IDX1986"></A>
<A NAME="IDX1987"></A>
<A NAME="IDX1988"></A>
<EM>thaw message</EM>: A call to Exim is made using the -<EM>Mt</EM> option to request that
the message be thawed.
<LI>
<A NAME="IDX1989"></A>
<EM>give up on msg</EM>: A call to Exim is made using the -<EM>Mg</EM> option to request that
Exim gives up trying to deliver the message. A delivery failure report is
generated for any remaining undelivered addresses.
<LI>
<EM>remove message</EM>: A call to Exim is made using the -<EM>Mrm</EM> option to request
that the message be deleted from the system without generating any failure
reports.
<LI>
<EM>add recipient</EM>: A dialog box is displayed into which a recipient address can
be typed. If the address is not qualified and the QUALIFY_DOMAIN parameter
is set in <EM>Local/eximon.conf</EM>, the address is qualified with that domain.
Otherwise it must be entered as a fully qualified address. Pressing RETURN
causes a call to Exim to be made using the -<EM>Mar</EM> option to request that an
additional recipient be added to the message, unless the entry box is empty, in
which case no action is taken.
<LI>
<EM>mark delivered</EM>: A dialog box is displayed into which a recipient address can
be typed. If the address is not qualified and the QUALIFY_DOMAIN parameter
is set in <EM>Local/eximon.conf</EM>, the address is qualified with that domain.
Otherwise it must be entered as a fully qualified address. Pressing RETURN
causes a call to Exim to be made using the -<EM>Mmd</EM> option to mark the given
recipient address as already delivered, unless the entry box is empty, in which
case no action is taken.
<LI>
<EM>mark all delivered</EM>: A call to Exim is made using the -<EM>Mmad</EM> option to mark
all recipient addresses as already delivered.
<LI>
<EM>edit sender</EM>: A dialog box is displayed initialized with the current sender's
address. Pressing RETURN causes a call to Exim to be made using the -<EM>Mes</EM>
option to replace the sender address, unless the entry box is empty, in which
case no action is taken. If the address is not qualified and the
QUALIFY_DOMAIN parameter is set in <EM>Local/eximon.conf</EM>, the address is
qualified with that domain. Otherwise it must be a fully qualified address.
<LI>
<EM>edit body</EM>: A new xterm process is forked in which a call to Exim is made
using the -<EM>Meb</EM> option in order to allow the body of the message to be edited.
Note that the first line of the body file is the name of the file, and this
should never be changed.
</UL>
<P>
In cases when a call to Exim is made, the actual command used is reflected in a
new text window by default, but this can be turned off for all except the
delivery action by setting ACTION_OUTPUT=no in <EM>Local/eximon.conf</EM>.
However, if the call results in any output from Exim (in particular, if the
command fails) a window containing the command and the output is displayed.
Otherwise, the results of the action are normally apparent from the log and
queue displays. The latter is automatically updated for actions such as
freezing and thawing, unless ACTION_QUEUE_UPDATE=no has been set in
<EM>Local/eximon.conf</EM>. In this case the `Update' button has to be used to force an
update to the display after freezing or thawing.
</P>
<P>
In any text window that is displayed as result of a menu action, the normal
cut-and-paste facility is available, and searching can be carried out using ^R
and ^S, as described above for the log tail window.
</P>
<P><HR><P>
Go to the <A HREF="spec_1.html">first</A>, <A HREF="spec_53.html">previous</A>, <A HREF="spec_55.html">next</A>, <A HREF="spec_59.html">last</A> section, <A HREF="spec_toc.html">table of contents</A>.
</BODY>
</HTML>
|