什么是monit
Monit是一個跨平台的用來監控Unix/linux系統(比如Linux、BSD、OSX、Solaris)的工具。Monit特別易於安裝,而且非常輕量級(只有500KB大小),並且不依賴任何第三方程序、插件或者庫。
Monit可以監控服務器進程狀態、端口狀態,HTTP/TCP狀態碼、服務器資源變化、文件系統變動等等,根據這些變化,可以設定郵件報警、重啟進程或服務。易於安裝、輕量級的實現以及強大的功能,讓Monit成為一個理想的后備監控工具。
monit不像zabbix功能那么強大,但是勝在輕量級,且具備基本所有的監控需求,比較適合中小型創業公司的使用。
官網:https://mmonit.com/monit
安裝
yum install monit
如何配置
使用yum安裝默認配置文件在:
/etc/monitrc # 全局參數配置文件
/etc/monit.d/ # 在這個目錄下新增每個待監控服務的配置
編輯全局參數配置文件/etc/monitrc,我的配置如下
vim /etc/monitrc
#設置周期,每60秒自動檢測一次
set daemon 30
#設置報警郵件發送格式
set mailserver smtp.163.com port 25 USERNAME "xxxxx@163.com" PASSWORD "xxxxxx"
set mail-format {
from: xxxx@163.com
subject: monit alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
}
#設置報警郵件發給誰,默認只會發送一次報警。
#with reminder on 3 cycles表示如果服務一直處於失敗,則基於周期最多發送3次報警
set alert xxxy@qq.com with reminder on 3 cycles
#Monit Web界面相關的訪問配置,如不使用則不需要配置(web管理界面需要額外的M/Monit項目)
set httpd port 2812
allow app:app
set eventqueue basedir /var/monit slots 1000
#包含所有需要監控服務的子配置項,這里使用了文件名通配符
include /etc/monit.d/*.monitrc.conf
監控mongodb配置示例(利用端口監控)
#匹配進程名 CHECK PROCESS mongo MATCHING mongo #配置服務啟動和重啟命令 start program = "/usr/bin/sudo service mongodb start" restart program = "/usr/bin/sudo service mongodb restart" #如果端口27017無法訪問則認為服務失敗,發報警郵件並重啟服務 if failed port 27017 type tcp then alert if failed port 27017 type tcp then restart #如果在三個周期內重啟了3次,則不再監控 if 3 restarts within 3 cycles then unmonitor
monit相關命令
monit # 啟動monit daemon
monit reload # 當更新了配置文件需要重載
monit status # 查看所有服務狀態
monit status nginx # 查看nginx服務狀態
monit stop all # 停止所有服務
monit stop mongo # 停止mongo服務
monit start all # 啟動所有服務
monit start mongo # 啟動mongo服務
