运维监控linux服务器异常状态,

server/2024/9/25 17:06:01/

 做好服务器运维工作,及时发现服务器状态异常,要做到第一时间知道,只需写个python监控脚本即可,(钉钉配置通知)以下是详细监控linux服务器脚本代码:

# -*- coding: utf-8 -*-
import threadingimport psutil
import requests
import time# 设定阈值
disk_threshold = 50
mem_threshold = 50
cpu_threshold = 50
ser_name = '广东省充电桩数据库服务器'# DingTalk webhook地址
webhook_url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxx'  # 请替换为实际的webhook地址def send_dingtalk(title, message):message = title + '(' + ser_name + ')->' + messagedata = {"msgtype": "text","text": {"content": message}}response = requests.post(webhook_url, json=data)print(response.json())def monitor_disk_usage(ddd='/'):disk_usage = psutil.disk_usage(ddd)if disk_usage.percent > disk_threshold:send_dingtalk("磁盘[" + ddd + "]使用率过高", f"硬盘使用率已达{disk_usage.percent}%")def monitor_memory_usage():memory_usage = psutil.virtual_memory()if memory_usage.percent > mem_threshold:send_dingtalk("内存使用率过高", f"内存使用率已达{memory_usage.percent}%")def monitor_cpu_usage():cpu_usage = psutil.cpu_percent(interval=1)if cpu_usage > cpu_threshold:send_dingtalk("CPU使用率过高", f"CPU使用率已达{cpu_usage}%")def monitor_cpu():print("CPU监控中...")while True:monitor_cpu_usage()time.sleep(120)  # 每2分钟运行一次CPU监控def monitor_disk():print("磁盘监控中...")while True:monitor_disk_usage()monitor_disk_usage('/opt/')time.sleep(1800)  # 每30分钟运行一次def monitor_memory():print("内存监控中...")while True:monitor_memory_usage()time.sleep(60)  # 每1分钟运行一次内存监控if __name__ == "__main__":send_dingtalk("start", "server mon start ok")cpu_thread = threading.Thread(target=monitor_cpu, daemon=True)disk_thread = threading.Thread(target=monitor_disk, daemon=True)memory_thread = threading.Thread(target=monitor_memory, daemon=True)cpu_thread.start()disk_thread.start()memory_thread.start()# 等待所有线程结束cpu_thread.join()disk_thread.join()memory_thread.join()

服务器状态超过设置的异常值时,手机端钉钉实时收到通知,效果图如下:


http://www.ppmy.cn/server/17580.html

相关文章

Qt下使用OpenCV截取图像并在QtableWidget表格上显示

文章目录 前言一、在QLabel上显示图片并绘制矩形框二、保存矩形框数据为CSV文件三、保存截取图像四、将截取图像填充到表格五、图形视图框架显示图像六、示例完整代码总结 前言 本文主要讲述了在Qt下使用OpenCV截取绘制的矩形框图像,并将矩形框数据保存为CSV文件&a…

【舞台灯方案】LED驱动恒流芯片pwm深度调光APS54085降压IC

产品描述 APS54085 是一款 PWM 工作模式,高效率、外围简单、内置功率 MOS 管,适用于 5-100V输入的高精度降压 LED 恒流驱动芯片。最大电流2.0A。 APS54085 可实现线性调光和 PWM 调光,线性调光有效电压范围 0.52-2.55V. PWM 调光频率范围 100HZ-30KHZ。…

java:Http协议和Tomcat

HTTP协议 Hyper Text Transfer Protocol 超文本传输协议,规定了浏览器和服务器之间数据传输的规则 特点: 基于TCP协议,面向连接,安全 基于请求响应模型:一次请求对应一次响应 HTTP协议是无状态协议,对事务的处理没有记忆能力,每次请求-响应都是独立的. 优点 速度较快 …

torch.mm函数介绍

torch.mm() 是 PyTorch 中用于执行矩阵乘法(matrix multiplication)的函数。它能够将两个给定的张量进行矩阵乘法运算,得到结果张量。 这是 torch.mm() 函数的基本语法: torch.mm(input, mat2, *, outNone)input: 第一个输入张量…

hadoop大数据原理与应用------初识Hadoop数据集

哪种运行模式是使用Hadoop的最佳方式,真实Hadoop集群的运行均采用该模式? 真实Hadoop集群的运行通常采用全分布模式(Fully Distributed Mode)。在全分布模式下,Hadoop集群会跨越多个物理或虚拟节点,每个…

Golang | Leetcode Golang题解之第46题全排列

题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

理解与解决BouncyCastle库中“ASN1Primitive overrides final method equals”异常

理解与解决BouncyCastle库中“ASN1Primitive overrides final method equals”异常 引言错误原因分析应用场景及解决方案示例示例一:不同版本间的兼容性问题示例二:库之间的相互影响示例三:JDK版本适配问题 结论 引言 在Java开发中&#xff0…

JMeter--逻辑控制器--IF 控制器

IF控制器:可以控制其下面的子/后代元素是否执行;如果为 true 则执行;如果为 false 则都不执行 右键 >>> 添加 >>> 逻辑控制器 >>> IF 控制器(If Controller) Interpret Condition as Varia…