阿里云自定义监控tomcat进程数

阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置。

阿里提供了2个版本的自定义监控接口:
自定义监控SDK(python版) :cms_post.py
自定义监控SDK(bash版) :cms_post.sh
下载地址:http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901

本文使用shell版本做演示
       这里说下我的简单需求,我们需要监控ECS服务器中tomcat的进程是否存在,如果小于1,就说明tomcat进程关闭,然后根据设定的报警规则报警。

首先我们需要在阿里云自定义监控页面建立一个自定义监控,如下图:

1、添加自定义监控

脚本post方法说明

post方法中传入4个参数,分别为 aliuid,监控项名称,监控项值,字段信息(以下脚本中传入参数)。

最后按照第4部分的说明,添加定时任务即可。

再次强调这些参数的意义,参见云监控控制台自定义监控自定义监控项管理

a.命名空间中的数字串,即是用户的aliuid

b. 监控项名称,即是用户创建监控项时填写的名称

c. 监控项值,是用户上报到云监控的业务数据

d.  字段信息,结合监控项,表示具体业务字段的实际意义。

例如字段信息是  machineIp,监控项名称是 cpuutilization,若当前cpu利用率80%,那么在上面的示例中传入的 参数分别是 1359099605207770 ,cpuutilization,0.8,machineIp=192.168.1.1

2、定制脚本

我制作的调用自定义SDK的脚本内容如下:

vi tomcat_process_check.sh

#!/bin/bash
## This is a monitor shell script for aliyun ecs
## It is mainly used to monitor the presence of the Tomcat process
## Created in 2015.07.25
## Written by Edison
## Version 1.0

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export VAUL=$(ps --user tomcat |grep java |wc -l)
export HOSTS=$(hostname)
#新版监控脚本位置自定义
/usr/local/aegis/script/cms_post.sh 1359099605207770 tomcat $VAUL java=$HOSTS-tomcat-stop

给予脚本执行权限
chmod +x cms_post.sh tomcat_process_check.sh

3、配置调度任务

3-2新版监控(cloudmonitor进程):

将脚本放置到任意位置中:
/usr/local/aegis/script/

3-2旧版监控:如果是利用阿里云监控自带的调度任务,那么我们需要将脚本放置到制定位置:
/usr/local/aegis/aegis_quartz/libexec/user
然后添加调度任务,执行此命令必须使用绝对路径

/usr/local/aegis/aegis_quartz/aegis_quartz -e "AddTask [0 0/5 * * * ?] /usr/local/aegis/aegis_quartz/libexec/user/tomcat_process_check.sh"
##删除
/usr/local/aegis/aegis_quartz/aegis_quartz -e "RemoveTask [0 0/5 * * * ?] /usr/local/aegis/aegis_quartz/libexec/user/tomcat_process_check.sh"
##查看任务
/usr/local/aegis/aegis_quartz/aegis_quartz -e "GetTasks"
##aegis_quartz 帮助
[[email protected] ~]# /usr/local/aegis/aegis_quartz/aegis_quartz -h
Usage:/usr/local/aegis/aegis_quartz/aegis_quartz
   -f  configFile            (default:conf/aegis_quartz.conf)
   -c  configFile            (only check configFile)
   -e "opType value"         (get or set some inner info)
   -v                        (show agent version)
   -h                        (show help)
about opType and value: 
   SetLogLevel [error|warn|info|debug] (set agent log level)
   GetLogLevel            (show agent log level)
   GetConfig              (show config)
   GetTasks               (show tasks)
   GetTasksJson           (show tasks)
   GetTaskStatus          (show task status)
   AddTask "xxx"          (add task)
   RemoveTask "xxx"       (remove task)
   RemoveAllTasks         (remove all tasks)

需要用户注意的一些事情:
I. aegis_quartz 进程请匆停止,系统的监控数据采集是通过 aegis_quartz 完成
II. aegis_quartz 程序的调用请使用绝对路径,如 linux 环境下
/usr/local/aegis/aegis_quartz/aegis_quartz
III. aegis_quartz libexec/default 下面的脚本是内置的监控数据采集脚本,请用户匆
修改
IV. 用户的监控数据程序只能放在 libexec/user 目录下面;上面添加任务与删除任务
的示例中,脚本程序的路径写的即是相对路径。因此,用户在命令行中的脚本路径
只需要填写成 user/xxx 即可(其中 xxx,是用户的脚本)
V. 关于任务的执行频率,是基于标准的 quartz 表达式,用户按照规范填写即可。脚
本的监控数据上报频率请与云监控控制台中设置监控项【上报频率】保持一致(控
制台支持的频率是 1 分钟,5 分钟,15 分钟),若修改上报频率请保持控制台与
脚本一致,否则监控数据处理会不准确

如果你发现不能上报数据,可以使用

/usr/local/aegis/aegis_quartz/aegis_quartz -e "SetLogLevel debug"

设置日志级别,来查看日志排查问题。更多选项请查看 aegis_quartz -h

日志目录 /usr/local/aegis/aegis_quartz/log

4、配置报警

然后我们设置报警规则,在报警管理如图:

这里需要注意,字段的值一定要与脚本中字段的值一致,否则即使监控的值触发了你的报警规则,状态依然是正常的。

下面就是我收到阿里云的短信报警信息,上报频率5分钟
【阿里云】您监控tomcat的f45966d***e60d在11:10发生报警,实例:(server07-tomcat-stop),值为0个,请登录云监控平台查看
【阿里云】您监控tomcat的f45966d***e60d在11:15发生报警,实例:(server07-tomcat-stop),值为0个,请登录云监控平台查看

