驰网飞飞 发表于 2026-1-6 14:10:12

Monit监控软件安装与配置教程

Monit是一款开源的轻量级系统监测软件,适用于Unix/Linux、BSD、macOS等平台,主要用于监控和管理进程、程序、文件、目录和设备运行状态。其通过配置文件实现自动化维护,支持服务异常时自动重启、发送邮件告警,并内置HTTPWeb界面便于远程管理。

1、安装
可以使用yum进行安装yum -y install monit,当然,你也可以使用源码进行安装。下载导url如下:https://mmonit.com/monit/dist/binary/

2、monit配置
monit的配置一般情况下分为两个地方,分别是/etc/monit.conf和/etc/monit.d/*.conf,其中,/etc/monit.conf配置全局的监控规则,而/etc/monit.d/*.conf配置单个进程的检查项。二者通过include的方法来进行关联,如下:
cat /etc/monit.conf
monit.conf文件中最后行如下:
# Include all files from /etc/monit.d/
include /etc/monit.d/*.conf可以看到,在/etc/monit.conf的最后,是使用include的方法将/etc/monit.d/*.conf给包含进来的,而*.conf文件一般是我们配置的一个一个的监控项,例如sys.conf,disk.conf,mem.conf,cpu.conf等等,分别用来监控系统状态、磁盘状态、内存、CPU等,当然,可以将它们写在一起,除此之外,如果你启动了一个服务server,那么可以进行一个配置server.conf,将server这个进程监控起来,一旦由于某种原因,该进程被kill掉了,monit可以将它重新拉起来,起到保护进程的作用。

配置的具体内容:
首先我们来看/etc/monit.conf中的内容:
# Check the time interval (second)
set daemon                            ###监控间隔时间,单位是秒
    with start delay                  ###在monit进程启动10s之后才进行监控

set logfile /var/log/monit.log          ###默认的监控日志
set idfile /var/monit/.monit.id         ###设置监控唯一id的文件位置
set statefile /var/monit/.monit.state   ###默认存储每个周期内monitorining状态的文件

set mailserver XXXXXXXXXport XXX         ###默认的主邮件服务器和端口
    username "XXXXXXXXX" password "XXXXXXXXX"   ###邮箱的账号和密码
      with timeoutseconds         ###默认的超时时间

set eventqueue          ###当邮件因为某种原因不可用的时候,会暂存在这里
    basedir /var/monit### set the base directory where events will be stored,也就是邮件的存放地址
    slots            ### optionally limit the queue size,限制邮件队列的大小

set mail-format {       ###设置邮件的格式
    from: XXXX@XXXXXX   ###邮件来源
    subject: $HOST's $SERVICE $ACTION | $DESCRIPTION
    message:
Date:   $DATE
Action: $ACTION
Host:   $HOST
Description:
    Host $HOST's [$SERVICE] $DESCRIPTION
    $EVENT Service $SERVICE
    $DESCRIPTION
}

set httpd portand         ###设置web监控,用于web界面,由于使用MMonit的界面管理,也可以不配置
    allow localhost
    allow user:password

# Include all files from /etc/monit.d/
include /etc/monit.d/*.conf
再来看看/etc/monit.d/*.conf中的内容吧:
#test
check process test matching "/tmp/test.sh"
    group root
    start program = "/bin/sh /tmp/test.sh"
    alert yeyz@XXXXX.cn only on {nonexist}如上配置,是指实时查找该进程,如果进程不存在的时候,会进行邮件告警。
当然,可以使用restart的命令,重新拉起该服务。

3、常用命令
最后列举一些常用的命令
monit -t # 配置文件检测
monit # 启动monit daemon
monit reload # 当更新了配置文件需要重载
monit status # 查看所有服务状态
monit status consul # 查看consul服务状态
monit stop all # 停止所有服务
monit start all # 启动所有服务
monit start consul#启动服务
monit -V # 查看版本关于monit的命令,还有很多,想要详细了解,可以查看monit的官方文档,地址:
https://mmonit.com/monit/documentation/monit.html#SERVICE-GROUPS

感谢您的阅读,服务器大本营-技术文章内容集合站,助您成为更专业的服务器管理员!
页: [1]
查看完整版本: Monit监控软件安装与配置教程

点击直接加入[服务器大本营QQ频道]