43 |
<li><a href="#setting_a_mail_server_for_alert_messages">Setting a mail server for alert messages</a></li> |
<li><a href="#setting_a_mail_server_for_alert_messages">Setting a mail server for alert messages</a></li> |
44 |
</ul> |
</ul> |
45 |
|
|
|
<li><a href="#status_and_events_upstream">STATUS AND EVENTS UPSTREAM</a></li> |
|
46 |
<li><a href="#service_timeout">SERVICE TIMEOUT</a></li> |
<li><a href="#service_timeout">SERVICE TIMEOUT</a></li> |
47 |
<li><a href="#service_tests">SERVICE TESTS</a></li> |
<li><a href="#service_tests">SERVICE TESTS</a></li> |
48 |
<ul> |
<ul> |
56 |
<li><a href="#permission_testing">PERMISSION TESTING</a></li> |
<li><a href="#permission_testing">PERMISSION TESTING</a></li> |
57 |
<li><a href="#uid_testing">UID TESTING</a></li> |
<li><a href="#uid_testing">UID TESTING</a></li> |
58 |
<li><a href="#gid_testing">GID TESTING</a></li> |
<li><a href="#gid_testing">GID TESTING</a></li> |
59 |
|
<li><a href="#pid_testing">PID TESTING</a></li> |
60 |
|
<li><a href="#ppid_testing">PPID TESTING</a></li> |
61 |
<li><a href="#connection_testing">CONNECTION TESTING</a></li> |
<li><a href="#connection_testing">CONNECTION TESTING</a></li> |
62 |
<ul> |
<ul> |
63 |
|
|
64 |
<ul> |
<ul> |
65 |
|
|
66 |
|
<li><a href="#connection_testing_using_the_url_notation">Connection testing using the URL notation</a></li> |
67 |
<li><a href="#remote_host_ping_test">Remote host ping test</a></li> |
<li><a href="#remote_host_ping_test">Remote host ping test</a></li> |
68 |
<li><a href="#examples">Examples</a></li> |
<li><a href="#examples">Examples</a></li> |
69 |
</ul> |
</ul> |
80 |
|
|
81 |
<ul> |
<ul> |
82 |
|
|
83 |
<li><a href="#host_allow_list">Host allow list</a></li> |
<li><a href="#host_and_network_allow_list">Host and network allow list</a></li> |
84 |
<li><a href="#basic_authentication">Basic Authentication</a></li> |
<li><a href="#basic_authentication">Basic Authentication</a></li> |
85 |
</ul> |
</ul> |
86 |
|
|
267 |
<h1><a name="how_to_monitor">HOW TO MONITOR</a></h1> |
<h1><a name="how_to_monitor">HOW TO MONITOR</a></h1> |
268 |
<p>monit is configured and controlled via a control file called |
<p>monit is configured and controlled via a control file called |
269 |
<strong>monitrc</strong>. The default location for this file is ~/.monitrc. If |
<strong>monitrc</strong>. The default location for this file is ~/.monitrc. If |
270 |
this file does not exist, monit will try /etc/monitrc and finally |
this file does not exist, monit will try /etc/monitrc, then |
271 |
./monitrc.</p> |
/usr/local/etc/monitrc and finally ./monitrc.</p> |
272 |
<p>A monit control file consists of a series of service entries and |
<p>A monit control file consists of a series of service entries and |
273 |
global option statements in a free-format, token-oriented syntax. |
global option statements in a free-format, token-oriented syntax. |
274 |
Comments begin with a # and extend through the end of the line. |
Comments begin with a # and extend through the end of the line. |
817 |
watches whether the value will change again. You can use it just |
watches whether the value will change again. You can use it just |
818 |
for alert or to involve some automatic action, as for example to |
for alert or to involve some automatic action, as for example to |
819 |
reload monitored process after its configuration file was changed. |
reload monitored process after its configuration file was changed. |
820 |
Variable tests are supported for 'checksum', 'size' and 'timestamp' |
Variable tests are supported for 'checksum', 'size', 'pid, 'ppid' |
821 |
tests only, if you consider that other tests can be useful in |
and 'timestamp' tests only, if you consider that other tests can |
822 |
variable form too, please let us know.</p> |
be useful in variable form too, please let us know.</p> |
823 |
<dl> |
<dl> |
824 |
<dt><strong><a name="item_if_changed__3ctest_3e_then_action">IF CHANGED <TEST> THEN ACTION</a></strong><br /> |
<dt><strong><a name="item_if_changed__3ctest_3e_then_action">IF CHANGED <TEST> THEN ACTION</a></strong><br /> |
825 |
</dt> |
</dt> |
1282 |
a depend tree.</p> |
a depend tree.</p> |
1283 |
<p> |
<p> |
1284 |
</p> |
</p> |
1285 |
|
<h2><a name="pid_testing">PID TESTING</a></h2> |
1286 |
|
<p>monit tests the process id (pid) of processes for change. This test |
1287 |
|
is implicit and monit will send alert in the case of failure by |
1288 |
|
default.</p> |
1289 |
|
<p>You may override the default action using below rule (it may only |
1290 |
|
be used within a process service entry in the monit control file).</p> |
1291 |
|
<p>The syntax for the pid statement is:</p> |
1292 |
|
<dl> |
1293 |
|
<dt><strong><a name="item_if_changed_pid_then_action">IF CHANGED PID THEN action</a></strong><br /> |
1294 |
|
</dt> |
1295 |
|
</dl> |
1296 |
|
<p><em>action</em> is a choice of ``ALERT'', ``RESTART'', ``START'', ``STOP'', |
1297 |
|
``EXEC'' or ``UNMONITOR''.</p> |
1298 |
|
<p>This test is useful to detect possible process restarts which |
1299 |
|
has occured in the timeframe between two monit testing cycles. |
1300 |
|
In the case that the restart was fast and the process provides |
1301 |
|
expected service (i.e. all tests passed) you will be notified |
1302 |
|
that the process was replaced.</p> |
1303 |
|
<p>For example sshd daemon can restart very quickly, thus if someone |
1304 |
|
changes its configuration and do sshd restart outside of monit |
1305 |
|
control, you will be notified that the process was replaced by |
1306 |
|
new instance (or you can optionaly do some other action such as |
1307 |
|
preventively stop sshd).</p> |
1308 |
|
<p>Another example is MySQL Cluster which has its own watchdog with |
1309 |
|
process restart ability. You can use monit for redundant monitoring. |
1310 |
|
Monit will just send alert in the case that the MySQL cluster |
1311 |
|
restarted the node quickly.</p> |
1312 |
|
<p>Example:</p> |
1313 |
|
<pre> |
1314 |
|
check process sshd with pidfile /var/run/sshd.pid |
1315 |
|
if changed pid then exec "/my/script" |
1316 |
|
alert root@localhost</pre> |
1317 |
|
<p> |
1318 |
|
</p> |
1319 |
|
<h2><a name="ppid_testing">PPID TESTING</a></h2> |
1320 |
|
<p>monit tests the process parent id (ppid) of processes for change. |
1321 |
|
This test is implicit and monit will send alert in the case of |
1322 |
|
failure by default.</p> |
1323 |
|
<p>You may override the default action using below rule (it may only |
1324 |
|
be used within a process service entry in the monit control file).</p> |
1325 |
|
<p>The syntax for the ppid statement is:</p> |
1326 |
|
<dl> |
1327 |
|
<dt><strong><a name="item_if_changed_ppid_then_action">IF CHANGED PPID THEN action</a></strong><br /> |
1328 |
|
</dt> |
1329 |
|
</dl> |
1330 |
|
<p><em>action</em> is a choice of ``ALERT'', ``RESTART'', ``START'', ``STOP'', |
1331 |
|
``EXEC'' or ``UNMONITOR''.</p> |
1332 |
|
<p>This test is useful to detect possible process parent change. |
1333 |
|
This may happen normaly only in the case that the process parent |
1334 |
|
exited.</p> |
1335 |
|
<p>Example:</p> |
1336 |
|
<pre> |
1337 |
|
check process myproc with pidfile /var/run/myproc.pid |
1338 |
|
if changed ppid then exec "/my/script" |
1339 |
|
alert root@localhost</pre> |
1340 |
|
<p> |
1341 |
|
</p> |
1342 |
<h2><a name="connection_testing">CONNECTION TESTING</a></h2> |
<h2><a name="connection_testing">CONNECTION TESTING</a></h2> |
1343 |
<p>Monit is able to perform connection testing via networked ports |
<p>Monit is able to perform connection testing via networked ports |
1344 |
or via Unix sockets. A connection test may only be used within a |
or via Unix sockets. A connection test may only be used within a |
1399 |
<p><strong>proto(col):PROTO {protocols}</strong>. Optionally specify the protocol |
<p><strong>proto(col):PROTO {protocols}</strong>. Optionally specify the protocol |
1400 |
monit should speak when a connection is established. At the |
monit should speak when a connection is established. At the |
1401 |
moment monit knows how to speak <em>HTTP</em>, <em>SMTP</em>, <em>FTP</em>, <em>POP</em>, |
moment monit knows how to speak <em>HTTP</em>, <em>SMTP</em>, <em>FTP</em>, <em>POP</em>, |
1402 |
<em>IMAP</em>, <em>NNTP</em>, <em>SSH</em>, <em>DWP</em>, <em>LDAP2</em>, <em>LDAP3</em>, <em>RDATE</em> |
<em>IMAP</em>, <em>NTP3</em>, <em>NNTP</em>, <em>SSH</em>, <em>DWP</em>, <em>LDAP2</em>, <em>LDAP3</em>, |
1403 |
and <em>RSYNC</em> and if you have compiled monit with ssl support, |
<em>RDATE</em> and <em>RSYNC</em> and if you have compiled monit with ssl |
1404 |
monit can also speak <em>HTTPS</em>, <em>FTPS</em>, <em>POPS</em> and <em>IMAPS</em>. If |
support, monit can also speak <em>HTTPS</em>, <em>FTPS</em>, <em>POPS</em> and |
1405 |
the server's protocol is not found in this list, simply do not |
<em>IMAPS</em>. If the server's protocol is not found in this list, |
1406 |
specify the protocol and monit will utilize a default test, |
simply do not specify the protocol and monit will utilize a |
1407 |
including testing if it is possible to read and write to the |
default test, including testing if it is possible to read and |
1408 |
port. This default test is in most cases more than good enough to |
write to the port. This default test is in most cases more than |
1409 |
deduce if the server behind the port is up or not. The protocol |
good enough to deduce if the server behind the port is up or not. |
1410 |
statement is:</p> |
The protocol statement is:</p> |
1411 |
<pre> |
<pre> |
1412 |
[PROTO(COL) {name} [REQUEST {"/path"} [with CHECKSUM checksum]]</pre> |
[PROTO(COL) {name} [REQUEST {"/path"} [with CHECKSUM checksum]]</pre> |
1413 |
<p>As you can see, you may specify a request after the protocol, at |
<p>As you can see, you may specify a request after the protocol, at |
1414 |
the moment only the HTTP protocol supports the request option. |
the moment only the HTTP protocol supports the request option. |
1415 |
See also below for an example.</p> |
See also below for an example.</p> |
1416 |
|
<p>In addition to the standard protocols, the <em>APACHE-STATUS</em> |
1417 |
|
protocol is a test of a specific server type, rather than a |
1418 |
|
generic protocol. Server performance is examined using the status |
1419 |
|
page generated by Apache's mod_status, which is expected to be at |
1420 |
|
its default address of <a href="http://www.example.com/server-status.">http://www.example.com/server-status.</a> |
1421 |
|
Currently the <em>APACHE-STATUS</em> protocol examines the percentage |
1422 |
|
of Apache child processes which are</p> |
1423 |
|
<pre> |
1424 |
|
o logging (loglimit) |
1425 |
|
o closing connections (closelimit) |
1426 |
|
o performing DNS lookups (dnslimit) |
1427 |
|
o in keepalive with a client (keepalivelimit) |
1428 |
|
o replying to a client (replylimit) |
1429 |
|
o receiving a request (requestlimit) |
1430 |
|
o initialising (startlimit) |
1431 |
|
o waiting for incoming connections (waitlimit) |
1432 |
|
o gracefully closing down (gracefullimit) |
1433 |
|
o performing cleanup procedures (cleanuplimit)</pre> |
1434 |
|
<p>Each of these quantities can be compared against a value relative |
1435 |
|
to the total number of active Apache child processes. If the |
1436 |
|
comparison expression is true the choosen action is performed.</p> |
1437 |
|
<p>The apache-status protocol statement is formally defined as |
1438 |
|
(keywords in uppercase):</p> |
1439 |
|
<pre> |
1440 |
|
PROTO(COL) {limit} OP PERCENT [OR {limit} OP PERCENT]*</pre> |
1441 |
|
<p>where {limit} is one or more of: loglimit, closelimit, dnslimit, |
1442 |
|
keepalivelimit, replylimit, requestlimit, startlimit, waitlimit |
1443 |
|
gracefullimit or cleanuplimit. The operator OP is one of: |
1444 |
|
[<|=|>].</p> |
1445 |
|
<p>You can combine all of these test into one expression or you can |
1446 |
|
choose to test a certain limit. If you combine the limits you |
1447 |
|
must or' them together using the OR keyword.</p> |
1448 |
|
<p>Here's an example were we test for a loglimit more than 10 |
1449 |
|
percent, a dnslimit over 25 percent and a wait limit less than 20 |
1450 |
|
percent of processes. See also more examples below in the example |
1451 |
|
section.</p> |
1452 |
|
<pre> |
1453 |
|
protocol apache-status |
1454 |
|
loglimit > 10% or |
1455 |
|
dnslimit > 50% or |
1456 |
|
waitlimit < 20% |
1457 |
|
then alert</pre> |
1458 |
|
<p>Obviously, do not use this test unless the httpd server you are |
1459 |
|
testing is Apache Httpd and mod_status is activated on the |
1460 |
|
server.</p> |
1461 |
<p><strong>send/expect: {SEND|EXPECT} ``string'' ...</strong>. If monit does not |
<p><strong>send/expect: {SEND|EXPECT} ``string'' ...</strong>. If monit does not |
1462 |
support the protocol spoken by the server, you can write your own |
support the protocol spoken by the server, you can write your own |
1463 |
protocol-test using <em>send</em> and <em>expect</em> strings. The <em>SEND</em> |
protocol-test using <em>send</em> and <em>expect</em> strings. The <em>SEND</em> |
1491 |
``EXEC'' or ``UNMONITOR''.</p> |
``EXEC'' or ``UNMONITOR''.</p> |
1492 |
<p> |
<p> |
1493 |
</p> |
</p> |
1494 |
|
<h4><a name="connection_testing_using_the_url_notation">Connection testing using the URL notation</a></h4> |
1495 |
|
<p>You can test a HTTP server using the compact URL syntax. This |
1496 |
|
test also allow you to use POSIX regular expressions to test the |
1497 |
|
content returned by the HTTP server.</p> |
1498 |
|
<p>The full syntax for the URL statement is as follows (keywords are |
1499 |
|
in capital and optional statements in [brackets]):</p> |
1500 |
|
<pre> |
1501 |
|
IF FAILED URL ULR-spec |
1502 |
|
[CONTENT {==|!=} "regular-expression"] |
1503 |
|
[TIMEOUT number SECONDS] |
1504 |
|
THEN action |
1505 |
|
[ELSE IF RECOVERED THEN action]</pre> |
1506 |
|
<p>Where URL-spec is an URL on the standard form as specified in RFC |
1507 |
|
2396:</p> |
1508 |
|
<pre> |
1509 |
|
<protocol>://<authority><path>?<query></pre> |
1510 |
|
<p>Here is an example on an URL where all components are used:</p> |
1511 |
|
<pre> |
1512 |
|
<a href="http://user:password@www.foo.bar:8080/document/?querystring#ref">http://user:password@www.foo.bar:8080/document/?querystring#ref</a></pre> |
1513 |
|
<p>If a username and password is included in the URL monit will |
1514 |
|
attempt to login at the server using <strong>Basic Authentication</strong>.</p> |
1515 |
|
<p>Testing the content returned by the server is optional. If used, |
1516 |
|
you can test if the content <strong>match</strong> or does <strong>not match</strong> a |
1517 |
|
regular expression. Here's an example on how the URL statement |
1518 |
|
can be used in a <em>check service</em>:</p> |
1519 |
|
<pre> |
1520 |
|
check host FOO with address www.foo.bar |
1521 |
|
if failed url |
1522 |
|
<a href="http://user:password@www.foo.bar:8080/?querystring">http://user:password@www.foo.bar:8080/?querystring</a> |
1523 |
|
and content == 'action="j_security_check"' |
1524 |
|
then ...</pre> |
1525 |
|
<p>Monit will look at the content-length header returned by the |
1526 |
|
server and download this amount before testing the content. That |
1527 |
|
is, if the content-length is more than 1Mb or this header is not |
1528 |
|
set by the server monit will default to download up to 1 Mb and |
1529 |
|
not more.</p> |
1530 |
|
<p>Only the <code>http(s)</code> protocol is supported in an URL statement. If |
1531 |
|
the protocol is <strong>https</strong> monit will use SSL when connecting to |
1532 |
|
the server.</p> |
1533 |
|
<p> |
1534 |
|
</p> |
1535 |
<h4><a name="remote_host_ping_test">Remote host ping test</a></h4> |
<h4><a name="remote_host_ping_test">Remote host ping test</a></h4> |
1536 |
<p>In addition monit can perform ICMP Echo tests in remote host |
<p>In addition monit can perform ICMP Echo tests in remote host |
1537 |
checks. The icmp test may only be used in a check host entry and |
checks. The icmp test may only be used in a check host entry and |
1830 |
<strong>must</strong> choose at least one.</p> |
<strong>must</strong> choose at least one.</p> |
1831 |
<p> |
<p> |
1832 |
</p> |
</p> |
1833 |
<h4><a name="host_allow_list">Host allow list</a></h4> |
<h4><a name="host_and_network_allow_list">Host and network allow list</a></h4> |
1834 |
<p>The http server maintains an access-control list of hosts allowed |
<p>The http server maintains an access-control list of hosts and |
1835 |
to connect to the server. You can add as many hosts as you want |
networks allowed to connect to the server. You can add as many |
1836 |
to, but only hosts with a valid domain name or its IP address are |
hosts as you want to, but only hosts with a valid domain name |
1837 |
allowed. If you specify a hostname that does not resolve, monit |
or its IP address are allowed. If you specify a hostname that |
1838 |
will write an error message in the console and not start.</p> |
does not resolve, monit will write an error message in the console |
1839 |
|
and not start. Networks require a network IP and a netmask to be |
1840 |
|
accepted.</p> |
1841 |
<p>The http server will query a name server to check any hosts |
<p>The http server will query a name server to check any hosts |
1842 |
connecting to the server. If a host (client) is trying to connect |
connecting to the server. If a host (client) is trying to connect |
1843 |
to the server, but cannot be found in the access list or cannot |
to the server, but cannot be found in the access list or cannot |
1848 |
set httpd port 2812 |
set httpd port 2812 |
1849 |
allow localhost |
allow localhost |
1850 |
allow my.other.work.machine.com |
allow my.other.work.machine.com |
1851 |
allow 10.1.1.1</pre> |
allow 10.1.1.1 |
1852 |
|
allow 192.168.1.0/255.255.255.0 |
1853 |
|
allow 10.0.0.0/8</pre> |
1854 |
<p>Clients, not mentioned in the allow list that tries to connect to |
<p>Clients, not mentioned in the allow list that tries to connect to |
1855 |
the server are logged with their ip-address.</p> |
the server are logged with their ip-address.</p> |
1856 |
<p> |
<p> |
2222 |
stop The program used to stop the specified |
stop The program used to stop the specified |
2223 |
service. Full path is required. This |
service. Full path is required. This |
2224 |
statement is optional, but recommended. |
statement is optional, but recommended. |
2225 |
|
pid and ppid These keywords may be used as standalone |
2226 |
|
statements in a process service entry to |
2227 |
|
override the alert action for change of |
2228 |
|
process pid and ppid. |
2229 |
uid and gid These keywords are either 1) an optional part of |
uid and gid These keywords are either 1) an optional part of |
2230 |
a start, stop or exec statement. They may be |
a start, stop or exec statement. They may be |
2231 |
used to specify a user id and a group id the |
used to specify a user id and a group id the |
2259 |
proto(col) This keyword specifies the type of service |
proto(col) This keyword specifies the type of service |
2260 |
found at the port. monit knows at the moment |
found at the port. monit knows at the moment |
2261 |
how to speak HTTP, SMTP, FTP, POP, IMAP, NNTP, |
how to speak HTTP, SMTP, FTP, POP, IMAP, NNTP, |
2262 |
SSH, DWP, LDAP2, LDAP3, RDATE and RSYNC. You're |
SSH, DWP, LDAP2, LDAP3, RDATE, NTP3 and RSYNC. |
2263 |
welcome to write new protocol test modules. If |
You're welcome to write new protocol test modules. |
2264 |
no protocol is specified monit will use a def- |
If no protocol is specified monit will use a def- |
2265 |
ault test which in most cases are good enough. |
ault test which in most cases are good enough. |
2266 |
request Specifies a server request and must come |
request Specifies a server request and must come |
2267 |
after the protocol keyword mentioned above. |
after the protocol keyword mentioned above. |
2277 |
unix(socket) Specifies a Unix socket file and used like |
unix(socket) Specifies a Unix socket file and used like |
2278 |
the port statement above to test a Unix |
the port statement above to test a Unix |
2279 |
domain network socket connection. |
domain network socket connection. |
2280 |
|
URL Specify an URL string which monit will use for |
2281 |
|
connection testing. |
2282 |
|
content Optional sub-statement for the URL statement. |
2283 |
|
Specifies that monit should test the content |
2284 |
|
returned by the server against a regular |
2285 |
|
expression. |
2286 |
timeout x sec. Define a network port connection timeout. Must |
timeout x sec. Define a network port connection timeout. Must |
2287 |
be followed by a number in seconds and the |
be followed by a number in seconds and the |
2288 |
keyword, seconds. |
keyword, seconds. |
2381 |
<em>mail-format</em>, <em>restart</em>, <em>timeout</em>, <em>checksum</em>, <em>resource</em>, |
<em>mail-format</em>, <em>restart</em>, <em>timeout</em>, <em>checksum</em>, <em>resource</em>, |
2382 |
<em>expect</em>, <em>send</em>, <em>mailserver</em>, <em>every</em>, <em>mode</em>, <em>active</em>, |
<em>expect</em>, <em>send</em>, <em>mailserver</em>, <em>every</em>, <em>mode</em>, <em>active</em>, |
2383 |
<em>passive</em>, <em>manual</em>, <em>depends</em>, <em>host</em>, <em>default</em>, <em>http</em>, |
<em>passive</em>, <em>manual</em>, <em>depends</em>, <em>host</em>, <em>default</em>, <em>http</em>, |
2384 |
<em>ftp</em>, <em>smtp</em>, <em>pop</em>, <em>nntp</em>, <em>imap</em>, <em>ssh</em>, <em>dwp</em>, |
<em>ftp</em>, <em>smtp</em>, <em>pop</em>, <em>ntp3</em>, <em>nntp</em>, <em>imap</em>, <em>ssh</em>, <em>dwp</em>, |
2385 |
<em>ldap2</em>, <em>ldap3</em>, <em>request</em>, <em>cpu</em>, <em>mem</em>, <em>totalmem</em>, |
<em>ldap2</em>, <em>ldap3</em>, <em>request</em>, <em>cpu</em>, <em>mem</em>, <em>totalmem</em>, |
2386 |
<em>children</em>, <em>loadavg</em>, <em>timestamp</em>, <em>changed</em>, <em>second(s)</em>, |
<em>children</em>, <em>loadavg</em>, <em>timestamp</em>, <em>changed</em>, <em>second(s)</em>, |
2387 |
<em>minute(s)</em>, <em>hour(s)</em>, <em>day(s)</em>, <em>space</em>, <em>inode</em>, |
<em>minute(s)</em>, <em>hour(s)</em>, <em>day(s)</em>, <em>space</em>, <em>inode</em>, <em>pid</em>, |
2388 |
<em>perm(ission)</em>, <em>process</em>, <em>file</em>, <em>directory</em>, <em>device</em>, |
<em>ppid</em>, <em>perm(ission)</em>, <em>process</em>, <em>file</em>, <em>directory</em>, |
2389 |
<em>size</em>, <em>unmonitor</em>, <em>rdate</em>, <em>rsync</em>, <em>data</em>, <em>invalid</em>, |
<em>device</em>, <em>size</em>, <em>unmonitor</em>, <em>rdate</em>, <em>rsync</em>, <em>data</em>, |
2390 |
<em>exec</em>, <em>nonexist</em> and <em>failed</em></p> |
<em>invalid</em>, <em>exec</em>, <em>nonexist</em> and <em>failed</em></p> |
2391 |
<p>And here is a complete list of <strong>noise keywords</strong> ignored by |
<p>And here is a complete list of <strong>noise keywords</strong> ignored by |
2392 |
monit:</p> |
monit:</p> |
2393 |
<p><em>is</em>, <em>as</em>, <em>are</em>, <em>on(ly)</em>, <em>with(in)</em>, <em>and</em>, <em>has</em>, |
<p><em>is</em>, <em>as</em>, <em>are</em>, <em>on(ly)</em>, <em>with(in)</em>, <em>and</em>, <em>has</em>, |
2493 |
send "GET / HTTP/1.0\r\nHost: www.sol.no\r\n\r\n" |
send "GET / HTTP/1.0\r\nHost: www.sol.no\r\n\r\n" |
2494 |
expect "HTTP/[0-9\.]{3} 200 .*\r\n" |
expect "HTTP/[0-9\.]{3} 200 .*\r\n" |
2495 |
then alert</pre> |
then alert</pre> |
2496 |
|
<p>To make sure that Apache is logging successfully (i.e. no more |
2497 |
|
than 60 percent of child servers are logging), use its mod_status |
2498 |
|
page at www.sol.no/server-status with this special protocol test:</p> |
2499 |
|
<pre> |
2500 |
|
check process apache with pidfile /var/run/httpd.pid |
2501 |
|
start "/etc/init.d/httpd start" |
2502 |
|
stop "/etc/init.d/httpd stop" |
2503 |
|
if failed host www.sol.no port 80 |
2504 |
|
protocol apache-status loglimit > 60% then restart</pre> |
2505 |
|
<p>This configuration can be used to alert you if 25 percent or more |
2506 |
|
of Apache child processes are stuck performing DNS lookups:</p> |
2507 |
|
<pre> |
2508 |
|
check process apache with pidfile /var/run/httpd.pid |
2509 |
|
start "/etc/init.d/httpd start" |
2510 |
|
stop "/etc/init.d/httpd stop" |
2511 |
|
if failed host www.sol.no port 80 |
2512 |
|
protocol apache-status dnslimit > 25% then alert</pre> |
2513 |
<p>Here we use an icmp ping test to check if a remote host is up and |
<p>Here we use an icmp ping test to check if a remote host is up and |
2514 |
if not send an alert:</p> |
if not send an alert:</p> |
2515 |
<pre> |
<pre> |