配置成功。

时间: 2024-10-19 22:28:04

阿里云自定义监控tomcat进程数的相关文章

阿里云自定义监控-系统文件MD5校验

1.文件md5校验hashlib模块 hashlib.md5() 2.文件比对模块filecmp模块 filecmp.cmp('md5File', 'md5File_new'): ##文件一直返回True 不一致返回False 3.打开文件操作with open ..... as f: ##不用close关闭文件 4.格式化字符串输出tring = "%s %s\n" % (md5.hexdigest(),line.strip()) 脚本示例: #!/usr/bin/python #

阿里云自定义监控

自定义监控:对上面监控的补充,可以自定义相应的监控项,在服务器上执行相应的脚本采集数据,然后调用阿里云封装的JDK将数据上传,进行报警处理. 下载阿里云的JDK到服务器相应的目录下 http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901 /usr/local/aegis/aegis_quartz/aegis_quartz/libexec/user 添加自定义的选项 报警规则: 这里要注意地段后填写的内容,这个是与上传的字段匹

阿里云性能监控 ARMS 全真3D拓扑揭秘

摘要: 微服务架构下,各类服务之间存在着错综复杂的依赖关系.一旦业务出现问题,追查问题源头就好比大海捞针,没有头绪.但业务不等人,此时,在最短的时间内定位问题根源是开发和运维人员对微服务监控产品的核心诉求. 传统的监控产品提供了表格(table).表单(form)和仪表盘(dashboard)三种展现形式,因其局限性,并无法完整和直观的提供监控详情,以快速定位问题. 微服务架构下,各类服务之间存在着错综复杂的依赖关系.一旦业务出现问题,追查问题源头就好比大海捞针,没有头绪.但业务不等人,此时,在

阿里云X-Forwarded-For 发现tomcat记录的日志全部来自于SLB转发的IP地址,不能获取到请求的真实IP。

1.背景:阿里云的SLB的负载均衡,在tomcat中获取不到真实IP,而是阿里的内网IP,SLB中俩台或者3台本身是局域网,这里是SLB原理,可以看看,没怎么看懂,呵呵,要细细读下. 2.需要开启tomcat的X-Forwarded-For,在tomcat/conf/server.xml中有一个如下的AccessLogValve 日志纪录功能,当配置中的pattern=common时,对应的日志是如下,无论正常请求和非法请求都会记录. <Valve className="org.apach

阿里云基础监控

一.云服务器的优势: 云服务器(Elastic ComputeService, ECS)是一种处理能力可弹性伸缩的计算服务,其管理方式比物理服务器更简单高效.服务器是建立在可靠的资源池上,基本不用考虑服务器的硬件故障,资源池就是一个冗余的环境.云服务器帮助您快速构建更稳定.安全的应用,降低开发运维的难度和整体IT成本,使您能够更专注于核心业务创新. 二.阿里云的安全配置 1.云盾: A.安骑士:为云服务器提供防黑客入侵的服务,包括木马查杀.防密码暴力破解.异地登录提醒.高危漏洞检测修复.体检加固

阿里云X-Forwarded-For 发现tomcat记录的日志所有来自于SLB转发的IP地址,不能获取到请求的真实IP。

1.背景:阿里云的SLB的负载均衡,在tomcat中获取不到真实IP,而是阿里的内网IP,SLB中俩台或者3台本身是局域网,这里是SLB原理,能够看看.没怎么看懂.呵呵,要细细读下. 2.须要开启tomcat的X-Forwarded-For,在tomcat/conf/server.xml中有一个例如以下的AccessLogValve 日志纪录功能.当配置中的pattern=common时.相应的日志是例如以下,不管正常请求和非法请求都会记录. <Valve className="org.a

阿里云 ECS 监控报警设置

1.阿里云监控项说明 https://helpcdn.aliyun.com/document_detail/43505.html 2.监控设置 3.报警规则 4.设置阈值 5.确定即可. 6.效果图 原文地址:https://www.cnblogs.com/zoulixiang/p/9473789.html

shell 练习(13) —— 监控 httpd 进程数是否异常

1. 题目 在服务器上,写一个监控脚本,要求如下: 1)每隔 10s 去检测一次服务器上的 httpd 进程数,如果大于等于 500 的时候,就需要自动重启一次 apache 服务,并且检测启动是否成功. 2)若没有正常启动还需再一次启动,最大不成功数超过5次则需立即发送邮件通知管理员,并且以后不再检测! 3)如果启动成功后,1分钟后再次检测 httpd 进程数,若正常则重复之前操作(每隔 10s 检测一次),若还是大于等于 500,那放弃重启并需要发送邮件给管理员,然后自动退出该脚本.假设其中

阿里云centos服务器tomcat启动后,浏览器请求无响应

最近无事折腾了下阿里云服务器 系统选择了个centos7.2 装了个jdk 1.8 搞了个apache-tomcat-8.5.51 装好启动tomcat后发现浏览器访问不了,状态一直显示等待服务器响应... 奇怪...这玩意不是弄了n回了,还会出问题? 一顿检查: 发现装的centos7的云服务器,两个地方没弄会有这个问题: 1.阿里云安全策略,开放tomcat端口 阿里云控制台,云服务器-->网络与安全-->安全组-->配置规则 把tomcat 的端口配置到入方向里即可 2.CentO