相信很多人都遇到過 “502錯誤”、 “2002數(shù)據(jù)庫無法連接” “ERR_NAME_NOT_RESOLVED” 等問題吧,一般來說是 Apache Httpd穿铆、Nginx、PHP斋荞、MySQL 等軟件崩潰或者不穩(wěn)定出現(xiàn)了相關(guān)問題荞雏。
我們可以利用Monit來監(jiān)控服務(wù)器和環(huán)境,當(dāng)出現(xiàn)意外的時候還可以自動實現(xiàn)重啟平酿。
安裝
更新軟件源緩存
apt update
安裝 Monit
apt install monit -y
升級
關(guān)閉 monint
service monit stop
安裝 html2text以自動解析最細(xì)版本:
apt install html2text -y
自動更新
MONITVER=$(wget -q https://mmonit.com/monit/dist/binary/ -O - | html2text | grep DIR | tail -n 1 | tr -d / | awk '{print $2}')
cd /tmp
wget https://mmonit.com/monit/dist/binary/$MONITVER/monit-$MONITVER-linux-x64.tar.gz
tar -xf monit-*
cd monit-*
sudo cp bin/monit /usr/bin/monit
sudo ln -s /etc/monit/monitrc /etc/monitrc
重啟monint
service monit restart
配置
備份原始配置
mv /etc/monit/monitrc /etc/monit/monitrc.bak
創(chuàng)建 SSL 證書凤优,實現(xiàn) HTTPS 安全傳輸,此過程也可以使用 Let's Encrypt 的證書參考蜈彼,演示用的是 OpenSSL 的自簽筑辨,一路回車就行 :
mkdir -p /var/certs/
openssl req -new -x509 -days 365 -nodes -out /var/certs/monit.pem -keyout /var/certs/monit.pem
chmod 0700 /var/certs/monit.pem
創(chuàng)建新配置
創(chuàng)建一份新的 /etc/monit/monitrc 文件幸逆,內(nèi)容:
set daemon 60 #check services every 60 seconds
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
#Event queue
set eventqueue
basedir /var/lib/monit/events # set the base directory where events will be stored
slots 100???????????????????? # optionally limit the queue size
#Mail settings
#http settings
set httpd port 52822 address 0.0.0.0??# 配置端口為 adapters
ssl enable #啟用 SSL
pemfile??/var/certs/monit.pem #生成的 SSL 地址
allow 0.0.0.0/0.0.0.0 # 允許訪問的IP
allow monit.mf8.biz????????# 綁定的域名
allow mf8:"www.mf8.biz"??????# 賬號為 mf8 棍辕,密碼為 www.mf8.biz
#allow modular structure
include /etc/monit/conf.d/*
include /etc/monit/conf-enabled/*
給予權(quán)限
chmod 0700 /etc/monit/monitrc
檢查配置是否正確暮现,運行
monit -t
如果反饋下面的語句就是正常的:
Control file syntax OK
重啟服務(wù)
systemctl restart monit
訪問
當(dāng)問https://yourip:52822輸入用戶名: mf8密碼:www.mf8.biz就可以訪問管理頁面了。