专栏首页运维经验分享Monit-开源服务器监控工具 原

Monit-开源服务器监控工具 原

Monit-开源服务器监控工具

 发表于 2018-07-02   |   更新时间 2018-08-24

 字数统计: 1,111 |  阅读时长 ≈ 5

Monit-开源服务器监控工具

Monit是一个用于管理和监控Unix系统的小型开源工具. Monit进行自动维护和修理, 并且可以在错误情况下执行有意义的因果作用.

zabbix轻量.

全局配置 - Web状态页面

  • monit-5.25默认监听2812
  • web状态页面的访问是通过SSL加密的
  • 使用admin/monit作为用户名/口令登录
  • 只允许通过localhostmyhost.mydomain.ro和在局域网内部192.168.0.0/16访问
  • Monit使用pem格式的SSL证书

生成一个自签名证书

1 2 3 4

cd /etc/pki/tls/certs/ # 会自动在/etc/ssl/certs/下面复制一份monit.pem # 默认权限是0400, 如果不是就手动修改 ./make-dummy-cert monit.pem

httpd配置

编辑vi /etc/monitrc, 修改相应的内容为:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

set httpd port 2812 and # 只接受来自本地主机的连接(only accept connection from localhost) use address 10.10.10.141 # 允许本地主机连接到服务器和(allow localhost to connect to the server and) allow localhost # 和指定网段(192.168.0.0/16), 或者所有ip都可以访问 allow 0.0.0.0/0.0.0.0 # 需要用户'admin',密码为'monit'(require user 'admin' with password 'monit') allow admin:monit # 启用SSL/TLS并设置服务器证书的路径(enable SSL/TLS and set path to server certificate) with ssl { pemfile: /etc/ssl/certs/monit.pem }

或者

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

set httpd port 2812 and # 只接受来自本地主机的连接(only accept connection from localhost) use address 10.10.10.141 # 允许本地主机连接到服务器和(allow localhost to connect to the server and) allow localhost # 和指定网段(192.168.0.0/16), 或者所有ip都可以访问 allow 192.168.0.0/16 # 配置域名 allow myhost.mydomain.ro # 需要用户'admin',密码为'monit'(require user 'admin' with password 'monit') allow admin:monit # 启用SSL/TLS并设置服务器证书的路径(enable SSL/TLS and set path to server certificate) with ssl { pemfile: /etc/ssl/certs/monit.pem }

全局通知 - 邮件通知

我们至少需要一个可用的SMTP服务器来让Monit发送邮件.

  • 邮件服务器的机器名: smtp.exmail.qq.com
  • Monit使用的发件人: monit@monit.ro
  • 邮件的收件人: test@monit.ro
  • 邮件服务器使用的SMTP端口: 587(默认是25, 根据自己的SMTP服务器确定)

编辑vi /etc/monitrc, 将相应的内容修改为:

1 2 3 4 5 6 7 8 9 10 11 12

set mailserver smtp.exmail.qq.com port 465 set mail-format { from: monit@monit.ro subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } set alert test@qq.com

全局配置 - Monit守护进程

可以设置为:

  • 在120秒后进行第一次检测
  • 每2分钟检测一次服务
  • 使用syslog来记录日志

编辑vi /etc/monitrc, 将相应的内容修改为:

1 2 3

set daemon 60 with start delay 60 set logfile syslog facility log_daemon

必须定义idfileMonit守护进程的一个独一无二的ID文件; 以及eventqueue, 当monit的邮件因为SMTP或者网络故障发不出去, 邮件会暂存在这里; 以及确保/var/monit路径是存在的. 然后使用下边的配置就可以了:

1 2 3

set idfile /var/monit/id set eventqueue basedir /var/monit

默认路径为$HOME/.monit.id

验证全局配置

语法检测, 检测/etc/monitrc/etc/monit.d的配置语法是否正确:

1 2 3 4 5

$ monit -t New Monit id: 8b7015f050672ebfd066d9e161cdf3ef Stored in '/root/.monit.id' Control file syntax OK

如果报错, 请检查配置文件.

启动服务, 并设置开机自启:

1 2

systemctl start monit systemctl enable monit

服务监控

端口监控

/etc/monit.d/下新增配置文件monitor, 内容如下:

1 2 3 4 5 6 7 8 9 10 11 12 13

# 匹配进程名 check process flask MATCHING gunicorn # 配置服务启动和重启命令 start program = "/usr/bin/sudo service mongod start" restart program = "/usr/bin/sudo service mongod restart" # 如果端口27017无法访问则认为服务失败,发报警邮件并重启服务 if failed port 27017 type tcp then alert if failed port 27017 type tcp then restart # 如果在三个周期内重启了3次,则不再监控 # if 3 restarts within 3 cycles then unmonitor

使用脚本监控

/etc/monit.d/下新增配置文件monitor, 内容如下:

1 2 3 4

check program monitor with path "/bin/bash /etc/monit.d/service/service" with timeout 60 seconds # IF STATUS operator value THEN action if status == 1 then exec "/bin/bash /etc/monit.d/service/service restart views"

本文标题:Monit-开源服务器监控工具

文章作者:赵磊

发布时间:2018年07月02日 - 15:07

最后更新:2018年08月24日 - 17:08

原始链接:http://yoursite.com/2018/07/02/Monit-开源服务器监控工具/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用monit监控mongodb,崩溃后自动重启mongdb

    Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只有5...

    拓荒者
  • monit配置文件 原

    set idfile /var/monit.id set eventqueue      basedir /var/monit      slots ...

    拓荒者
  • [喵咪Liunx(4)Monit进程监控 原

    有一段时间没有更新博客了,最近因为公司项目全球化以及最近慢慢在偏向学习团队管理忙的有点不可开交了,不过这次要给大家带来两篇关于Liunx日常开发维护管理中非常好...

    拓荒者
  • 使用monit搭建一个监控系统

    马哥linux运维 | 最专业的linux培训机构 ---- 上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情。当然了主要是监控异常,因为我...

    小小科
  • 用monit监控mongodb,崩溃后自动重启mongdb

    Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只有5...

    拓荒者
  • monit配置文件 原

    set idfile /var/monit.id set eventqueue      basedir /var/monit      slots ...

    拓荒者
  • 实验:记录一则删除GI的过程

    Alfred Zhao
  • 巧用SQL:Oracle中实现split相关方法总结

    尚世波 从事数据库方面工作多年,专注于pl/sql开发、数据库设计、优化方面的研究,喜欢挑战 前文回顾:巧用SQL:oracle pl/sql split函...

    数据和云
  • open***搭建笔记

    线上生产环境,出于安全考虑,有些服务器是不需要公网IP,但是平常运维人员管理起来又不太方便。

    二狗不要跑
  • Java中ClassNotFoundException V.S NoClassDefFoundException 区别

    如果在加载类时内存不足,则它可能会静默失败,从而在数据库中留下无效的类。 稍后,如果您尝试调用或解析任何无效的类,则将在运行时引发ClassNotFoundEx...

    JavaEdge

扫码关注云+社区

领取腾讯云代金券