monit.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 13 Nov 2020 22:27:55 +0200
changeset 2456 b7e46ea06927
parent 2412 d88d5d1a8cd9
permissions -rw-r--r--
Show current key details.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2410
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
=======
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
 monit
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
=======
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
.. contents::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
   :local:
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
Official docs
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
=============
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
https://mmonit.com/monit/documentation/monit.html
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
  Main docs.
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
https://mmonit.com/wiki/Monit/ConfigurationExamples
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
  Real-world configuration examples.
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
https://mmonit.com/wiki/Monit/FAQ
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
  FAQ
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
Debugging monit
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
===============
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
Run standalone::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  monit -c /path/to/monitrc
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
Check syntax::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
  monit -t
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
  monit -t -c /path/to/monitrc
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
Override log file location in config::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
  set log /var/log/monit.log
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
or with CLI option::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
  monit -l /var/log/monit.log
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
Do not go into background::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
  monit -I
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
Make verbose output::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
  monit -v
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
  monit -vv
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
Full length commant may look like::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  sudo monit -v status
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
  sudo monit -Iv validate
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
  sudo monit -Ivv -c /path/to/monitrc
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
To debug start/stop scripts write wrapper that redirects STDIO to file::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
  #/bin/sh
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
  exec 1>my.log
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
  exec 2>my.log
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
  echo "$@"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
  exec "$@"
2411
417b9ee21460 Fixed RST syntax error.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2410
diff changeset
    60
2410
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
Limiting server to ``localhost``::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
  set httpd port 2812
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
    use address localhost
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
    allow localhost
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    66
    allow admin:monit
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
Monit modes
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
===========
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
* In ``active`` mode (the default), Monit will pro-actively monitor a service and in case of
2412
d88d5d1a8cd9 Fixed RST syntax error.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2411
diff changeset
    72
  problems raise alerts and/or restart the service.
2410
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
* In ``passive`` mode, Monit will passively monitor a service and will raise alerts, but will not
2412
d88d5d1a8cd9 Fixed RST syntax error.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2411
diff changeset
    74
  try to fix a problem by executing start, stop or restart.
2410
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
* In ``manual`` mode, Monit will enter active mode only if a service was started via Monit.
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
Example::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
  check process App with pidfile /var/run/app.pid
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
    start program = "/usr/bin/app start"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    81
    stop program = "/usr/bin/app stop"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    82
    mode passive
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    83
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    84
Alerting
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    85
========
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    86
::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    87
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    88
  check process memcached with match memcached
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    89
    start program = "/usr/bin/systemctl start memcached"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    90
    stop program = "/usr/bin/systemctl stop memcached"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    91
    if failed host 127.0.0.1 port 11211 protocol MEMCACHE then restart
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    92
    if cpu > 70% for 2 cycles then alert
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    93
    if cpu > 98% for 5 cycles then restart
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    94
    if 2 restarts within 3 cycles then timeout
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    95
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    96
  check process myapp with pidfile /run/myapp.pid
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    97
    if does not exist then alert
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    98
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    99
  check filesystem Ubuntu with path /dev/sda1
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   100
    if space usage > 90% then alert
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   101
  check filesystem Home with path /dev/sda3
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   102
    if space usage > 90% then alert
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   103
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   104
  check host app_name with address 127.0.0.1
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   105
    start "/sbin/start app_name"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   106
    stop "/sbin/stop app_name"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   107
    if failed port 80 protocol HTTP
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   108
      request /ok
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   109
      with timeout 5 seconds
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   110
      then restart
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   111
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   112
Running monit by systemd
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   113
========================
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   114
::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   115
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   116
  [Unit]
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   117
  Description=Pro-active monitoring utility for unix systems
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   118
  After=network.target
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   119
  Documentation=man:monit(1) https://mmonit.com/wiki/Monit/HowTo
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   120
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   121
  [Service]
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   122
  Type=simple
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   123
  KillMode=process
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   124
  ExecStart=/usr/local/bin/monit -I
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   125
  ExecStop=/usr/local/bin/monit quit
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   126
  ExecReload=/usr/local/bin/monit reload
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   127
  Restart = on-abnormal
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   128
  StandardOutput=null
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   129
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   130
  [Install]
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   131
  WantedBy=multi-user.target
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   132
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   133
https://mmonit.com/wiki/Monit/Systemd
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   134
  Official docs.
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   135
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   136
Monitor systemd process
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   137
=======================
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   138
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   139
With pid-file::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   140
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   141
  check process nginx with pidfile /var/run/nginx.pid
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   142
    start program = "/bin/systemctl start nginx"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   143
    stop program = "/bin/systemctl stop nginx"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   144
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   145
If process without pid-file::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   146
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   147
  check program MyApp with path "systemctl --quiet is-active MyApp"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   148
    if status != 0 then ...
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   149
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   150
There is a way to tell systemd to create pid-file if process doesn't to it itself::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   151
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   152
  ExecStartPost=/bin/sh -c "echo $MAINPID > /run/myapp.pid"
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   153
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   154
By matching program name::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   155
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   156
  check process MyApp matching 'myapp.*'
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   157
     start program = /bin/app
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   158
     stop program = something..
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   159
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   160
Can systemd replace monit?
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   161
==========================
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   162
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   163
No. Systemd has only basic check if process is running. Imaging that process is stuck. You need some
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   164
active probes, like HTTP health endpoint.
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   165
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   166
Systemd has limited capabilities for notifying with ``OnFailure``::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   167
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   168
  [Service]
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   169
  Restart=always
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   170
  RestartSecs=30
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   171
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   172
  [Unit]
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   173
  OnFailure=...
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   174
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   175
Reverse proxy for monit
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   176
=======================
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   177
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   178
Ngnix::
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   179
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   180
  server {
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   181
    listen   80;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   182
    server_name  my.server.name;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   183
    location /monit/ {
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   184
      allow 127.0.0.1;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   185
      allow 192.0.0.0/8;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   186
      deny all;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   187
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   188
      proxy_pass http://127.0.0.1:2812;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   189
      proxy_set_header Host $host;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   190
      rewrite ^/monit/(.*) /$1 break;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   191
      proxy_ignore_client_abort on;
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   192
    }
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   193
  }
3a97cc7e1b39 About monit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   194