相信很多人都遇到过 “502错误”、 “2002数据库无法连接” “ERR_NAME_NOT_RESOLVED” 等问题吧,一般来说是 Apache Httpd、Nginx、PHP、MySQL 等软件崩溃或者不稳定出现了相关问题。
我们可以利用Monit来监控服务器和环境,当出现意外的时候还可以自动实现重启。
安装
更新软件源缓存
apt update
安装 Monit
apt install monit -y
升级
关闭 monint
service monit stop
安装 html2text以自动解析最细版本:
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
创建 SSL 证书,实现 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
创建新配置
创建一份新的 /etc/monit/monitrc 文件,内容:
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/*
给予权限
chmod 0700 /etc/monit/monitrc
检查配置是否正确,运行
monit -t
如果反馈下面的语句就是正常的:
Control file syntax OK
重启服务
systemctl restart monit
访问
当问https://yourip:52822输入用户名: mf8密码:www.mf8.biz就可以访问管理页面了。