关于服务器资源的监控和告警推行

1 本人建议使用的监控是普罗米修斯和grafana的双向使用

2建议使用的告警推送和所有服务器的统一管理是spug,他还可以对服务端口等进行定时监控。

3 spug的告警监控的相关脚本

   1, 内存

#!/bin/bash

# 获取内存使用率
memory_usage=$(free | grep Mem | awk '{print $3/$2 * 100}' | awk '{printf "%.2f\n", $1}')

# 设置内存使用率阈值(例如:80%)
threshold=80

# 判断内存使用率是否超过阈值
if (( $(echo "$memory_usage > $threshold" | bc -l) )); then
    echo "服务器监控,内存使用率过高: ${memory_usage}%"
    exit 1  # 返回非零状态码表示异常
else
    echo "服务器监控,内存使用正常: ${memory_usage}%"
    exit 0  # 返回零状态码表示正常
fi

  

    2,磁盘

#!/bin/bash

# 设置磁盘使用率阈值(例如:80%)
threshold=80

# 定义需要监控的目录
dirs=("/root" "/home")

# 初始化告警标志
alert_flag=0

# 遍历每个目录并检查磁盘使用率
for dir in "${dirs[@]}"; do
    # 获取指定目录的磁盘使用率,严格过滤非数字字符
    usage=$(df -P "$dir" | awk 'NR==2 {gsub(/%/, "", $5); print $5}')
    
    # 检查是否成功获取到数值
    if [[ -z "$usage" || ! "$usage" =~ ^[0-9]+$ ]]; then
        echo "无法正确获取目录 $dir 的磁盘使用率"
        alert_flag=1
        continue
    fi

    # 判断磁盘使用率是否超过阈值
    if (( usage > threshold )); then
        echo "服务器监控,目录 $dir 的磁盘使用率过高: ${usage}%"
        alert_flag=1
    else
        echo "服务器监控,目录 $dir 的磁盘使用正常: ${usage}%"
    fi
done

# 根据告警标志返回状态码
if [ "$alert_flag" -eq 1 ]; then
    exit 1  # 返回非零状态码表示异常
else
    exit 0  # 返回零状态码表示正常
fi

4 先关服务的部署,我使用的spug是docker的一键部署,然后普罗米修斯和grafana是到官网下载的tar包解压部署使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值