#[喵咪Liunx(4)Monit進程監控#php
##前言##html
有一段時間沒有更新博客了,最近由於公司項目全球化以及最近慢慢在偏向學習團隊管理忙的有點不可開交了,不過此次要給你們帶來兩篇關於Liunx平常開發維護管理中很是好用的兩款利器,其中一個就是Monit啦,Monit是什麼呢?他是一個進程級別的一個監控軟件,不賣關子咱們就進入到今天的正文當中吧!nginx
附上:web
喵了個咪的博客:w-blog.cncentos
Monit官網地址:https://www.mmonit.com/monit/documentation/monit.html服務器
##1. 問題##ssh
在咱們平時研究同樣東西或者說遇到一項困難時咱們會更具問題來尋找解決方案,那就看待Monit以前就要先了解遇到了什麼問題?學習
筆者就是有意思客戶反映到領導那裏去了,大家平臺怎麼用不了了?,最後一查竟然是Nginx死掉了~~死掉的時候是下午5點完成8點才收到反饋,用戶不反饋就算等到明天可能還不知道!code
Liunx開篇推薦的軟件Supervisor能夠幫助你運行腳本或者說軟件,可是運行的軟件默認連續過快退出三次就結束了,這個時候你怎麼知道沒有運行了?orm
##2. Monit能搞定嗎?##
Monit的核心功能就是郵件通知,當你配置好須要監控的進程以後,不管是進程死亡,或者是進程變動都會發送報警郵件而且會更具你的預先配置好的命令嘗試重啓它,更牛逼的事當monit被關閉的時候也會發送郵件通知Moint被關閉,而且它還能夠完成以下功能!
好比你不是用的雲服務器本身管理的機器,可是機器數量又沒有特別多沒有到要搭建一套完整的監控系統的份上(zabbix或open-falcon)的份上Monit能夠比較好的幫你低成本的解決這個問題
能夠用過web界面監控服務的資源佔用,開始,暫停,重啓等.
這裏筆者仍是使用的centos6.5進行安裝,只須要簡單的yum一下便可
yum install monit
而後經過service命令就能夠開關monit了
service monit start service monit stop
使用monit最重要的就是設置好配置文件,具體的能夠在官方文檔查看這裏只說幾個重要的
# 檢查時間默認30秒一次 set daemon 30 # 郵箱配置({名稱}替換成實際值) set mailserver {smtp地址} username "{郵箱用戶名}" password "{郵箱密碼}" set mail-format { # 郵件模板自定義 from: {郵箱用戶名} subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Service: $SERVICE Description: $DESCRIPTION Your faithful employee, Monit } set alert {接受的郵箱1} set alert {接受的郵箱2} # web訪問配置 默認端口號2812 set httpd port 2812 and use address {能訪問到的外網地址} allow 0.0.0.0/0 #限制的請求IP allow admin:monit #登陸用戶名密碼
基本配置就完成了,若是配置正確咱們就會有道一封Monit啓動的郵件
monit alert -- Monit instance changed {主機名}
Monit instance changed Service {主機名} Date: Fri, 14 Oct 2016 23:23:52 Action: start Host: {主機名} Service: {主機名} Description: Monit 5.14 started Your faithful employee, Monit
而且可以經過配置好的web端口訪問獲得以下界面(一下是配置好監控項纔會有的)
注意:配置文件中還有系統報警等能夠自行了解這裏不作太多說明
重中之重就是監控進程或者是服務器的報警,咱們通常會選擇**/etc/monit.d/**下面創建和監控的進程名同樣的文件,Monit會自動讀取解析,這裏先來介紹幾種常見的配置
使用PID進行監控的基本上是一些程序組件好比Nginx,PHP-FPM,Supervisor,KafKa等,它們都會有一個共同點就是會有一個*.pid的文件來記錄系統進程標示,因此咱們以下配置:
/etc/monit.d/nginx
check process nginx with pidfile /var/run/nginx.pid #經過PID文件監控nginx start program "/etc/init.d/nginx start" #啓動程序 死亡自動啓動 stop program "/etc/init.d/nginx stop" #關閉程序 web界面能夠操做
還有一種就是咱們運行的腳本,不如運行了一個php index.php須要對它進行監控須要以下配置:
/etc/monit.d/phpindex
check process taskEmail with MATCHING 'php index.php' # 經過命令獲取pid監控方式 if changed pid then alert
注意:這裏有過有多個命令都是php index.php會會出現問題
##6. 總結##
你們今天GET到了沒有啊,Monit在平常中能夠在很是低的成本下幫助咱們發現問題及時告知咱們,而且還有一些簡單的web界面的配合,那麼今天就到這裏下一節將給你們介紹一個多服務器管理利器pssh,多謝你們的支持!
注:筆者能力有限有說的不對的地方但願你們可以指出,也但願多多交流!