683 字
3 分钟
服务器状态实时监控:用 Telegram 接收 CPU、内存和 MySQL 连接数
2023-12-21

服务器状态实时监控:#

使用 Telegram 接收 CPU、内存和 MySQL 连接数

简介: 本笔记介绍一种通过 Telegram 接收服务器 CPU、内存使用率和 MySQL 连接数的监控方法。该脚本每 10 分钟发送一次服务器数据,帮助您实时掌握服务器状态。

脚本功能#

  • CPU 使用率监控: 实时获取 CPU 使用率,并发送到 Telegram。
  • 内存使用率监控: 实时获取内存使用率,并发送到 Telegram。
  • MySQL 连接数监控: 实时获取 MySQL (3306 端口) 的连接数,并发送到 Telegram。
  • 443 端口连接数监控: 实时获取 443 端口的连接数,并发送到 Telegram。

脚本实现#

以下是用于监控服务器状态并将其发送到 Telegram 的 Bash 脚本:

#!/bin/bash
# 配置信息
TELEGRAM_BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN" # 替换为您的 Telegram Bot Token
TELEGRAM_CHAT_ID="YOUR_TELEGRAM_CHAT_ID" # 替换为您的 Telegram Chat ID
# 监控循环
while true
do
# 获取 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F. '{print $1}')
# 获取内存使用率
memory_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
# 获取 MySQL (3306 端口) 连接数
mysql_connections=$(netstat -tn | grep ':3306' | grep -c 'ESTABLISHED')
# 获取 443 端口连接数
port_443_connections=$(netstat -tn | grep ':443' | grep -c 'ESTABLISHED')
# 构建消息内容
message="CPU 使用率: ${cpu_usage}%\n内存 使用率: ${memory_usage}%\nMySQL 连接数: ${mysql_connections}\n443端口连接数: ${port_443_connections}"
# 发送消息到 Telegram
curl -s -X POST https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${TELEGRAM_CHAT_ID} -d text="${message}"
# 休眠 10 分钟 (600 秒)
sleep 600
done

关键配置:

  • TELEGRAM_BOT_TOKEN: 您的 Telegram Bot 的 Token,用于身份验证。
  • TELEGRAM_CHAT_ID: 您希望接收消息的 Telegram Chat ID。

脚本说明:

  1. 获取 CPU 使用率: 使用 top 命令获取 CPU 使用率,并使用 awk 命令提取数值。
  2. 获取内存使用率: 使用 free 命令获取内存使用情况,并使用 awk 命令计算内存使用率。
  3. 获取 MySQL 连接数: 使用 netstat 命令获取 MySQL (3306 端口) 的连接数。
  4. 获取 443 端口连接数: 使用 netstat 命令获取 443 端口的连接数。
  5. 构建消息: 将获取到的数据组合成一条消息。
  6. 发送消息: 使用 curl 命令通过 Telegram Bot API 发送消息。
  7. 休眠: 脚本每 10 分钟休眠一次,以便定期监控服务器状态。

注意事项#

  • 替换占位符: 请务必将 YOUR_TELEGRAM_BOT_TOKENYOUR_TELEGRAM_CHAT_ID 替换为您的实际值。
  • 脚本权限: 确保脚本具有执行权限 (chmod +x script.sh)。
  • 后台运行: 建议将脚本配置为后台进程运行,例如使用 nohup ./script.sh &
  • 错误处理: 该脚本未包含错误处理机制,实际应用中应添加错误处理逻辑,例如检查命令执行结果、记录错误日志等。
  • 安全性: 妥善保管您的 Telegram Bot Token,避免泄露。
服务器状态实时监控:用 Telegram 接收 CPU、内存和 MySQL 连接数
https://blog.wlens.top/posts/服务器监控发送到telegram/
作者
Lao Wang
发布于
2023-12-21
许可协议
CC BY-NC-SA 4.0