最简单监控方案:域名、证书 SSL、服务器全搞定!发送钉钉告警消息

本文主要是介绍最简单监控方案:域名、证书 SSL、服务器全搞定!发送钉钉告警消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需求

  • 有时候域名太多,时间一长,你会不记得快要续期了
  • 服务器太多,需要监控,这应该是刚需
  • 证书申请来申请去,自动续签鬼知道会不会出问题

痛点

监控还要安装各种东西,会出岔子,折腾够呛,难免费时费力,所以,我的方案就是使用脚本,快速高效。脚本公开透明,放心食用~

创建钉钉报警机器人

文档:https://open.dingtalk.com/document/orgapp/custom-robot-access

记得在安全设置那里写上服务器IP地址,也就是你放脚本的服务器IP地址

最后复制webhook地址

创建必要文件

mkdir -p /home/domain
touch /home/domain/warnfile
touch /home/domain/logssl
touch /home/domain/serverlog
touch /home/domain/check_ssl.txt

下载关键脚本

cd /home/domain
wget https://raw.githubusercontent.com/woniu336/open_shell/main/domain_expiry_reminder.sh
wget https://raw.githubusercontent.com/woniu336/open_shell/main/warnsrc.py
wget https://raw.githubusercontent.com/woniu336/open_shell/main/daily_report.sh
wget https://raw.githubusercontent.com/woniu336/open_shell/main/check_ssl.sh
wget https://raw.githubusercontent.com/woniu336/open_shell/main/monitor_server.sh

设置权限:

chmod -R 755 /home/domain

修改脚本

  • check_ssl.txt 添加需要检测证书的域名
  • check_ssl.sh 证书检测脚本
  • monitor_server.sh 服务器健康检测脚本
  • domain_expiry_reminder.sh和warnsrc.py 域名到期检测脚本
  • daily_report.sh 每日生成检测报告的脚本
文件名需要修改的内容
check_ssl.txt添加域名证书到期检测文件,每行一个域名
check_ssl.shTOKEN=“Webhook地址”
monitor_server.shDINGTALK_WEBHOOK=“Webhook地址”
domain_expiry_reminder.shfor line in aaa.com bbb.com 多个域名空格隔开
warnsrc.pyurl = ‘Webhook地址’
daily_report.shDINGTALK_WEBHOOK=“Webhook地址”

提醒:

for line in aaa.com bbb.com 把aaa.com bbb.com移除,改成你的域名

此外monitor_server.sh还需要修改一个地方:

需要监控的服务器IP、端口、标签

declare -A TARGET_SERVERS=(#["8.8.8.8"]="端口|标签"["192.168.1.8"]="3000|腾讯云HK"
)

测试说明

不把数值改大一点,是没有通知的,因为默认数值比较小,不然啥事没有就天天通知,岂不是烦人~

check_ssl.sh:if [ $days -lt 60 ]; #改成60天或者更大,方便测试

monitor_server.sh: [“192.168.1.8”]=“3000|腾讯云HK” 改成没有放行的端口

domain_expiry_reminder.sh: if [ $expiry_date -lt 200 ]; 改成200天

daily_report.sh: 手动运行测试,cd /home/domain && ./daily_report.sh

定时任务

  • daily_report.sh脚本很推荐,
  • 因为会养成你每天下午2点就收到钉钉通知报告的习惯。时间一长,你会记得去看~
(crontab -l ; echo "30 2 */3 * * cd /home/domain && ./domain_expiry_reminder.sh >/dev/null 2>&1") | crontab -
(crontab -l ; echo "0 14 * * * cd /home/domain && ./daily_report.sh >/dev/null 2>&1") | crontab -
(crontab -l ; echo "10 3 * * * cd /home/domain && ./check_ssl.sh >/dev/null 2>&1") | crontab -
(crontab -l ; echo "*/2 * * * * cd /home/domain && ./monitor_server.sh >/dev/null 2>&1") | crontab -

这四个命令都是用于向 crontab 添加定时任务的命令,具体解读如下:

  1. 域名到期提醒任务

    (crontab -l ; echo "30 2 */3 * * cd /home/domain && ./domain_expiry_reminder.sh >/dev/null 2>&1") | crontab -
    
    • 时间:每3天的凌晨2:30执行。
    • 命令:进入 /home/domain 目录并执行 domain_expiry_reminder.sh 脚本,将标准输出和错误输出重定向到 /dev/null
  2. 每日报告任务

    (crontab -l ; echo "0 14 * * * cd /home/domain && ./daily_report.sh >/dev/null 2>&1") | crontab -
    
    • 时间:每天下午2点执行。
    • 命令:进入 /home/domain 目录并执行 daily_report.sh 脚本,将标准输出和错误输出重定向到 /dev/null
  3. SSL证书检查任务

    (crontab -l ; echo "10 3 * * * cd /home/domain && ./check_ssl.sh >/dev/null 2>&1") | crontab -
    
    • 时间:每天凌晨3:10执行。
    • 命令:进入 /home/domain 目录并执行 check_ssl.sh 脚本,将标准输出和错误输出重定向到 /dev/null
  4. 服务器监控任务

    (crontab -l ; echo "*/2 * * * * cd /home/domain && ./monitor_server.sh >/dev/null 2>&1") | crontab -
    
    • 时间:每2分钟执行一次。
    • 命令:进入 /home/domain 目录并执行 monitor_server.sh 脚本,将标准输出和错误输出重定向到 /dev/null

这些命令通过将当前的 crontab 内容与新的任务行合并,然后将结果重新写入 crontab,从而实现向 crontab 添加新的定时任务。

这篇关于最简单监控方案:域名、证书 SSL、服务器全搞定!发送钉钉告警消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125331

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送