Monit是一个免费的开源流程监控工具,可用于使用Web浏览器和命令行监控系统进程。 它还用于监视文件,目录和设备的大小更改和权限更改。 如果下降,Monit会自动修复特定的进程。 Monit还可以在基于Linux的系统上监控Apache,Sendmail,Nginx,FTP,SSH和MySQL等大多数服务。 您可以使用Monit监视远程主机TCP / IP端口,协议和ping。 Monit有能力停止使用高资源的特定流程。 Monit会在您的服务器上保持观察状态并发送有关任何严重错误状况和恢复状态的警报。
特征
- 自动启动,停止和杀死具体过程。
- 用户友好的Web界面进行状态监控。
- 通过电子邮件通知任何关键条件。
- 检查系统负载,CPU使用率,RAM使用情况,磁盘,文件大小更改,权限更改等。
- 监控各种协议HTTP,FTP,SSH,POP,IMAP,LDAP,IMAP和SMTM。
- 通过syslog或自己的日志文件记录。
在本教程中,我们将介绍如何在Debian 9上设置和使用Monit。
要求
- 您的系统上安装了一个新的Debian 9服务器。
- 您的服务器上设置了root密码。
更新系统
我们先从您的系统更新到最新的稳定版本。 您可以使用以下命令更新它:
apt-get update -y
apt-get upgrade -y
更新系统后,重新启动系统,使以下命令生效:
reboot
重新启动后,使用root用户登录,继续下一步。
2.安装Monit
默认情况下,Monit在Ubuntu存储库中可用。 您可以通过运行以下命令轻松安装它:
apt-get install monit -y
安装Monit后,启动Monit服务,并通过运行以下命令使其启动:
systemctl start monit
systemctl enable monit
您可以随时通过运行以下命令检查Monit服务的状态:
systemctl status monit
3配置Monit
Monit默认配置文件monitrc位于/ etc / monit /目录,其他进程和服务器特定的配置文件位于/ etc / monit / conf-available / diractory。 Monit配有内置的Web界面,默认情况下禁用。 您可以通过编辑/ etc / monit / monitrc文件来启用它,如下所示:
nano /etc/monit/monitrc
更改以下行:
# 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'
至
set httpd port 2812 and allow admin:monit # require user 'admin' with password 'monit'
完成后保存并关闭文件,然后重新启动monit服务以使用以下命令应用这些更改:
systemctl restart monit
您可以使用以下命令检查Monit服务状态:
netstat -ant | grep :2812
您应该看到以下输出:
tcp 0 0 0.0.0.0:2812 0.0.0.0:* LISTEN 1615/monit tcp6 0 0 :::2812 :::* LISTEN 1615/monit
4访问Monit Web界面
您可以使用URL http://192.168.0.227:2812访问Monit Web界面,然后输入用户名admin和密码monit 。 您应该看到Monit仪表板如下:
您可以使用以下命令查看Minit的状态:
monit status
您应该看到以下输出:
System 'localhost' status Running monitoring status Monitored load average [0.68] [0.78] [0.45] cpu 0.0%us 0.0%sy 0.0%wa memory usage 294.1 MB [14.7%] swap usage 0 B [0.0%] data collected Mon, 07 Aug 2017 20:12:36
完成后,可以继续下一步。
5添加监控服务
Monit Web界面配置完成后,您需要添加要监视的服务。
在这里,我们将举一些例子来监视Apache,Proftpd和Rsyslog等一些服务。
为Apache服务配置Monit
默认情况下,Monit附带了某些流程和服务的预定义模板。 您可以在/ etc / monit / conf-available /目录中找到这些模板。 默认情况下,Apache的模板在Monit中可用。 所以你只需要启用它。 您可以通过运行以下命令来启用它:
ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/
接下来,重新启动monit servcie以使用以下命令应用这些更改:
systemctl restart monit
为Rsyslog服务配置Monit
首先,使用以下命令启用Rsyslog模板:
ln -s /etc/monit/conf-available/rsyslog /etc/monit/conf-enabled/
接下来,重新启动monit服务以使用以下命令应用这些更改:
systemctl restart monit
为Proftpd服务配置Monit
Proftpd的模板不适用于Monit。 所以你需要为Proftpd创建配置文件。 您可以通过在/ etc / monit / conf-available /目录中创建proftpd文件来执行此操作,如下所示:
nano /etc/monit/conf-available/proftpd
添加以下行:
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
完成后保存并关闭文件,然后使用以下命令启用配置文件:
ln -s /etc/monit/conf-available/proftpd /etc/monit/conf-enabled
接下来,使用以下命令检查配置文件是否有任何语法错误
monit -t
最后,重新启动monit服务以使用以下命令应用这些更改:
systemctl restart monit
配置完所有必需的服务后,请访问Web界面以监控所有服务,如下所示:
接下来,点击服务apache查看有关apache的详细信息:
6通过命令行监视
您还可以从命令行监视Monit。 您可以通过运行以下命令来查看monit的快速摘要:
monit summary
您应该看到以下输出:
The Monit daemon 5.16 uptime: 0m Process 'rsyslogd' Initializing - start pending File 'rsyslogd_bin' Accessible File 'rsyslogd_rc' Accessible File 'rsyslog_file' Does not exist Process 'proftpd' Running Process 'apache' Execution failed File 'apache_bin' Accessible File 'apache_rc' Accessible System 'localhost' Running
您还可以使用以下命令查看所有服务的状态:
monit status
您应该看到以下输出:
The Monit daemon 5.16 uptime: 0m Process 'rsyslogd' status Initializing - start pending monitoring status Initializing data collected Mon, 07 Aug 2017 20:41:18 File 'rsyslogd_bin' status Accessible monitoring status Monitored permission 755 uid 0 gid 0 size 585.3 kB timestamp Tue, 25 Oct 2016 11:38:40 checksum d71f3d1c58df065e3aac1e2c566a6436 (MD5) data collected Mon, 07 Aug 2017 20:41:18 File 'rsyslogd_rc' status Accessible monitoring status Monitored permission 755 uid 0 gid 0 size 2.7 kB timestamp Tue, 25 Oct 2016 11:48:29 checksum a1ef1bb01ba370040d705c92fc09e92e (MD5) data collected Mon, 07 Aug 2017 20:41:18 File 'rsyslog_file' status Does not exist monitoring status Monitored data collected Mon, 07 Aug 2017 20:41:18 Process 'proftpd' status Running monitoring status Monitored pid 4915 parent pid 1 uid 0 effective uid 119 gid 65534 uptime 3m threads 1 children 0 memory 3.6 MB memory total 3.6 MB memory percent 0.2% memory percent total 0.2% cpu percent 0.0% cpu percent total 0.0% port response time 10.737 ms to [localhost]:21 type TCP/IP protocol FTP data collected Mon, 07 Aug 2017 20:41:18 Process 'apache' status Execution failed monitoring status Monitored data collected Mon, 07 Aug 2017 20:41:48 File 'apache_bin' status Accessible monitoring status Monitored permission 755 uid 0 gid 0 size 647.0 kB timestamp Sat, 29 Jul 2017 22:19:09 checksum ef2a678bdcd791948ceabc3013d9a2c0 (MD5) data collected Mon, 07 Aug 2017 20:41:18 File 'apache_rc' status Accessible monitoring status Monitored permission 755 uid 0 gid 0 size 7.9 kB timestamp Mon, 07 Aug 2017 20:40:33 checksum 744ef9ca584493299c353e2251cbf993 (MD5) data collected Mon, 07 Aug 2017 20:41:18 System 'localhost' status Running monitoring status Monitored load average [0.96] [0.60] [0.46] cpu 0.0%us 0.0%sy 0.0%wa memory usage 266.4 MB [13.3%] swap usage 2.1 MB [0.4%] data collected Mon, 07 Aug 2017 20:41:18
要查看有关Proftpd服务的详细信息,请运行以下命令:
monit status proftpd
您应该看到以下输出:
The Monit daemon 5.16 uptime: 2m Process 'proftpd' status Running monitoring status Monitored pid 4915 parent pid 1 uid 0 effective uid 119 gid 65534 uptime 6m threads 1 children 0 memory 3.6 MB memory total 3.6 MB memory percent 0.2% memory percent total 0.2% cpu percent 0.0% cpu percent total 0.0% port response time 7.945 ms to [localhost]:21 type TCP/IP protocol FTP data collected Mon, 07 Aug 2017 20:43:49
恭喜! 您已经在Debian 9服务器上成功安装并配置了Monit。