Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Monit control file
- #
- # Comments begin with a '#' and extend through the end of the line.
- # Blank lines between program entries are ignored. Keywords are case
- # insensitive. All path's MUST BE FULLY QUALIFIED, starting with '/'
- #
- # Legal keywords are
- # check -- Must be followed by the type of monitored service
- # {device|directory|file|process} and a descriptive
- # name for the service.
- #
- # pidfile -- Must be followed by a path to a process pidfile.
- # Such a file should contain only one entry, a number
- # representing the process pid. (See the apache pid
- # file for an example).
- #
- # path -- Must be followed by a path to the block special file
- # for filesystem (device), regular file or directory.
- #
- # group -- Must be followed by a descriptive name for a monitored
- # services group. This statement can be used to group
- # together several services. Monit can start/stop/restart a
- # group of services.
- #
- # start -- Must be followed by a full path to a program for
- # starting the service. If you need to specify arguments
- # to the program, enclose the program and arguments in
- # quotes - like: "/local/bin/program -i start".
- #
- # stop -- Must be followed by a full path to a program for
- # stopping the service. If you need to specify arguments
- # to the program, enclose the program and arguments in
- # quotes - like: "/local/bin/program -i stop".
- #
- # uid -- Must be followed by a user (name or uid number). This
- # statement is an optionally part of the start/stop
- # statement described above (if so, it makes monit start
- # the program as the user given in the uid). uid can also
- # be used as a standalone statement in a file service
- # check entry to check for changes in uid.
- #
- # gid -- Must be followed by a group (name or gid number). This
- # statement is an optionally part of the start/stop
- # statement described above (if so, it makes monit start
- # the program as the group given in the gid). gid can also
- # be used as a standalone statement in a file service
- # check entry to check for changes in gid.
- #
- # pid -- This statement is an optionally part of process service
- # check entry to override default alert action in the case
- # of pid change.
- #
- # ppid -- This statement is an optionally part of process service
- # check entry to override default alert action in the case
- # of parent pid change.
- #
- # host -- Specify a hostname or an ip-address to test port
- # connection at. This statement must be followed by a
- # port statement.
- #
- # port(number) -- Must be followed by an integer representing a portnumber.
- # The monit program will try to connect to this port to
- # to verify that there is a server listening behind the
- # portnumber.
- #
- # unix(socket) -- Must be followed by a string representing a pathname.
- # The monit program will try to connect to this socket to
- # to verify that there is a server listening behind the
- # unix socket.
- #
- # type -- Must be followed by the keyword udp or tcp. This keyword
- # specifies the type of socket the monit program should
- # use when testing the connection to the portnumber. If the
- # type keyword is omitted, tcp is used.
- #
- # tcp -- Specifies that monit should use a TCP socket type
- # (stream socket) when testing the port
- #
- # tcpssl -- Specifies that monit should use a TCP socket type
- # (stream socket) with ssl when testing the port.
- #
- # certmd5 -- The md5 sum of a certificate a ssl forged
- # server has to deliver.
- #
- # udp -- Specifies that monit should use a UDP socket type
- # (datagram socket) when testing the port
- #
- # protocol -- Must be followed by a protocol keyword. This keyword
- # specifies the type of service found at the port.
- # monit knows how to speak many standard protocols, e.g.
- # HTTP, SMTP, and FTP. See the monit man file for the
- # complete protocol list. If no protocol is specified
- # monit will use a default test which in most cases is
- # good enough to test if a server is up or down.
- #
- # request -- Must be followed by a request string specifying a
- # document or entity to fetch from the server. Currently
- # only the HTTP protocol module supports the request
- # statement, such as: "/data/show.php?a=b&c=d"
- # send/expect -- These keywords specify a generic protocol. Both require
- # a string whether to be sent or to be matched against (as
- # extended regex if supported).
- #
- # timeout -- Part of the timeout statement or used in a connection
- # statement for connect timeout.
- #
- # alert -- Specifies an email address for notification if an
- # error occured on a service. This statement is optional.
- # More than one alert statement is allowed.
- #
- # checksum -- Used in a file check entry to test the file for
- # checksum changes. See the monit man file for more
- # information.
- #
- # expect -- Specify a md5 string digest monit should expect when
- # testing a particular file's checksum. This statement is
- # an optional part of the checksum statement.
- #
- # timestamp -- Must be followed by compare operator, number, optional
- # a time unit and an action.
- #
- # size -- Must be followed by compare operator, number, optional
- # a size unit and an action.
- #
- # every -- Only check the service at every n cycles.
- #
- # mode -- Must be followed either by the keyword active, passive
- # or manual. If active, monit will restart the service
- # if it is not running (this is the default behaviour).
- # If passive, monit will only monitor and send alerts
- # (resource related restart and stop options are ignored
- # in this mode also). If manual, monit will enter active
- # mode only if service was brough under monit's control
- # otherwise the service isn't monitored.
- #
- # cpu -- Must be followed by a compare operator, a number with
- # percent {%|percent}, optionally a maximum number of
- # cycles and an action. This statement is used to check
- # the cpu usage in percent of a process with its children
- # over a number of cycles. If the compare expression
- # matches then the action is executed.
- #
- # mem -- The equivalent to cpu usage for memory of a process
- # (w/o children!). The syntax is equivilent to cpu,
- # but additionally amount units are accepted, expressed in
- # {B|KB|MB|GB|%|byte|kilobyte|megabyte|gigabyte|
- # percent}
- #
- # children -- Must be followed by a number without unit. It
- # represents number of child processes. The syntax is
- # equivilent to cpu,
- #
- # totalmem -- The equivalent to mem for memory of a process
- # (with children!). The syntax is the same
- #
- # loadavg -- Must be followed by [1min,5min,15min] in (), a
- # compare operator, a number, optionally a
- # maximum number of cycles and an action. This statement
- # is used to check the system load average over a number
- # of cycles. If the compare expression matches then the
- # action (restart, alert, exec, stop or unmonitor) is
- # executed.
- #
- # space -- Must be followed by a compare operator, number,
- # unit and action, where the unit is expressed in one of
- # {B|KB|MB|GB|%|byte|kilobyte|megabyte|gigabyte|percent}
- #
- # inode(s) -- Must be followed by a compare operator, integer number,
- # optionaly by a percent sign (if not, the limit is
- # absolute) and an action (required).
- #
- # perm(ission) -- Must be followed by an octal number describing
- # the permissions monit should expect for a file, directory
- # or device.
- #
- # depends -- Must be followed by the name of a service or a list of
- # services *this* service depends on to run before it
- # services *this* service depends on to run before it
- # starts. The list of depend services will be stopped
- # before the current service is started and started again
- # after.
- #
- # Legal global option statements are
- #
- # set daemon -- Must be followed by a number (in seconds)
- #
- # set init -- If specified, do not background monit. This allows
- # init to control and restart monit. To work properly,
- # modification of /etc/inittab is required.
- # (see the FAQ.txt for details)
- #
- # set logfile -- Must be followed by either a filename (full path is
- # required) or the string 'syslog'. If 'syslog' is used,
- # it can be optionally followed by 'facility <facility>'
- # where <facility> is one of 'log_local0' - 'log_local7'
- # or 'log_daemon'. If no facility is set it will default
- # to LOG_USER
- #
- # set pidfile -- Must be followed by a filename (full path is
- # required) specifying the pid file for a monit daemon.
- # See the manual for default value if not specified.
- #
- # set statefile -- Must be followed by a filename (full path is
- # required) specifying where monit should store
- # its state file. If not defined monit will use
- # the file, $HOME/.monit.state
- #
- # set mailserver -- Must be followed by one or more mail server hostnames.
- # If a mailserver is not defined, monit will try to use
- # 'localhost' as the smtp-server for sending mail
- # notification.
- #
- # set mail-format - Must be followed by a mail format list containing at
- # least one of the keywords; from: subject: or message:
- #
- # set alert -- Specifies an global email address for notification if an
- # error occured on any service. This statement is optional.
- # More than one alert statement is allowed.
- #
- # set httpd port -- Must be followed by a portnumber for the monit http
- # set httpd port -- Must be followed by a portnumber for the monit http
- # server.
- #
- # ssl enable -- Enables ssl support for the httpd server.
- # It requires the use of the pemfile statement.
- #
- # ssl disable -- Disables ssl support for the httpd server.
- # It is equal to omitting any ssl statement.
- #
- # signature enable -- Enables http server version signature
- #
- # signature disable - Disables http server version signature
- #
- # address -- If specified, the http server will only accept connect
- # requests to this addresses This statement is an optional
- # part of the set httpd statement.
- #
- #
- # pemfile -- Specifies the file with the private key and the
- # certificate for ssl support
- #
- # allow -- Specify a hostnames or IP addresses allowed to connect
- # to the http server (one allow statement per host)
- # and/or
- # allow -- Specify a username:password in clear text for
- # connecting to monit httpd
- # and/or
- # allow -- Specify a "htpasswd" styled file in clear text,
- # MD5 or crypt for for users to connect to monit httpd
- # Attention: at least one clear text user credential
- # is necessary for the command line interface to
- # connect to monit
- #
- # include -- include a file or files matching the globstring
- #
- #
- # The noise keywords `is', `as', `are', `for', `and', `the', `with',
- # `has', `using', `use', `on(ly)', `with(in)', `was', `than`, `usage'
- # and `program(s)' are ignored anywhere in an entry; they can be used
- # to make it resemble English. The punctuation characters `,' `;' and
- # '=' are also ignored.
- #
- #
- ## Here's an example for monitoring an apache web-server on port
- ## HTTP and HTTPS, Sybase Database Server and various filesystems:
- #
- ## [NB! Check and edit for your system and uncomment below]
- #
- ## Poll at 2-minute intervals.
- # set daemon 120
- #
- ## Set syslog logging.
- # set logfile syslog facility log_daemon
- #
- ## Set localhost as a fall back server if the primary and backup mailserver
- ## fails.
- # set mailserver mail.bar.baz,
- # backup.bar.baz port 10025,
- # localhost
- #
- ## Set a default mail from-address for all alert messages emitted by monit.
- # set mail-format { from: monit@foo.bar }
- #
- ## Send alert to system admin on any event
- # set alert sysadm@foo.bar
- #
- ## Make monit start its web-server.
- set httpd port 2812
- use address localhost # and only accept connection from localhost
- allow localhost # allow localhost to connect to the server and
- allow admin:monit # user 'admin' with password 'monit'
- #
- # check process apache with pidfile /usr/local/apache/logs/httpd.pid
- # start program = "/etc/init.d/httpd start"
- # stop program = "/etc/init.d/httpd stop"
- # if failed host www.tildeslash.com port 80 protocol http
- # and request "/monit/next.html" then restart
- # if failed port 443 type tcpssl proto http with timeout 15 seconds
- # then restart
- # if cpu is greater than 60% for 2 cycles then alert
- # if cpu > 80% for 5 cycles then restart
- # if totalmem > 200.0 MB for 5 cycles then restart
- # if children > 250 then restart
- # if loadavg(5min) greater than 10 for 8 cycles then stop
- # if 3 restarts within 5 cycles then timeout
- # group server
- #
- #
- # check file apache_bin with path /usr/local/apache/bin/httpd
- # if failed checksum and
- # expect the sum 8f7f419955cefa0b33a2ba316cba3659 then unmonitor
- # if failed permission 755 then unmonitor
- # if failed uid root then unmonitor
- # if failed gid root then unmonitor
- # alert security@foo.bar on {
- # checksum, permission, uid, gid, unmonitor
- # } with the mail-format { subject: Alarm! }
- # group server
- #
- #
- # check process sybase with pidfile /var/run/sybase.pid
- # start program = "/etc/init.d/sybase start"
- # stop program = "/etc/init.d/sybase stop"
- # if failed port 4001 then restart
- # if 2 restarts within 3 cycles then timeout
- # group server
- # mode passive
- # depends on datafs
- #
- #
- # check device datafs with path /dev/sdb1
- # start program = "/bin/mount /data"
- # stop program = "/bin/umount /data"
- # if failed permission 660 then unmonitor
- # if failed uid root then unmonitor
- # if failed gid disk then unmonitor
- # if space usage > 80% then alert
- # if space usage > 99% then stop
- # if inode usage > 80% then alert
- # if inode usage > 99% then stop
- # group server
- #
- #
- # check device rootfs with path /dev/sda1
- # if failed permission 660 then unmonitor
- # if failed uid root then unmonitor
- # if failed gid disk then unmonitor
- # if space usage > 3 GB then alert
- # if inode usage > 30000 then alert
- # mode passive
- #
- #
- # check file database with path /data/mydatabase.db
- # if failed permission 700 then alert
- # if failed uid data then alert
- # if failed gid data then alert
- # if timestamp > 15 minutes then alert
- # if size > 100 MB then alert
- # else if recovered then exec "/check/my/db"
- #
- #
- # check directory bin with path /bin
- # if failed permission 755 then unmonitor
- # if failed uid 0 then unmonitor
- # if failed gid 0 then unmonitor
- #
- #
- # check host myserver with address 192.168.1.1
- # if failed icmp type echo with timeout 3 seconds then alert
- # if failed port 3306 then alert
- # if failed port 80 protocol http then alert
- # if failed port 443 type tcpssl protocol http
- # with timeout 15 seconds then alert
- # if failed host virtual.web.org port 80 protocol http
- # and request "/help/info.html" then alert
- #
- # include /etc/monit/mysql.monitrc
- # include /etc/monit/mail/*.monitrc
- #
- # check file foobar with path /somewhere
- # include /etc/monit/defaultfile.monitrc
- #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement