Monit - Linux系統進程、文件、目錄和設備的監測軟件
Monit是一款功能非常豐富的進程、文件、目錄和設備的監測軟件,適用于Linux/Unix平臺。 它可以自動修復那些已經停止運作的程序,特使適合處理那些由于多種原因導致的軟件錯誤,同時Monit 包含一個內嵌的 HTTP(S) Web 界面,你可以使用瀏覽器方便地查看 Monit 所監視的服務器。
Monit官網:http://mmonit.com/monit/
1、安裝Monit
CentOS可以到:http://pkgs.repoforge.org/monit/?下載對應位數rpm包安裝。
32位:wget -c?http://pkgs.repoforge.org/monit/monit-5.2.5-1.el5.rf.i386.rpm;rpm -ivh?monit-5.2.5-1.el5.rf.i386.rpm
64位:wget -c?http://pkgs.repoforge.org/monit/monit-5.2.5-1.el5.rf.x86_64.rpm;rpm -ivh?monit-5.2.5-1.el5.rf.x86_64.rpm
Debian可以直接:apt-get install monit 安裝。
2、修改配置文件
CentOS用RPM包安裝的話配置文件在: /etc/monit.conf;Debian apt-get安裝的話配置文件在:/etc/monit/monitrc;
下面是一個簡單的例子,配置文件中已經包含了大量的例子,可以看配置文件參考。
set daemon 120 #設置檢測時間
set logfile /var/log/monit.log #monit日志
set alert www@vpser.net with reminder on 1 cycle #出現1次錯誤的時候發報警郵件到指定的郵箱
set mailserver mail.vpser.net #設置郵件服務器
set httpd port 2812 and # 設置http監控頁面的端口
use address 74.207.246.99 # http監控頁面的IP
allow localhost # 允許本地訪問
allow 123.23.45.0/24 # 允許此IP段訪問
#allow 0.0.0.0/0.0.0.0 # 允許所有IP訪問
allow username:password #設置訪問用戶名密碼
#檢測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 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
#檢測mysql服務
check process mysql with pidfile /usr/local/mysql/var/vpser.pid
group database
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
#檢測nginx服務
check process nginx with pidfile /usr/local/nginx/logs/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
if failed host www.0794baidu.com port 80 protocol http
then restart
配置中的pid及啟動、關閉腳本的路徑一定要是全路徑,且參數一定要正確否則會造成無法正常檢測或正常啟動。
看了一下php-fpm貌似用Monit還不是很好監控。
如果添加了http可以直接使用http://ip:2812 進行管理。
3、啟動/停止Monit
CentOS:
chkconfig monit on //加入開機啟動
/etc/init.d/monit {start|stop|restart|force-reload|syntax}
Debian:
編輯:/etc/default/monit 文件,查找 startup=0 ,將0改為1,保存。
update-rc.d -f monit defaults
/etc/init.d/monit {start|stop|restart|force-reload|syntax}
當然如果使用監控寶服務也不錯,只不過免費版的檢測間隔長些、對檢測的數量有限制。
如有問題歡迎反饋,歡迎到VPS論壇交流。
原創文章,謝絕轉載!
>>轉載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/manage/monit.html










Thank you for information I translated to English. I need to know about VPS. and I see you page.
@Mr.Cong, 這個好像不行,看配置文件的例子只能檢查gid、uid 權限、時間戳
如何監控目錄,并生成日志(包括目錄里面什么文件被修改了)?
比如我需要監控 /home/wwwroot 目錄
@max, 如果你啟用了include 就需要把那幾個目錄手動創建上。
我是按照你上面的方法安裝的,如果目錄不存在是應該手動創建目錄嗎?請指教
@max, include 的目錄文件不存在
/var/monit/id 目錄或文件不存在
monit無法啟動
Starting monit: /etc/monit.conf:246: Warning: include files not found '/etc/monit.d/*'
monit: Error opening the idfile '/var/monit/id' -- No such file or directory
請問是什么意思?
占用1M 這個給力 試試
貌似不錯
多多學習啊
@centos, 占的很少,測試的一臺vps占了1MB左右
@小陳, rpm -qa | grep monit
rpm -e 上面返回的名字
debian:apt-get remove monit
這個占多內存不
不會用 , 球卸載教程