1.介绍

monit监控和管理进程、程序、文件、目录和Unix系统的文件的工具。可以进行自动维护和修理,在错误的情况下执行有意义的因果关系的行动。比如,某个进程没有运行启动它;没有响应重启它;占用太多资源停止该进程等等。也可以用来监控文件、目录或系统文件的变化,如时间戳的改变,检验和的改变或大小的改变

2.安装:(需先装epel源)

yum install monit -y

3.配置

3.1 monit 的配置文件monit.conf

set daemon  30   监控检查的时间间隔

set logfile syslog   默认日志为syslog,还可以设置为自定义路径下的文件

set pidfile /var/run/monit.pid  设置pid文件的位置

set idfile /var/.monit.id  设置监控项目唯一ID的文件位置  默认在$HOME/.monit.id

set statefile /var/.monit.state    默认存储每个周期内monitorinig 状态的文件

set mailserver   mail.bar.baz    主的邮件服务器

backup.bar.baz port 10025    备的邮件服务器

mailserver 支持格式为:
SET MAILSERVER <hostname|ip-address [PORT number] [USERNAME string] [PASSWORD string] [using SSLAUTO|SSLV2|SSLV3|TLSV1|TLSV11|TLSV12] [CERTMD5 checksum]>, ...
                [with TIMEOUT X SECONDS]
                [using HOSTNAME hostname]
    set eventqueue         #默认当邮件服务器不可用时使用eventqueue存储报警事件
         basedir /var/monit  
         slots 100            #限制队列大小

set mail-format {     设置邮件告警的格式

from: monit@$HOST

subject: monit alert --  $EVENT $SERVICE

message: $EVENT Service $SERVICE

Date:        $DATE

Action:      $ACTION

Host:        $HOST

Description: $DESCRIPTION

Your faithful employee,

Monit

}

set alert sysadm@foo.bar   设置接收告警的邮箱

以上是全局的配置,具体的services监控语法后面会介绍

3.2  进程监控

在 /etc/monit.d/下创建 nginx ,,并重启monit。内容如下

check process nginx with pidfile /usr/local/xywy/nginx/run/nginx.pid
start program = "/usr/local/xywy/nginx/sbin/nginx" with timeout 30 seconds
stop program = "/usr/local/xywy/nginx/sbin/nginx -s stop"

3.3 监控文件

在/etc/monit.d/下创建monit_test ,并重启monit,内容如下

check file monit.conf path /etc/monit.conf
group system
if changed sha1 checksum
then exec "/usr/local/bin/monit -c /etc/monit.conf reload"
 

3.4  监控文件设备

 
check device VAR_LOG with path /var/log
if space usage > 85% then alert check filesystem tmpfs with path /var
if space usage > 80% then alert

下面是配置综合案例

check process sshd with pidfile /var/run/sshd.pid
  start program  "/etc/init.d/sshd start"
  stop program  "/etc/init.d/sshd stop"
  if failed port 22 protocol ssh then restart
  if 5 restarts within 5 cycles then timeout check process mysql with pidfile /var/run/mysqld/mysqld.pid
  group database
  start program = "/etc/init.d/mysqld start"
  stop program = "/etc/init.d/mysqld stop"
  if failed host 127.0.0.1 port 3306 then restart
  if 5 restarts within 5 cycles then timeout check process nginx with pidfile /var/run/nginx.pid
   start program = "/etc/init.d/nginx start"
   stop program  = "/etc/init.d/nginx stop"
   if failed host www.vpsee.com port 80 protocol http
      then restart check process php_cgi with pidfile /var/run/php_cgi.pid
   start program = "/etc/init.d/php_cgi start"
   stop program  = "/etc/init.d/php_cgi stop"
   if failed host 127.0.0.1 port 9000 then restart
   if 5 restarts within 5 cycles then timeout check process apache with pidfile /var/run/httpd.pid
  group www
  start program = "/etc/init.d/httpd start"
  stop program  = "/etc/init.d/httpd stop"
  if failed host www.vpsee.com port 8080 protocol http
     then restart
  if cpu is greater than 80% for 2 cycles then alert
  if cpu > 80% for 5 cycles then restart
  if totalmem > 512 MB for 5 cycles then restart
  if children > 200 then restart
  if loadavg(5min) greater than 10 for 8 cycles then stop
  if 3 restarts within 5 cycles then timeout
 

