【运维】shell监控脚本结合钉钉机器人实现服务及服务器监控告警

news/2025/1/23 13:25:21/

文章目录

  • 前言
  • 一、监控shell脚本和钉钉机器人
  • 二、创建钉钉机器人:
    • 1.在钉钉群聊里点击设置
    • 2.在设置里点击机器人选项
    • 3.再点击添加机器人
    • 4.再点击选择自定义机器人
    • 5.设置机器人名称、是否加密、是否限制ip、以及触发关键字
    • 6.获取机器人的Webhook地址
  • 三、编写监控脚本:
    • 1.代码编写
    • 2.解释主要与钉钉机器人联动的代码
    • 3.钉钉官网代码
  • 四、设置定时任务
    • 1.使用Cron或其他工具设置定时任务来定期运行监控脚本
    • 2.给脚本加执行权限
  • 五、测试和部署
  • 总结


前言

当我们运维服务和服务器时,监控告警是必不可少的一项工作。通过监控告警,我们可以及时发现并解决潜在的问题,保证服务的稳定性和可靠性。而结合shell脚本和钉钉机器人,能够更加方便地实现服务及服务器的监控告警。

本文将介绍如何利用shell脚本编写监控脚本,监控服务器的状态、服务的运行情况等,并通过钉钉机器人发送告警信息。文章将详细介绍如何编写一些常见的监控脚本,如检查HTTP服务的可用性、检查磁盘空间使用情况等。同时,还将介绍如何配置和使用钉钉机器人,将监控脚本的告警信息实时发送到指定的钉钉群组中。

通过本文的学习和实践,您将能够掌握利用shell脚本和钉钉机器人实现服务及服务器监控告警的方法,提升运维工作的效率和准确性。希望本文能为您在实现监控告警方面提供一些思路和帮助。

一、监控shell脚本和钉钉机器人

钉钉机器人是钉钉平台提供的一种自动化机器人,可以通过接口与其他系统进行集成,实现自动化的消息推送和交互。钉钉机器人可以用于各种场景,包括但不限于实时监控告警、任务提醒、数据推送等。

钉钉机器人的主要功能包括:

  • 消息推送:可以向指定的钉钉群组或个人发送消息,包括文本、链接、图片等形式的消息。
  • 交互式应答:可以通过设置机器人的关键词和相应的回复内容,实现对用户消息的自动应答。
  • 定时任务:可以设置机器人定时发送消息,例如每天定时发送日报等。
  • 消息安全:可以通过设置密钥,对消息进行加密,确保消息的安全性。

我们可以实现监控shell脚本的告警功能,及时通知相关人员或群组,以便及时处理问题。接下来,我将介绍如何实现监控shell脚本结合钉钉机器人实现服务及服务器监控告警。

二、创建钉钉机器人:

1.在钉钉群聊里点击设置

2.在设置里点击机器人选项

在这里插入图片描述

3.再点击添加机器人

在这里插入图片描述

4.再点击选择自定义机器人

在这里插入图片描述

5.设置机器人名称、是否加密、是否限制ip、以及触发关键字

在这里插入图片描述

6.获取机器人的Webhook地址

(不要公布在外部网站上,泄露后有安全风险)
在这里插入图片描述
到这里你自定义的机器人就设置好了,如有不明可以参考钉钉官方文档。

三、编写监控脚本:

在服务器上创建一个shell脚本,用于监控服务或服务器的状态。
在脚本中添加相应的监控逻辑,例如检查服务是否正常运行、服务器负载是否过高等。
如果发现异常情况,可以使用curl命令将告警信息发送到钉钉机器人的Webhook地址。
使用curl发送告警信息:

1.代码编写

在监控脚本中,使用curl命令发送HTTP POST请求到钉钉机器人的Webhook地址。
在请求的数据中,包含告警信息的JSON格式,例如

#!/bin/bash# 定义需要监控的端口列表(这里示例两个端口)
port_list="3306 46231"# 定义接收通知的钉钉机器人的 Webhook URL
webhook_url="https://oapi.dingtalk.com/robot/send?access_token=xxxxx这里需要将xxxxxxxx替换为真实access_token"#定义主机名称
zhujiname="我的服务器"# 获取本机IP地址输出本机的ip地址
local_ip=$(hostname -I | awk '{print $1}')# 遍历所有端口并检查其连接状态
for port in $port_list; doif ! nc -z localhost $port; then# 如果发现不正常连接,通过钉钉机器人发送通知消息curl -H "Content-Type: application/json" \-d '{"msgtype": "text","text": {"content": "服务器监控: Port '"$port"' is not active on ('"$zhujiname"') ('"$local_ip"') at '"$(date)"'"}}' $webhook_urlfi
done# 检查系统内存用量是否大于 90%
mem_used=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
if (( $(echo "$mem_used > 90" | bc -l) )); then# 如果内存用量过高,通过钉钉机器人发送通知消息curl -H "Content-Type: application/json" \-d '{"msgtype": "text","text": {"content": "服务器监控: Memory usage is too high ('"$mem_used"'%) on ('"$zhujiname"') ('"$local_ip"') at '"$(date)"'"}}' $webhook_url
fi# 检查系统磁盘使用情况是否大于 90%
disk_used=$(df -h / | awk '/\//{print $(NF-1)}')
if (( ${disk_used%\%} > 90 )); then# 如果磁盘使用情况过高,通过钉钉机器人发送通知消息curl -H "Content-Type: application/json" \-d '{"msgtype": "text","text": {"content": "服务器监控: Disk usage is too high ('"$disk_used"') on ('"$zhujiname"') ('"$local_ip"') at '"$(date)"'"}}' $webhook_url
fi

