阿里云提供自定义监控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的脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 VAUL=$(ps aux --user deploy |grep java |grep -E "a|b|c"|wc -l)
#export IP=$(ifconfig | sed '/.*inet addr:/!d;s///;s/ .*//' |grep -v "127.0.0.1" |sed -n "1p")
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-1新版监控(cloudmonitor进程):

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

添加crontab定时任务(与云监控控制台中设置监控项【上报频率】保持一致)

* * * * * /bin/bash /usr/local/aegis/script/tomcat_process_check.sh >/dev/null 2>&1

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/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 帮助
[root@server07 ~]# /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个,请登录云监控平台查看

配置成功。

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

  1. 使用腾讯云“自定义监控”监控GPU使用率

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:李想 随着人工智能以及比特币的火热,GPU云服务的使用场景是越来越广,在很多场景下我们也需要获取GPU服务器的性能参数来优化程序的执行.目 ...

  2. 阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除

    阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除 4. ECS 实例释放后,自定义镜像是否还存在? 存在. 5. ECS 实例释放后,快照是否还存在? 保留手动快照,清除自动 ...

  3. 搭建阿里云 centos mysql tomcat jdk

    [toc] 阿里云使用centos 登录 http://www.aliyun.com/ 点击登录 进入控制 https://home.console.aliyun.com/ 云服务器 运行中 把ip输 ...

  4. 阿里云服务器 配置 tomcat 发布spring boot项目 的具体操作 【使用公网ip】

    1.前言 spring boot 转成war包 后用tomcat发布的具体操作在我另一篇随笔有详细记载,不论是window系统还是Linux系统,tomcat的发布配置都是一样的,所以这里不具体讲这个 ...

  5. 阿里云Linux启动tomcat并能外网访问

    问题描述: 先描述一下我的心路历程吧,新买了阿里云服务器,由于需求不是很大,只是为了备案,所以买了个最低配的,而且是Windows server2012的.那现在需要做的是在这个乞丐版的server上 ...

  6. 阿里云 ECS 监控报警设置

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

  7. 阿里云SSL证书tomcat配置

    1. SSL证书申请 登录阿里云控制台,查看购买域名中有SSL证书的申请,ssl证书申请中有单域名的申请,配置要申请的域名信息(注意:一个域名下,一次只能添加一个证书,最多申请3个免费证书用于测试), ...

  8. 阿里云服务器对外开放tomcat端口访问

    今天第一次在阿里云服务器ecs上安装完成tomcat,然后启动tomcat之后.在本地输入ip:端口,发现不能访问. 出现这个的原因可能是你购买的服务器是 专有网络 类型的 如果是专有网络类型的服务器 ...

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

    1.背景:阿里云的SLB的负载均衡,在tomcat中获取不到真实IP,而是阿里的内网IP,SLB中俩台或者3台本身是局域网,这里是SLB原理,能够看看.没怎么看懂.呵呵,要细细读下. 2.须要开启to ...

随机推荐

  1. IIS经典模式与集成模式

    在IIS7.0中Web应用程序有两种配置形式:经典和集成 经典模式 经典模式是为了与之前的版本兼容,使用ISAPI扩展来调用ASP.NET运行库,原先运行于IIS6.0下的Web应用程序迁移到IIS7 ...

  2. 每天一个linux命令(网络):【转载】route命令

    Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...

  3. 51Nod 1088:最长回文子串(暴力)

    1088 最长回文子串  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入 ...

  4. 浅谈SQL Server---1

    浅谈SQL Server优化要点 https://www.cnblogs.com/wangjiming/p/10123887.html 1.SQL Server 体系结构由哪几部分组成? 2.SQL ...

  5. Windows下使用curl命令

    curl下载地址: https://curl.haxx.se/download.html 选择对应的版本下载后解压 使用方式(一):在解压后curl.exe所在目录打开cmd,即可使用 使用方式(二) ...

  6. test20181024 zi

    题意 分析 这种题一般是推公式,发现必须求得的量,然后定义函数记忆化. 然后那些函数里面又是递归处理,合并. 代码 为了不爆空间,用map存记忆化内容. #include<bits/stdc++ ...

  7. SEO -- WP如何建立SiteMap

    站点地图对网站的seo优化有着相当重要的作用,而WordPress的优势就是插件特别的多,也特别符合蜘蛛的口味,在wp上建立站点地图是相当简单的事情,只需要一款插件和几步简单的配置 Google XM ...

  8. oracle计算两个日期的时间差时分秒

    Oracle函数可以实现诸多的功能,下面就介绍使用oracle函数计算时间差的实现方法. 两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒 ...

  9. django 模板关闭特殊字符转化

    默认情况下,在django admin管理界面和页面中,如果输出的对象中包含HTML特殊字符,在django中默认的处理方式是将对象中的HTML特殊字符转化,例如会将 "<" ...

  10. php日志函数error_log

    php内置打印log日志的函数,这个对php程序调试非常高效 1.配置 编辑php.ini文件 log_errors = On 设置log日志存储路径 error_log = /wwwroot/php ...