Monit监控工具使用简介

功能

你可以用monit来监控进程,尤其对监控守护进程很有用,比如:在系统启动时间启动的/etc/init.d;比如:sendmail,ssh,apache,mysql等

1)你可以用Monit来监控files,directories,文件系统,monit可以监控这些项目的改变,比如:时间戳,校验和改变,文件大小改变,这样比较安全,比如:你改变了文件的内容,那么它的md5或者sha1校验码就会改变。

2)monit可以监控到各种服务器的网络链接,本地或者远程,TCP还是UDP,Unix DomainSockets 都支持

3)monit可以用来在某些时候测试程序或者脚本,你可以测试程序的返回值,并以此为依据,进行一些必要的操作,比如:执行某一个动作或者发送一个警报

4)Monit可以用来监控一般的系统资源,比如CPU使用,内存,以及负载均值(Load Acerage)

{

LoadAverage是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息}

配置

Monit默认2分钟(120秒)去检查下服务并且把检查结果写入log文件中,log文件默认放在/var/log/monit.log中,这些内容均可以在配置文件中修改。

把需要监控的进程等信息添加到Monit的配置文件中,Monit配置可以参考下面的示例文件monitrc。

###############################################################################

## Monit control file

###############################################################################

#

# 检查周期,默认为2分钟,可以根据需要自行调节,这里把它改成30秒。

set daemon 30

# 日志文件

set logfile /var/log/monit.log

#

# 邮件通知服务器

#set mailserver mail.example.com

set mailserver localhost

# 通知邮件的格式设置,下面是默认格式供参考

set mail-format { from:[email protected] }

# 设置邮件通知接收者。建议发到gmail,方便邮件过滤。

set alert [email protected]

set httpd port 2812 and            # 设置http监控页面的端口

use address www.example.com   #http监控页面的IP或域名

allow localhost               # 允许本地访问

allow 58.68.78.0/24           # 允许此IP段访问

##allow 0.0.0.0/0.0.0.0       # 允许任何IP段,不建议这样干

allow userxxx:passwordxxx     # 访问用户名密码

# 系统整体运行状况监控,默认的就可以,可以自己去微调

#

# 系统名称,可以是IP或域名

check system www.example.com

if loadavg (1min) > 4 then alert

if loadavg (5min) > 2 then alert

if memory usage > 75% then alert

if cpu usage (user) > 70% then alert

if cpu usage (system) > 30% then alert

if cpu usage(wait) > 20% then alert

#

# 监控nginx

#

# 需要提供进程pid文件信息

check process nginx with pidfile/var/run/nginx.pid

#进程启动命令行,注:必须是命令全路径

start program = "/etc/init.d/nginx start"

#进程关闭命令行

stop program  ="/etc/init.d/nginx stop"

#nginx进程状态测试,监测到nginx连不上了,则自动重启

if failed host www.example.com port 80 protocol http then restart

#多次重启失败将不再尝试重启,这种就是系统出现严重错误的情况

if 3 restartswithin 5 cycles then timeout

# 如果程序使用cpu和内存比较厉害,额外添加一些关于这方面的监控设置

if cpu > 50% for 2 cycles then alert

if cpu > 70% for 5 cycles then restart

if totalmem > 1500 MB for 10 cycles thenrestart

if children > 250 then restart

if loadavg(5min) greater than 10 for 20cycles then stop

if failed host www.example.com port 8080protocol http then restart

if 3 restarts within 5 cycles then timeout

#可选,设置分组信息

group server

