前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器监控告警配置(钉钉)

服务器监控告警配置(钉钉)

作者头像
bboy枫亭
发布2021-12-07 15:38:02
1.3K0
发布2021-12-07 15:38:02
举报
文章被收录于专栏:csdn_blogcsdn_blog

服务监控告警——钉钉群机器人

本文演示一个利用钉钉群监控、告警服务器运行服务所处的状态。

1、新建钉钉群机器人

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、编写 Shell 脚本

代码语言:javascript
复制
#!/bin/bash

#端口
 Port_Nginx="80"
 Port_MySQL="3306"
#...此处省略多个端口,按照自己需求配置即可
 Port_flink="xxx"
 
#网卡配置(可选)
# ifconfig="eth0"

#@管理员手机号
 user="xxx"
# user2="xx"

#主机信息
 Date=`date +%Y-%m-%d`
 Date_time=`date "+%Y-%m-%d--%H:%M:%S"`
 Host_name=`hostname`
 IP_addr=`ifconfig $ifconfig | grep "inet" |awk 'NR==1{ print $2}'`
 
#监控项
 Nginx_status=`netstat -lntup |grep -w "$Port_Nginx" |wc -l`':Nginx'
 MySQL_status=`netstat -lntup |grep -w "$Port_MySQL" |wc -l`':MySQL'
#...此处省略多项,按照自己需求配置即可
 flink_status=`netstat -lntup |grep -w "$Port_flink" |wc -l`':flink'
 
#钉钉webhook
Dingding_Url="把你新建的钉钉群机器人的webhook粘贴过来"
 
function SendDownMessageToDingding(){

#发送钉钉消息
curl -s "${Dingding_Url}" -H 'Content-Type: application/json' -d "
{
 'msgtype': 'text',
 'text': {'content': 'xxx服务监控\n$1服务down,请尽快处理!\n巡查时间:${Date_time}\nIP地址:${IP_addr}\n'},
 'at': {'atMobiles': ['${user}'],  'isAtAll': true}
  }"

}

function SendUpMessageToDingding(){

#发送钉钉消息
curl -s "${Dingding_Url}" -H 'Content-Type: application/json' -d "
{
 'msgtype': 'text',
 'text': {'content': 'xxx服务监控\n$1服务已恢复正常运行!\n巡查时间:${Date_time}\nIP地址:${IP_addr}\n'},
 'at': {'atMobiles': ['${user}'],  'isAtAll': true}
  }"

}

# log path
log_path="xxx"

# 遍历
#for i in #{$Nginx_status,$MySQL_status,$jobserver_status,$webserver_status,$Cache_status,$openapi_status,$userapi_status,$workbench_status,$keycloak_status,$vro#llout_status,$connector_status,$merge_status,$shadow_status,$sink_status,$flink_status}

#do
#        name=`echo $i | awk -F ':' '{print $2}'`
#        echo 1 > ${log_path}/${name}.log
#done

for i in {$Nginx_status,$MySQL_status,$jobserver_status,$webserver_status,$Cache_status,$openapi_status,$userapi_status,$workbench_status,$keycloak_status,$vrollout_status,$connector_status,$shadow_status,$flink_status}
do
	statcode=`echo $i | awk -F ':' '{print $1}'`
	name=`echo $i | awk -F ':' '{print $2}'`
	old_statcode=`head -n 1 ${log_path}/${name}.log`
    if [ $statcode -lt 1 ]
    then
		if [ $old_statcode -lt 1 ]
		then echo "[ERROR] $name is still stopped! Status_code=$statcode"
		else
			echo "[ERROR] $name is stopped! Status_code=$statcode"
			SendDownMessageToDingding $name
        fi
    else
		if [ $old_statcode -ge 1 ]
		then echo "[INFO] $name is still running normally! Status_code=$statcode"
		else
			echo "[INFO] $name returned to normal function! Status_code=$statcode"
			SendUpMessageToDingding $name
        fi
    fi
    echo $statcode > ${log_path}/${name}.log
done

3、定时任务

示例:

代码语言:javascript
复制
crontab -e
# 每五分钟执行一次
*/5 * * * * sh xx.sh
# 每半小时执行一次
*/30 * * * * sh  xx.sh
# 每天的15时25分执行一次
25 15 * * * sh xx.sh

命令说明:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容
crontab -r //删除当前用户的定时服务
crontab -e //编辑当前用户的定时服务
在设定编辑之前都建议列出服务查看一下:crontab -l

4、部分效果截图

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务监控告警——钉钉群机器人
  • 1、新建钉钉群机器人
  • 2、编写 Shell 脚本
  • 3、定时任务
  • 4、部分效果截图
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档