Monit安装部署
简介
Monit是一个用于管理和监控Unix系统的小型开源工具,它可以自动执行维护和维修。
下载安装
从官网找到操作系统对应的版本进行下载。可以直接下载编译好的二进制文件程序。
Monit的运行对libnsl有依赖,需要提前安装相关软件包。
dnf install libnsl -y
将下载好的压缩包解压到/usr/local下,建立软链接,并修改文件权限。
tar -zxf monit-5.34.0-linux-x64.tar.gz -C /usr/local
ln -s /usr/local/monit-5.34.0/ /usr/local/monit
ln -s /usr/local/monit/bin/monit /usr/local/bin/monit
cp /usr/local/monit/conf/monitrc /etc/
chown -R root:root /usr/local/monit/
将Monit添加到systemd守护,写入monit.service文件内。
cat > /usr/lib/systemd/system/monit.service <<EOF
[Unit]
Description=Pro-active monitoring utility for unix systems
After=network-online.target
Documentation=man:monit(1) https://mmonit.com/wiki/Monit/HowTo
[Service]
Type=simple
KillMode=process
# USER=username
# GROUP=groupname
# ExecStartPre=/bin/rm -f /home/username/.monit.pid
ExecStart=/usr/local/bin/monit -I
ExecStop=/usr/local/bin/monit quit
ExecReload=/usr/local/bin/monit reload
Restart=always
RestartSec=20s
StandardOutput=null
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable monit.service
systemctl start monit.service
根据需要可以自定义配置文件路径
monit -c /etc/monitrc
配置样例
官方已经给出多个配置样例。
MySQL
check process mysql with pidfile /opt/data/mysql/mysql.pid
group database
start program = "/usr/bin/systemctl start mysqld"
stop program = "/usr/bin/systemctl stop mysqld"
if failed host 127.0.0.1 port 3306 protocol mysql then restart
Nginx
check process nginx with pidfile /usr/local/nginx/nginx.pid
start program = "/usr/bin/systemctl start nginx"
stop program = "/usr/bin/systemctl stop nginx"
if failed
host 127.0.0.1 port 80 and
send "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"
expect "HTTP/[0-9\.]{3} 200.*"
then restart