monit的是一个免费的开源和非常有用的工具根据在UNIX / Linux的自动监控和管理服务器进程 , 文件 , 目录 , 校验和, 权限 , 文件系统和服务,如Apache,Nginx的 ,MySQL和FTP,SSH,Sendmail和等系统,并为系统管理员提供优秀和有用的监控功能。
monit具有用户友好的Web界面,您可以在其中直接查看系统状态并使用本机HTTP(S)Web服务器或通过命令行界面设置进程。 这意味着你必须有网络服务器,如Apache或Nginx的安装系统访问和查看monit的Web界面。
另请阅读 : 10 Linux的性能监视工具
Monit能做什么
Monit有能力启动一个进程,如果它没有运行,重新启动一个进程,如果没有响应,如果使用高资源,停止进程。 此外,您还可以使用monit的监视文件 , 目录和文件系统更改 , 校验和变更 , 文件大小的变化或时间戳的变化 。 随着monit的可能监视远程主机的TCP / IP端口, 服务器协议和ping。 Monit保留自己的日志文件和关于任何关键错误条件和恢复状态的警报。
这篇文章是写来描述monit的安装和配置在RHEL,CentOS的 ,Fedora的 ,Ubuntu的 ,Linux Mint的和Debian Linux操作系统的一个简单的指南,但它应该是科学的Linux轻松兼容。
第1步:安装Monit
默认情况下,monit的工具不能从系统基础信息库,你需要添加和启用第三方EPEL软件库在你的RHEL / CentOS的系统安装monit的包。 一旦你添加EPEL软件库,通过运行以下命令Yum安装包。 如图所示为Ubuntu /于Debian / Linux Mint的用户可以轻松地安装使用apt-get命令 。
在RedHat / CentOS / Fedora /
# yum install monit
在Ubuntu / Debian / Linux Mint
$ sudo apt-get install monit
第2步:配置Monit
monit的是很容易配置,其实配置文件被创建是非常容易阅读,使他们更容易为用户理解。 它的目的是监测在每2分钟的正在运行的服务,并保持该记录中的“ 的 / var /数/ monit的 ”。
monit的有它的,使用Web服务器上的端口2812上运行Web界面。 要启用Web界面,您需要在monit配置文件中进行更改。 根据(RedHat的/ CentOS的/ Fedora的 )和/ etc / monit的/ monitrc为(Ubuntu的/于Debian / Linux Mint的 )文件位于/etc/monit.conf的monit的主配置文件。 使用您选择的编辑器打开此文件。
# vi /etc/monit.conf
$ sudo vi /etc/monit/monitrc
接下来,取消注释以下部分,添加您的服务器的IP地址或域名,允许任何人连接和更改monit用户和密码,或者您可以使用默认的。
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' allow @monit # allow users of group 'monit' to connect (rw) allow @users readonly # allow users of group 'users' to connect readonly
配置完成后,您需要启动monit服务以重新加载新的配置设置。
# /etc/init.d/monit start
$ sudo /etc/init.d/monit start
现在,您将能够通过导航到访问monit的Web界面的“http://本地主机:2812”或“http://example.com:2812”。 然后输入用户名“admin”和密码为“monit的 ”。 你应该得到类似下面的屏幕。
Monit Web界面
第3步:添加监控服务
一旦monit的网络界面正确设置,开始添加时要监控到下/etc/monit.conf(RedHat的/ CentOS的/ Fedora的 )和/ etc / monit的/ monitrc为(Ubuntu的/于Debian / Linux Mint的 )文件程序底端。
以下是monit的一些有用的配置示例,可以非常有用的看看服务是如何运行的,它保存其pidfile以及如何启动和停止服务等。
Apache
check process httpd with pidfile /var/run/httpd.pid group apache start program = "/etc/init.d/httpd start" stop program = "/etc/init.d/httpd stop" if failed host 127.0.0.1 port 80 protocol http then restart if 5 restarts within 5 cycles then timeout
Apache2
check process apache with pidfile /run/apache2.pid start program = "/etc/init.d/apache2 start" with timeout 60 seconds stop program = "/etc/init.d/apache2 stop"
Nginx
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop"
MySQL
check process mysqld with pidfile /var/run/mysqld/mysqld.pid group mysql 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
SSHD
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 host 127.0.0.1 port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
一旦配置了所有程序进行监视,检查monit语法错误。 如果发现任何错误修复它们,它不是那么难以弄清楚出了什么问题。 当你得到像“ 控制文件的语法OK”消息,或者如果你看到没有错误,就可以继续前进。
# monit -t
$ sudo monit -t
修复所有可能的错误后,您可以键入以下命令以启动monit服务。
# /etc/init.d/monit restart
$ sudo /etc/init.d/monit restart
您可以通过检查日志文件来验证monit服务是否已启动。
# tail -f /var/log/monit
$ sudo tail -f /var/log/monit.log
示例输出
[BDT Apr 3 03:06:04] info : Starting monit HTTP server at [localhost:2812] [BDT Apr 3 03:06:04] info : monit HTTP server started [BDT Apr 3 03:06:04] info : 'youcl.com' Monit started [BDT Apr 3 03:06:04] error : 'nginx' process is not running [BDT Apr 3 03:06:04] info : 'nginx' trying to restart [BDT Apr 3 03:06:04] info : 'nginx' start: /etc/init.d/nginx
Monit截图
这是添加所有进程监视后看起来monit。
监视所有进程