文档章节

监控各项服务

黄威
 黄威
发布于 06/25 22:59
字数 679
阅读 5
收藏 0

比如有三个服务,

为了减少故障时间,增加监控任务,使用linux的 crontab 实现.

步骤:

1,每个服务写一个ping接口

监控如下内容:
1,HouseServer 是否正常运行,所以需要增加一个ping的接口 ; http://house.yhskyc.com/ping
2,gitlab服务是否正常访问 http://git.yhskyc.com/users/sign_in 返回HTML 包含"Open source software to collaborate on code";
3,小幺鸡,是否正常 http://api.yunmasoft.com/api/ping/xiaoyaoji

标准:不要求接口正确性,只要求返回200就行

2,封装一个可执行的jar包专门用来发送短信

执行如下命令,即可发送短信

/usr/java/jdk1.8.0_152/bin/java -jar sendsmsbyqcloud-0.0.1-snapshot.jar 18732670186 "服务器挂了,请速检查`date +%F`"

 

短信发送使用腾讯云

参考:

https://console.cloud.tencent.com/sms/smsinfo/1400091325/0 
认证信息:
https://console.cloud.tencent.com/developer/auth
https://console.cloud.tencent.com/sms/smslist

发送短信的可执行jar包
java -jar sendSMSByQcloud-0.0.1-SNAPSHOT.jar 18743210186 请去检查服务器
log4j:WARN No appenders could be found for logger (com.io.hw.json.HWJacksonUtils).
log4j:WARN Please initialize the log4j system properly.
:{"appid":1400091325,"appkey":"ab14f5b7a06feab6b8f91af82ce75663","mobile":"18701670186","msg":"请去检查服务器"}
{"result":0,"errmsg":"OK","ext":"","sid":"8:cV1DTDeJxq1qqSnbwvs20180625","fee":1}

 

3,写linux shell脚本,用于判断接口是否正常

脚本名称:monitor2.sh

#!/bin/bash
# monitor if Service normal,send SMS  when ether service is down
sendSMS(){
echo "error.发送短信"
cd /home/whuang/bin/sms
/usr/java/jdk1.8.0_152/bin/java -jar sendsmsbyqcloud-0.0.1-snapshot.jar 18743670186 "服务器挂了,请速检查`date +%F`"
}
testHttp(){
url2="$1"
xiaoyaoji_result=`curl  --get --compressed $url2` >>/dev/null
#echo "resut111:$xiaoyaoji_result"
echo "$xiaoyaoji_result" |grep "true"
result2=$?
#echo $result2
if [ $result2 -ne 0 ];then
        sendSMS
        exit 14
fi

}

testHttpGitLab(){
xiaoyaoji_result=`curl  --get --compressed 'http://git.yhskyc.com/users/sign_in'` >>/dev/null
#echo "resut111:$xiaoyaoji_result"
echo "$xiaoyaoji_result" |grep "Open source software to collaborate on code"
result2=$?
#echo $result2
if [ $result2 -ne 0 ];then
        sendSMS
        exit 14
fi

}
testHttp 'http://house.yhskyc.com/ping'
testHttp 'http://api.yunmasoft.com/api/ping/xiaoyaoji'
testHttpGitLab

脚本说明:

1, sendSMS,testHttp 是shell 函数;

2,使用grep来校验接口返回结果.

3,发送短信命令:

/usr/java/jdk1.8.0_152/bin/java -jar sendsmsbyqcloud-0.0.1-snapshot.jar 18732170186 "服务器挂了,请速检查`date +%F`"

蓝色标记的是jar包的参数

注意:

可能crontab 中执行时会出现如下两个错误:

(1)找不到java命令,

解决 方法:java命令使用绝对路径

(2)shell脚本中使用相对路径的统一改为绝对路径

4,创建定时任务

*/10 * * * * /home/whuang/bin/sms/monitor2.sh  2>> /home/whuang/bin/sms/error.log

命令:crontab -e

linux crontab 语法说明:

*/20 * * * * /Users/whuanghk/study/cron/todo.sh
每20分钟执行一次

20 7 * * * /home/whuang/software/auto_start_tomcat.sh
每天的上午7点20分执行脚本

© 著作权归作者所有

共有 人打赏支持
黄威
粉丝 14
博文 52
码字总数 29570
作品 0
昌平
程序员
Docker可视化监控?看这篇文章

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由CodeSheep 发表于云+社区专栏 概述 性能监控是容器服务必不可少的基础设施,容器化应用运行于宿主机上,我们需要知道该容器...

腾讯云加社区
07/06
0
0
深度解析大数据可视化管理平台的监控功能

在上一篇的文章中已经明确说过DKM作为大快发行版DKhadoop的管理平台,它的四大功能分别是:管理功能,监控功能,诊断功能和集成功能。管理功能已经给大家列举了一些做了说明,今天就DKM平台的...

adnb34g
08/20
0
0
大快搜索企业大数据分析管理平台的监控功能解析

在上一篇的文章中已经明确说过DKM作为大快发行版DKhadoop的管理平台,它的四大功能分别是:管理功能,监控功能,诊断功能和集成功能。管理功能已经给大家列举了一些做了说明,今天就DKM平台的...

左手的倒影
08/20
0
0
tomcat请求响应时间问题

最近在项目中遇到一个比较棘手的问题,程序在生产环境稳定运行一段时间之后,会突然变慢。通过jconsole工具监控程序各项指标均正常;操作系统各项指标,比如空间,日志大小,系统IO都正常;数...

临时演员
2013/08/09
4.8K
2
Github 今天中断 3 小时,已恢复

Github 今天白天中断长达 3 个小时,目前服务已恢复,从 Github 网站上的状态服务得知,在 Gihub 所在时区上的时间,中断服务从早上 8:30 分一直到中午将近 12 点,如下图所示: Github 的状...

oschina
2012/12/23
2.2K
8

没有更多内容

加载失败,请刷新页面

加载更多

day96-20180923-英语流利阅读-待学习

英国王子也不看好人工智能,理由却和霍金不同 Daniel 2018-09-23 1.今日导读 2016 年 3 月 9 日至 15 日,世界围棋冠军李世石与谷歌研发的计算机围棋程序 AlphaGo 进行人机大战并以 1 比 4 ...

飞鱼说编程
47分钟前
1
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
52分钟前
24
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
53分钟前
2
0
还在用 Git 的 -f 参数强推仓库,你这是在作死!

最近,美国一个程序员因为同事不写注释,代码不规范,最严重的是天天使用 git push -f 参数强行覆盖仓库,该程序员忍无可忍向四名同事开抢,其中一人情况危急!!! 不写注释、代码不规范是一...

红薯
今天
480
0
NPM报错终极大法

所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts$ npm...

lilugirl
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部