最简单监控方案:域名、证书 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

相关文章

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实