include /etc/monit.d/*   # 可以将其他配置放到这个目录里包含进来

注:官方配置示例网址http://mmonit.com/wiki/Monit/ConfigurationExamples

在修改完monitrc配置文件后,我们需要执行下面的命令检查monitrc的语法是否正确:

# monit -t -c /etc/monitrc

Control file syntax OK

注意事项:

1)start和stop的program参数里的命令必须是全路径,否则monit不能正常启动,比如killall应该是/usr/bin/killall。

2)对于spawn-fcgi,很多人会用它来管理PHP的fast-cgi进程,但spawn-fcgi本身也是有可能挂掉的,所以还是需要用 monit来监控spawn-fcgi。spawn-fcgi必须带-P参数才会有pid文件,而且fast-cgi走的不是http协议,monit的 protocol参数也没有cgi对应的设置,一定要去掉protocol http这项设置才管用。

3)进程多次重启失败monit将不再尝试重启,收到这样的通知邮件表明系统出现了严重的问题,要引起足够的重视,需要赶紧人工处理。

使用

启动monit监控执行下面命令:

# monit -c /etc/monitrc

其中:-c选项也可以不加,不加monit默认会从~/monitrc、/etc/monitrc两个位置去找配置文件。其他相关参数可通过 monit -h查看。启动完成后,可以通过http://IP:2812(端口可以在配置文件中进行更改)查看具体监控信息(默认用户名和密码是admin /monit)。

注意:如果使用防火墙,记得把2812端口加入到防火墙配置中。

Monit的使用方法如下:

# monit -h

Usage: monit [options] {arguments}

Options are as follows:

-cfile       Use this control file

-dn          Run as a daemon once per nseconds

-gname       Set group name for start,stop, restart, monitor and unmonitor

-llogfile    Print log information to thisfile

-ppidfile    Use this lock file in daemonmode

-sstatefile  Set the file monit shouldwrite state information to

-I           Do not run in background (needed for run from init)

-t           Run syntax check for the control file

-v           Verbose mode, work noisy (diagnostic output)

-H[filename] Print SHA1 and MD5 hashes of the file or of stdin if the

filename is omited; monit willexit afterwards

-V           Print version number and patchlevel

-h           Print this text

Optional action arguments for non-daemonmode are as follows:

start all     - Start all services

start name    - Only start the named service

stopall       - Stop all services

stopname      - Only stop the named service

restart all   - Stop and start all services

restart name  - Only restart the named service

monitorall    - Enable monitoring of allservices

monitor name  - Only enable monitoring of the named service

unmonitor all - Disable monitoring of all services

unmonitor name - Only disable monitoring ofthe named service

reload        - Reinitialize monit

status        - Print full status information for each service

summary       - Print short status information for each service

quit          - Kill monit daemon process

validate      - Check all services and start if not running

(Action arguments operate on servicesdefined in the control file)

注:详细帮忙文件可以通过less  monit-5.5/man/man1/monit.1 查看man手册。也可以查看官方wiki页面上的帮助文档。

总结

Monit使用C语言编写而成,处理效率非常的高,占用资源非常少(几乎不占用资源),配置参数十分的简单,只使用几个if … then…语句就可以完成监控任务。尤其适用于对某些进程进行守护。例如:在检测到http服务不正常时,自动重启apache或nginx 。但监控功能上相对于nagios略显简单。

时间: 2024-08-18 19:50:43

Monit监控工具使用简介的相关文章

Monit监控工具的使用

官方网址:http://mmonit.com/monit/ 当前版本:5.10 源代码包:http://mmonit.com/monit/dist/ 二进制包:http://mmonit.com/monit/dist/binary/ 概述 Monit是一款功能非常丰富的进程.文件.目录和设备的监测软件,适用于Linux/Unix平台.它可以自动修复那些已经停止运作的程序,特别适合处理那些由于多种原因导致的软件错误.监控系统关键的进程和资源.同时Monit 包含一个内嵌的 HTTP(S) Web

监控工具Zabbix简介

Zabbix可以灵活地监控服务器资源,并且集cacti和nagios两者的优点于一身且功能强大,实现企业级 分布式监控,在市场应用更广.cacti擅长监控网络流量,具有绘图功能:nagios擅长监控服务器的性能,以及具有报警功能:Zabbix是一个基于web界面的企业级开源监控套件,由C语言编写而成的底架(server端——监控端和agent端——被监控端),提供分布式系统监控与网络监控功能,具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能.监控对象

Monit : 开源监控工具介绍

· Monit 简介 Monit是一个轻量级(500KB)跨平台的用来监控Unix/linux系统的开源工具.部署简单,并且不依赖任何第三方程序.插件或者库. Monit可以监控服务器进程.文件.文件系统.网络状态(HTTP/SMTP等协议).远程主机.服务器资源变化等等. 并且可以设定资源变化后需要做的动作,比如服务失败后自动重启,邮件告警等等. Monit内置了WEB UI,可以一目了然地了解监控项的情况.Monit是监控本机服务的工具,M/Monit是其配套产品用以对Monit统一管理,但

JVM监控工具--几种常用工具简介

JVM监控工具介绍 jdk中已提供了功能强大基于GUI界面的jvm监控工具,在jdk bin目录下可以看到,例如:jconsole.jvisualvm和oracle jrockit jvm's jrmc.exe 简介如下: GUI工具 支持类型 GUI本地运行版本(JRE) 被测JVM版本 jconsole jvm,jrockit jvm 1.5及以上 1.5及以上 jvisualvm jvm 1.5及以上 1.5及以上 jrmc jrockit jvm 1.4.2及以上 1.4.2及以上 1.

Linux 进程监控工具 monit

如果你已经使用Cacti Nagios 以及zabbix 等一系列监控工具来监控你的项目,但仍然达不到你想要的进程挂掉可以自动拉起并且邮件报警的功能,那么请往下看,推荐一款及其好用的进程监控软件Monit: Monit是一款功能非常丰富的进程.文件.目录和设备的监测软件,适用于Linux/Unix平台. 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误,同时Monit 包含一个内嵌的 HTTP(S) Web 界面,你可以使用浏览器方便地查看 Monit 所监视的服

(转)Java自带的GUI性能监控工具Jconsole以及JisualVM简介

原文链接:http://blog.csdn.net/chendc201/article/details/22905503 1 Jconsole 1.1 简介以及连接 JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM,它是Java自带的简单性能监控工具.下面以对tomcat的监控为例,带领大家熟悉Jconsole这个工具. Step 1,在dos/bash命令下输入:jconsole: Step 2,在弹出的对话框中选中apache,并点击connect(假设你的tomcat

Monit:开源服务器监控工具

Monit是一个跨平台的用来监控Unix/linux系统(比如Linux.BSD.OSX.Solaris)的工具.Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序.插件或者库. Monit可以监控服务器进程状态.HTTP/TCP状态码.服务器资源变化.文件系统变动等等,根据这些变化,可以设定邮件报警.重启进程或服务.易于安装.轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具. 官网:https://mmonit.com/monit文档:ht

API Monitor简介(API监控工具)

API Monitor是一个免费软件,可以让你监视和控制应用程序和服务,取得了API调用. 它是一个强大的工具,看到的应用程序和服务是如何工作的,或跟踪,你在自己的应用程序的问题. 64位支持 API监控支持监控的64位应用程序和服务. 64位版本只能用来监视64位应用程序和32位版本仅可用于监测的32位应用程序. 要监视在64位Windows的32位应用程序,您必须使用32位版本. 请注意,64位安装程序的API监测包括64位和32位版本. 摘要视图与语法高亮 摘要窗口显示的API调用的信息.

Linux集群监控工具简介:Ganglia和Nagios

11年时候,曾经对 Ganglia 和 Nagios有一定接触,这是两个用于监视数据中心的工具.这两个工具被大量用于高性能计算(HPC)环境中,但是它们对于其他环境也具有很大的吸引力(例如云.呈现集群和托管中心).此外,两者对监视的定义也采取了不同的侧重点.Ganglia 更多地与收集度量数据并随时跟踪这些数据有关,而 Nagios 一直致力于成为一种报警机制. 真么多年过去了,这两个工具还是挺有用的.,这里有一定的介绍:http://os.51cto.com/art/201104/255361