3.5 monit命令使用

-c  指定配置文件

-d  后台运行

-l    指定logfile

-p  指定pid file

-s  指定statefile

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

monit介绍和配置的更多相关文章

  1. 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

     1 PersonTestMapper.xml中的内容如下: <?xmlversion="1.0"encoding="UTF-8"?> < ...

  2. python学习第二讲,pythonIDE介绍以及配置使用

    目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以 ...

  3. Monit安装与配置

    Monit安装与配置 monit 监控并自动重启服务 官方文档

  4. OSPF协议介绍及配置 (上)

    OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...

  5. x-pack 功能介绍及配置传输层安全性(TLS / SSL)

    x-pack 功能介绍及配置传输层安全性(TLS / SSL) 学习了:https://blog.csdn.net/wfs1994/article/details/80411047

  6. mysql多实例介绍及配置

    mysql多实例介绍及配置 1.mysql多实例介绍 1.1 什么是mysql多实例 mysql多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过 ...

  7. 13.LAMP架构介绍及配置

    LAMP架构介绍及配置 LAMP简介与概述 LAMP概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境. LAMP是一 ...

  8. Rsync原理介绍及配置应用

    1.前言 基于LAN或WAN的网络应用之间进行数据传输或者同步非常普遍,比如远程数据镜像.备份.复制.同步,数据下载.上传.共享等等.对此,最简单.直接的做法是对数据进行完全复制.然而,数据在网络上来 ...

  9. 日志组件logback的介绍及配置使用方法

    一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-acc ...

随机推荐

  1. day1-接口测试_jmeter_postman

    1.postman测试接口六种类型,(注意1.每个请求最好使用独立的dome) 1.1 请求获取学生信息接口,请求方式为get,路径:/api/x/x,唯一参数stu_name=XXX;直接在输入地址 ...

  2. 阿里云ACE深圳同城会 开始报名

    大家好,阿里云 ACE深圳同城会本周末第一活动,主要大家一起聚聚,互相认识和熟悉,未来一起玩儿一起进步~ 通知大家一个好消息,当前凡是加入深圳ACE同城会组织(群)的朋友,通过跟群主报名申请,将有机会 ...

  3. 2017年50道Java线程面试题

    下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...

  4. 【springboot】【redis】springboot+redis实现发布订阅功能,实现redis的消息队列的功能

    springboot+redis实现发布订阅功能,实现redis的消息队列的功能 参考:https://www.cnblogs.com/cx987514451/p/9529611.html 思考一个问 ...

  5. mysql 正则表达式判断是否数字

    select ('123a' REGEXP '[^0-9.]'); --‘123a'中含有字符'a' 输出结果为1 mysql中常量true输出为1 false输出为0

  6. Android 仿QQ界面的实现

    废话不说  上图  适合新手学习 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQ ...

  7. TensorFlow实战Google深度学习框架8-9章学习笔记

    目录 第8章 循环神经网络 第9章 自然语言处理 第8章 循环神经网络 循环神经网络的主要用途是处理和预测序列数据.循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系.也就是说,循环神经 ...

  8. [开源]开放域实体抽取泛用工具 NetCore2.1

    开放域实体抽取泛用工具 https://github.com/magicdict/FDDC 更新时间 2018年7月16日 By 带着兔子去旅行 开发这个工具的起源是天池大数据竞赛,FDDC2018金 ...

  9. 【转】最近很火的 Safe Area 到底是什么

    iOS 7 之后苹果给 UIViewController 引入了 topLayoutGuide 和 bottomLayoutGuide 两个属性来描述不希望被透明的状态栏或者导航栏遮挡的最高位置(st ...

  10. hive SQL 静态分区和 动态分区

    Hive 分区介绍: hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition) hive中创建分区表没 ...