注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

使用Monit监控tomcat运行健康状态(monit语法参考)  

2014-06-29 12:06:30|  分类: 健康监控 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Monit安装与配置

一、简介

Monit的作用:Monit是一个在类unix平台下用于监视进程、文件、目录和设备的软件工具,可以修复停止运作或运作异常的程序,适合处理那些由于多种原因导致的软件错误。实际上象squid/ats这两个大型工具本身也有这些功能。

使用Monit监控tomcat运行健康状态(monit语法参考) - itoedr - itoedr的it学苑
关于monit所支持的监控内容
 

二、安装

本文环境,假定下面的安装和配置均在linux系统下最高管理员root身份下进行。

安装很简单,下载monit的源代码(以4.10 版本为例说明)

具体在终端中使用如下命令:

tar –xzf monit-4.10.1.tar.gz

cd monit-4.10.1

./configure

make

make install

很快就可以安装完毕。

当然好软件已被ubuntu软件库收录,只要在root下“apt-get install monit”也可以轻薄松安装的。

三、配置

安装完毕后,在monit源代码的目录将monit的配置文件monitrc拷贝到/etc目录下,使用命令:

cp monitrc /etc

注意/etc/monitrc这个文件的访问权限不能大于0700,所以可能还需要修改它的访问权限:

chmod 600 /etc/monitrc

    然后打开/etc/monitrc这个文件进行配置,monit已经将大部分的配置的例子放在了里面,多数配置只需将配置前面的#(注释)去掉再做相应修改即可。我们主要用monit来监视tomcat服务器,所以配置如下:

set daemon  120             # 设置monit作为守护进程运行,并且每2分钟监视一次

                                     # 2分钟是默认的时间间隔,从网上的看到的多个配置的例子

                                     # 看到的时间间隔也是2分钟,应该是比较合理的

set logfile /var/log/monit.log    # 设置日志文件的位置,如果要写入系统日志可以

                                            # set logfile syslog

set httpd port 2812 and          # monit内置了一个用于查看被监视服务

                                            # 状态的http服务器,注意在防火墙中开启

                                            # 该端口【1】,否则非localhost无法访问

     use address 192.168.1.184              # 设置这个http服务器的地址

                                            # 若设置成localhost则只允许本地访问

     allow localhost                        # 允许本地访问

     allow 192.168.1.1/255.255.255.0        # 允许内网访问

     allow admin:monit11                    # 设置使用用户名admin和密码monit11

                                            # 来访问这个地址

set mailserver  localhost                   # 设置邮件服务,设置后monit会将提示以

                                            # 邮件的方式发送.这里使用localhost为邮

                                            # 件服务器地址,前提是本地已安装并开启

                                            # 了sendmail服务

set alert zhengsenlin@gmail.com            # 收邮件地址,如果要发送到多个地址

                                            # 可以写多条这样的设置

# 下面设置监视tomcat

check process tomcat with pidfile /var/run/catalina.pid     # 这个要另外说明【2】

    start program = "/etc/init.d/tomcat start"              # 设置启动命令

    stop program  = "/etc/init.d/tomcat stop"               # 设置停止命令

    if 9 restarts within 10 cycles then timeout             # 设置在10个监视周期内重

                                                            # 启了9次则超时,不再监视

                                                            # 这个服务。原因另外说明【3】

        if cpu usage > 90% for 5 cycles then alert          # 如果在5个周期内该服务

                                                            # 的cpu使用率都超过90%

                                                            # 则提示

# 若连续5个周期打开url都失败(120秒超时,超时也认为失败)

# 则重启服务

        if failed url http://127.0.0.1:4000/ timeout 120 seconds for 5 cycles then restart

        if failed url http://127.0.0.1:5000/ timeout 120 seconds for 5 cycles then restart

【1】可以使用命令:

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2812 -j ACCEPT

/sbin/service iptables save

【2】 使用/var/run/catalina.pid这个pid文件来检查tomcat这个服务(服务名可以随便起),tomcat进程默认是不使用pid文 件的,pid文件需要显式为tomcat设置,可以打开tomcat目录下的bin目录,打开catalina.sh文件,在开头(但不是第一行)处加 入:

CATALINA_PID=/var/run/catalina.pid

即可指定pid文件,然后重启tomcat,这样就可以monit的配置中指定pid文件了。

【3】设置超时后不再监视是为了让服务不要一直重启,如果连续重启多次不成功,极有可能再重启下去也不会成功的。并且tomcat的重启需要占用大量系统资源,假如一直重启下去,反而会使其它服务也无法正常运作。


如果要监视其它服务,可以加入更多的监视逻辑,例如要监视mysql服务,可以:

check process mysql with pidfile /var/run/mysqld/mysqld.pid

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

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

   if failed host 127.0.0.1 port 3306 then restart

   if 5 restarts within 5 cycles then timeout

监视ssh服务:

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

   start program  "/etc/init.d/sshd start"

   stop program  "/etc/init.d/sshd stop"

   if failed port 22 protocol SSH then restart

   if 5 restarts within 5 cycles then timeout


如果监视的服务比较多,可以将各个服务的监视逻辑放在不同的文件,然后使用include命令包含进来,使配置文件更加清晰。例如:

include /etc/monit/includes/mysqld

上面的设置完后,设置monit随系统启动,在/etc/inittab文件的最后加入

# Run monit in standard run-levels

mo:2345:respawn:/usr/local/bin/monit -Ic /etc/monitrc

然后使用命令:telinit q

启动monit。

四、要注意的问题

由 于将monit设置成了守护进程,并且在inittab中加入了随系统启动的设置,则monit进程如果停止,init进程会将其重启,而monit又监视着其它的服务,这意味着monit所监视的服务不能使用一般的方法来停止,因为一停止,monit又会将其启动.要停止monit所监视的服务,应该使 用monit stop name这样的命令,例如要停止tomcat:

monit stop tomcat

要停止全部monit所监视的服务可以使用monit stop all.

要启动某个服务可以用monit stop name这样的命令,启动全部则是monit start all.


*********

linux文件的权限管理:

::默认的权限可用umask命令修改,用法非常简单,只需执行umask 777 命令,便代表屏蔽所有的权限,因而之后建立的文件或目录,其权限都变成000,依次类推。通常root帐号搭配umask命令的数值为022、027和 077,普通用户则是采用002,这样所产生的权限依次为755、750、700、775。

::使用chmod和数字改变文件或目录的访问权限
   文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。


*************************
r: 对应数值4
w: 对应数值2
x:对应数值1
-:对应数值0

***************************

         数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:
111 101 100
再将其每三位转换成为一个十进制数,就是754。
例如,我们想让a.txt这个文件的权限为:
             自己 |同组用户 |其他用户
可读     |是    |是             | 是
可写     |是    |是
可执行 |        |                 |
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:
[root@localhost ~]# chmod 664 a.txt
按照上面的规则,rwx合起来就是4+2+1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。
下面举几个例子:
-rwx------:等于数字表示700。
-rwxr―r--:等于数字表示744。
-rw-rw-r-x:等于数字表示665。
drwx―x―x:等于数字表示711。
drwx------:等于数字表示700。
在文本模式下,可执行chmod命令去改变文件和目录的权限。我们先执行ls -l (ll也可以)看看目录内文件的情况。

  评论这张
 
阅读(341)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017