2.解释主要与钉钉机器人联动的代码

# 如果发现不正常连接,通过钉钉机器人发送通知消息curl -H "Content-Type: application/json" \-d '{"msgtype": "text","text": {"content": "服务器监控: Port '"$port"' is not active on ('"$zhujiname"') ('"$local_ip"') at '"$(date)"'"}}' $webhook_url   #这里的$webhook_url 我上方已经定义webhook地址,上方content里的内容可以自行定义,如果设置了触发关键词就要填写,例如我的关键词设置了‘服务器监控’,就必须再加上关键词,否则不会触发脚本发送

3.钉钉官网代码

curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \-H 'Content-Type: application/json' \-d '{"msgtype": "text","text": {"content":"我就是我, 是不一样的烟火"}}'

四、设置定时任务

1.使用Cron或其他工具设置定时任务来定期运行监控脚本

crontab -e
*/10 * * * * /root/jiankong.sh

2.给脚本加执行权限

chmod +x jiankong.sh

五、测试和部署

运行监控脚本并确保能够正确发送告警消息
在这里插入图片描述

脚本执行成功,消息发送成功。

总结

以上就是shell脚本+钉钉机器人实现监控服务器的内容,本文主要讲述了钉钉机器人的创建方法以及结合shell脚本的使用,大家可以根据个人的需求自行创建属于自己的机器人,监控脚本只作为参考,你可以写出更优秀的脚本。


http://www.ppmy.cn/news/966332.html

相关文章

从ChatGPT看爆火技术概念及医疗领域科技与应用场景

作者:京东健康 陈刚 一、前言 最近OpenAI在官网上宣告了多模态大模型 GPT-4 的诞生,它可能是迄今为止最好的多模态模型。 主要更新内容如下: 1. 逻辑分析能力更加全面、「考试」能力大幅提升 2. 拥有了 识图 能力,可以进行更多元…

抢先微软,Google版Copilot上线!谷歌宣布给Google全家桶开放Bard功能

夕小瑶科技说 原创 作者 | 智商掉了一地、兔子酱 就在本月 5 号,Bard 和 Google Workspace 同步更新了一则新闻,宣布 Workspace 的团队用户即日起可以申请体验由 Bard 大模型驱动的生成式 AI 工具。 这项计划在今年 3 月份首次公布,当时该工具…

强到离谱!2023年必备的21款AI工具

2022年是AI技术大发展的一年,特别是ChatGPT的很空出世,让AI工具迎来大爆发,今天就给大家整理出21款免费且实用的AI工具推荐,无论是做设计还是日常学习工作都能用得到。2023年已经开始,让这些AI工具帮你提升生产效率&am…

972真题 | 基于ChatGpt提供2021-2023年部分927真题分析题思路

文章目录 前言2023年以前值得一看的分析题云计算和大数据之间的区别和联系结合现实案例,谈一谈“信息资源为基,信息技术为用,信息服务为本”简述数据管理的不同发展阶段使用云计算技术,为公共图书馆设计一个管理信息系统方案回答一回答二2023年以搜索学术信息源为例,说明搜…

科大星云诗社动态20210901

【青衫小品】 云酱全新“青衫小品”环节上线! 这个环节将会介绍一些文学史上的轶事趣事,欢迎大家多多关注~ 据《西清诗话》记载,王安石曾写“黄昏风雨暝园林,残菊飘零满地金。”广受赞誉。 欧阳修却不同意他的说法,所…

大脑将会代替开发者的键盘!人类和 AI 能够“双向奔赴”吗? | 近匠

作者 | 王启隆 责编 | 唐小引 出品 | 《新程序员》编辑部 在业界,每逢技术变革,就离不开技术布道者和科学家的身影,他们普及和阐释技术,在变革初期便预测未来技术的发展趋势。成立于 1993 年的全球软件及咨询公司 Thoughtworks…

开源趣事~ 记给 OpenHarmony 提 PR 的那些事

大家好哇,许久不见,也感谢大家这么久一直以来的关注,也感谢在短视频盛行的今天,你们还能静下心来坚守文字的阵地。 说到这次的主题,参加鸿蒙项目的开源,也是小编第一次拥抱开源,就像是别人有困…

基础大模型能像人类一样标注数据吗?

自从 ChatGPT 出现以来,我们见证了大语言模型 (LLM) 领域前所未有的发展,尤其是对话类模型,经过微调以后可以根据给出的提示语 (prompt) 来完成相关要求和命令。然而,直到如今我们也无法对比这些大模型的性能,因为缺乏…