Monit-Linux系统性能监视工具

Monit - Linux System Performance Monitoring tool

Monit是一个小型开源实用程序,用于管理和监视Unix系统服务,例如(Apache,MariaDB,FTP,SSH,Sendmail,DNS等),程序,文件,文件系统和目录。 还监视本地主机上的常规系统资源,例如CPU使用率,内存和平均负载。 Monit会进行自动维护和修复,并且可以在错误情况下执行有意义的因果操作。 所有Linux发行版均在其官方存储库中包含Monit,因此我们可以使用发行版官方软件包轻松进行安装。

检查其他Linux监视工具

如果发生错误情况,Monit可以采取行动,例如; 如果Apache未运行,Monit可以自动再次启动Apache。 此外,当它使用服务器上的过多资源时,它将自动停止或重新启动特定服务,并向您发送警报消息。

监视器监视文件,目录和文件系统的更改,例如时间戳记更改,校验和更改或大小更改。 监视与本地主机或远程主机上的各种服务器的网络连接。 支持TCP,UDP和Unix域套接字。 Monit可以轻松地与init,upstart或systemd集成,并且可以使用现有的运行级脚本来管理服务。

Monit内置了一个轻量级的HTTP(S)接口,可用于浏览Monit服务器并检查所有受监视服务的状态。 从Web界面,您可以启动,停止和重新启动进程,以及禁用或启用对服务的监视。

1)在Linux上安装Monit

我们可以在基于Debian的系统(Debian,Ubuntu和Mint)上直接安装Monit,但必须启用EPEL存储库才能在基于RPM的系统(RHEL和CentOS)上安装Monit。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<span style="color: #848484;">[CentOS/RHEL & Upto Fedora 21]</span>
# yum install monit

<span style="color: #848484;">[Fedora 22 & later]</span>
# dnf install monit

<span style="color: #848484;">[Debian, Ubuntu & Mint]</span>
$ sudo apt-get install monit

<span style="color: #848484;">[suse & openSUSE]</span>
# zypper install monit

<span style="color: #848484;">[ArchLinux/Manjaro]</span>
# pacman -S monit

2)配置监控

为了使用Monit,我们需要从Monit配置文件中取消注释以下几行。 默认情况下,Monit监视Monit配置文件中定义的每个2 minutes的所有服务。 日志存储在RPM上的/var/log/monit和DEB系统上的/var/log/monit.log中。

  • /etc/monit.conf:Fedora/CentOS/RHEL上的Monit配置文件

  • / etc / monit / monitrc:Ubuntu / Debian / Mint上的Monit配置文件

  • / etc / monit / monitrc:基于Arch的系统上的Monit配置文件

  • / etc / monitrc:openSUSE上的Monit配置文件

  • 2812:Web界面端口号

  • 1
    2
    3
    4
    5
    $ sudo nano /etc/monit.conf
    set httpd port 2812 and
    use address localhost  # only accept connection from localhost
    allow localhost        # allow localhost to connect to the server and
    allow admin:monit      # require user 'admin' with password 'monit'

    完成上述更改后,您需要启动监视服务才能使更改生效。

    1
    2
    3
    4
    5
    <span style="color: #848484;">[Start Monit service on SysVinit]</span>
    $ sudo service monit start

    <span style="color: #848484;">[Start Monit service on systemd]</span>
    $ sudo systemctl restart monit.service

    3)访问Monit Web界面

    确保您已安装apache来访问Monit Web界面。 导航到http:// localhost:2812或http://example.com:2812或http:// IP:2812,然后输入用户名admin和密码monit。 您将获得类似于以下屏幕的信息。
    install-monit-on-linux-1

    4)向monit添加服务

    默认情况下,Monit配置文件具有一些服务配置,只需在Fedora / CentOS / RHEL上打开Monit配置文件/etc/monit.conf,在Ubuntu / Debian / Mint上打开/etc/monit/monitrc并导航到Services section,然后取消注释您所使用的每个服务下的行 要监视,然后最终重新启动。 有关配置示例,请访问Monit网站。 我在这里添加了一些示例。

    Apache on Systematic(Manjaro)

    1
    2
    3
    check process apache with pidfile /var/run/httpd/httpd.pid
    start program ="systemctl start httpd.service" with timeout 60 seconds
    stop program  ="systemctl stop httpd.service"

    Nginx on systemd

    1
    2
    3
    4
    check process nginx with pidfile /var/run/nginx.pid
      start program ="systemctl start nginx.service"
      stop program  ="systemctl stop nginx.service"
      group www-data (for ubuntu, debian)

    SysVinit上的proftpd

    1
    2
    3
    4
    check process proftpd with pidfile /var/run/proftpd.pid
       start program ="/etc/init.d/proftpd start"
       stop program  ="/etc/init.d/proftpd stop"
       if failed port 21 protocol ftp then restart