Monit 监控你的 ZabbixServer
发表于 2022/02/23 更新于 2022/02/23 280 字 2 分钟
AI 摘要 由 AI 自动生成
|
Monit 是一个用于管理和监视 Unix 系统的小型开源实用程序。使用 Monit 对进程进行自动维护管理,能在进程出现错误情况下执行有意义的操作。
我们使用 Monit 来监控 ZabbixServer 及其一些依赖的服务,例如 Nginx、MySQL、PHP-FPM。
安装 Monit
下载地址:https://mmonit.com/monit/#download
你可以下载已经编译好的二进制包,或自行编译。我的系统环境是 Debian11。
二进制文件放到/usr/bin,配置文件放到/etc,创建一个/etc/monit.d/文件夹,用来存放监控脚本。
配置
注册服务:vim /lib/systemd/system/monit.service
[Unit]
Description=A small Open Source utility for managing and monitoring Unix systems
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/monit -I
ExecStop=/usr/bin/monit quit
ExecReload=/usr/bin/monit reload
[Install]
WantedBy=multi-user.target
编辑 monitrc, vim /etc/monitrc,取消对 include /etc/monit.d/* 的注释。
编写对 Nginx 的监控脚本
vim /etc/monit.d/nginx
## nginx
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/sbin/service nginx start"
stop program = "/usr/sbin/service nginx stop"
if failed host 127.0.0.1 port 80 type tcp then restart
if 5 restarts within 5 cycles then timeout
编写对 MySQL 的监控脚本
vim /etc/monit.d/mysql
## mysql
check process mysql with pidfile /var/run/mysqld/mysqld.pid
start program = "/usr/sbin/service mysql start"
stop program = "/usr/sbin/service mysql stop"
if failed unixsocket /var/run/mysqld/mysqld.sock then restart
if 5 restarts within 5 cycles then timeout
编写对 PHP-FPM 的监控脚本
vim /etc/monit.d/php-fpm
## php-fpm
check process php-fpm with pidfile /var/run/php/php7.4-fpm.pid
start program = "/usr/sbin/service php7.4-fpm start"
stop program = "/usr/sbin/service php7.4-fpm stop"
if failed unixsocket /var/run/php/zabbix.sock then restart
if 5 restarts within 5 cycles then timeout
编写对 Zabbix-Server 的监控脚本
vim /etc/monit.d/zabbix-server
## zabbix_server
check process zabbix_server with pidfile /var/run/zabbix/zabbix_server.pid
start program = "/usr/sbin/service zabbix-server start"
stop program = "/usr/sbin/service zabbix-server stop"
if failed host 127.0.0.1 port 10051 type tcp then restart
if 5 restarts within 5 cycles then timeout
systemctl restart monit,使配置生效。
monit status 查看监控状态。

总结
这里使用 monit 一般就是监控 PID,端口、Sock 等,发现状态不正常则重启服务。
其他玩法可以参考下面的文档。