Monit-开源服务器监控工具

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

比zabbix轻量.

全局配置 - Web状态页面

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

生成一个自签名证书

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

httpd配置

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

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
}

或者

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, 将相应的内容修改为:

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, 将相应的内容修改为:

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

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

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

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

验证全局配置

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

$ monit -t

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

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

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

systemctl start monit
systemctl enable monit

服务监控

端口监控

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

# 匹配进程名
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, 内容如下:

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-开源服务器监控工具的更多相关文章

  1. 开源服务器监控工具 — JavaMelody 类 jvm 内在性能(转)

    开源服务器监控工具 — JavaMelody     JavaMelody它能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Sessio ...

  2. Monit:开源服务器监控工具

    Monit是一个跨平台的用来监控Unix/linux系统(比如Linux.BSD.OSX.Solaris)的工具.Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序 ...

  3. 如何借助Monit搭建服务器监控系统?(1)

    许多Linux管理员依赖一种集中式远程监控系统(比如Nagios或Cacti),检查网络基础设施的健康状况.虽然集中式监控系统为管理员在处理许多主机和设备时简化了工作,但专用的监控设备显然成了单一故障 ...

  4. 10款最佳SQL Server服务器监控工具

    转自:http://server.51cto.com/sSecurity-587355.htm 推荐 | 10款最佳SQL Server服务器监控工具 服务器是网络中最重要的资源之一,SQL Serv ...

  5. 转:Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解

    转:http://itindex.net/detail/51186-nginx-ffmpeg-hls 本文概述: 至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议.做移动平台的流媒体 ...

  6. DNS开源服务器BIND最小配置详解<转>

    一,简介 相对于存储和大数据领域,CDN是一个相对小的领域,但行行出状元,BIND就是CDN领域的蝉联N届的状元郎.BIND是一款非常常用的DNS开源服务器,全球有90%的DNS用BIND实现.值得一 ...

  7. DNS开源服务器BIND最小配置详解

    一,简介 相对于存储和大数据领域,CDN是一个相对小的领域,但行行出状元,BIND就是CDN领域的蝉联N届的状元郎.BIND是一款非常常用的DNS开源服务器,全球有90%的DNS用BIND实现.值得一 ...

  8. Nginx+ffmpeg的HLS开源服务器搭建配置及开发详

    本文概述: 至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议.做移动平台的流媒体开发,不知道它不掌握它 ,真是一大遗憾.而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋 ...

  9. Ubuntu下Zabbix服务器监控工具部署

    Ubuntu下Zabbix服务器监控工具部署 一 安装安装Apache.Mysql.Php.zabbix sudo apt-get update sudo apt-get install apache ...

  10. [U3D + GAD]Egametang开源服务器框架资源管理系统

    Egametang开源服务器框架资源管理系统详解 http://m.gad.qq.com/article/detail/36409 ET GitHub https://github.com/egame ...

随机推荐

  1. react新特性hook

    一.hook示例.   import React, { useState } from 'react'; function Example() { // 声明一个叫 “count” 的 state 变 ...

  2. jdbc配置及使用测试

    源码:https://github.com/xiaostudy/jdbc_test1 这是没有使用连接池的 目录 创建的sql语句create.sql DROP TABLE IF EXISTS t_u ...

  3. 要求设计 LazyMan 类,实现以下功能

    LazyMan('Tony'); // Hi I am Tony LazyMan('Tony').sleep(10).eat('lunch'); // Hi I am Tony // 等待了10秒.. ...

  4. windows下使用命令行编译、链接C++源文件

    目录 1.流程 2.操作 1.流程 .cpp-->.o-->.exe 分别为 源文件-->中间目标文件-->可执行文件 两个-->的过程分别为编译.链接 p.s.多个 . ...

  5. bootstrap-table的一些配置参数例子

    $('#reportTable').bootstrapTable({ method: 'post', url: '/qStock/AjaxPage', dataType: "json&quo ...

  6. jenkins持续集成(svn+maven)

    一.初始化环境 1.系统管理->插件管理 安装插件 Maven Integration 2.系统管理->全局工具配置 配置jdk.maven 二.项目配置1.源码配置 (使用之前搭建的sv ...

  7. HttpServletRequest对象(转)

    HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供 ...

  8. Ural 1248 Sequence Sum 题解

    目录 Ural 1248 Sequence Sum 题解 题意 题解 程序 Ural 1248 Sequence Sum 题解 题意 给定\(n\)个用科学计数法表示的实数\((10^{-100}\s ...

  9. 【leetcode】153. 寻找旋转排序数组中的最小值

    题目链接:传送门 题目描述 现有一个有序数组,假设从某个数开始将它后面的数按顺序放到了数组前面.(即 [0,1,2,4,5,6,7] 可能变成 [4,5,6,7,0,1,2]). 请找出数组中的最小元 ...

  10. Python 变量作用域与函数

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...