How-to-Monitor-Server-Using-telegram-bot

چگونه سرور مجازی خود را با بات تلگرام مانیتور کنیم؟

فهرست مطالب

یکی از موارد بسیار مهمی که باید پس از خرید سرور به آن توجه داشته باشید، مانیتور کردن آن است. اطلاع لحظه‌ای از مشکلات احتمالی، پرشدن حافظه، یا از دسترس خارج شدن سرویس‌ها می‌‎تواند تفاوت بین یک قطعی چند دقیقه‌ای یا حتی فاجعه‌ای بزرگ را رقم بزند. تلگرام به دلیل دسترسی همگانی، سرعت بالا و رایگان بودن، به ابزاری ایده آل برای دریافت هشدارهای آنی سرور تبدیل شده است. 

پیش نیازهای مانیتور سرور با بات تلگرام

قبل از هرکاری باید برخی از پیش نیازها را داشته باشید تا بتوانید باتی راه انداخته و از آن برای مانیتور سرور استفاده نمایید.

  • سرور مجازی اوبونتو (ورژن 20.04 یا مشابه)
  • دانش پایه‌ای لینوکس
  • پکیج‌های ضروری برای ارتباط با API تلگرام

می‌توانید از دستور زیر برای نصب و آپدیت پکیج‌های مورد نیاز استفاده نمایید.

				
					sudo apt update && sudo apt install -y curl jq
				
			
  • پکیج curl برای درخواست HTTP به API تلگرام استفاده می‌شود.
  • پکیج jq، هنگام اشکال زدایی JSON در زمان دیباگ کردن مفید است.

نگران پیش نیازها نباشید! با خرید سرور اختصاصی پویان آی تی، می‌توانید کنترل بیشتری بر روی سرور و مانیتورینگ خود داشته باشید!

چه مواردی را می‌توان با بات تلگرام مانیتور کرد؟

با استفاده از این روش مانیتورینگ، می‌توانید:

  • وب سرورهای خود مانند Apache یا Nginx را مانیتور کنید و اگر به مشکلی بر بخورند به وسیله پیام تلگرام از آن مطلع شوید.
  • وب سایت خود را به صورت مداوم برای بالا بودن بررسی کنید.
  • میزان استفاده از منابع را پیگیری کنید و در صورت مشکل، سریعا مطلع شوید.
  • از دیتابیس خود به صورت خودکار بکاپ بگیرید.
  • گزارش‌های آپتایم و سلامت سرور را دریافت کنید.
  • هشدارهای امنیتی دریافت کنید.

آموزش مانیتور سرور با بات تلگرام

در ادامه به شما آموزش می‌دهیم چگونه سرور مجازی خود را به وسیله بات تلگرام مدیریت کنید:

راه اندازی ربات تلگرام

قبل از هرکاری، شما به یک رابط در تلگرام نیاز دارید. این رابط، یک ربات است که پیام‌ها را از سرور شما دریافت و در چت تلگرام نمایش می‌دهد. این فرایند در تمام روش‌ها یکسان است.

  1. در تلگرام، حساب کاربری BotFather@ را جستجو و چت را شروع کنید.
  2. دستوری newbot/ را ارسال نمایید.
  3. یک نام مانند My Server Monitor و یک نام کاربری که باید به خود بات وصل شود، انتخاب نمایید (مانند MySecureAlert_bot).
  4. BotFather به شما یک توکن می‌دهد، این توکن مانند رمز عبور ربات شماست.
Starting-BotFather
Bot-Father-CreateBot

دریافت شناسه چت (Chat ID)

ربات باید بداند پیام‌های خود را به کجا ارسال کند. چند راه برای این کار وجود دارد.

1. شروع چت با بات: رباتی که ساختید را در تلگرام پیدا کنید و دکمه Start را بزنید. پس از شروع یک پیام (برای مثال Hello from admin) را برای بات ارسال کنید.

2. دریافت شناسه: پس از استارت زدن بات، آدرس زیر را در مرورگر خود باز کنید. TOKEN را با توکنی که بالاتر از بات گرفتید جایگزین کنید.

				
					https://api.telegram.org/botTOKEN/getUpdates

				
			

به عنوان مثال، آدرسی که در مرورگر خود وارد می‌کنید باید بدین شکل باشد:

				
					https://api.telegram.org/bot123456789:ABC-YourSuperSecretToken/getUpdates

				
			

خروجی‌ای که دریافت می‌کنید به صورت زیر است (من از یک افزونه استفاده می‎‌کنم و شاید در مرورگر شما خروجی JSON دقیقا به این شکل نباشد.)

Telegram-JSON-Result

نوشتن اسکریپت بات تلگرام

حالا که بات خود را راه اندازی کردیم، باید سرور خود را به بات متصل کنیم. ابتدا باید به سرور خود متصل شوید. اگر مشکلی در اتصال به سرور مجازی خود دارید، پیشنهاد می‌دهم آموزش اتصال به سرور مجازی را پیش از ادامه این مقاله، مطالعه کنید.

ذخیره اطلاعات کلیدی

هیچوقت از اطلاعات کلیدی خود به صورت مستقیم در اسکریپت‌ها استفاده نکنید. به جای آن به سراغ یک اسکریپت مرکزی و امن بروید.

ساخت فایل مدنظر:

				
					sudo mkdir -p /etc/telegram
				
			

فایل telegram.env را ساخته و آن را باز کنید:

				
					sudo nano /etc/telegram/telegram.env
				
			

موارد زیر را داخل فایل telegram.env اضافه کنید:

				
					TELEGRAM_BOT_TOKEN="123456789:ABC-YourSuperSecretToken"
TELEGRAM_CHAT_IDS="123456789,987654321"
				
			

توجه داشته باشید که به جای موارد بالا، توکن بات تلگرام و آیدی چت خود را جای گذاری کنید. اگر چند Chat ID مختلف دارید، آن‌ها را با ویرگول جدا کنید.

در نهایت، فایلی که ساخته‌ای را قفل کنید تا تنها کاربر root بتواند آن را ویرایش کند:

				
					sudo chmod 600 /etc/telegram/telegram.env

				
			

نوشتن اسکریپت پیام برای مانیتور سرور

در این مرحله باید اسکریپتی بنویسیم که پیام‌‎ها را قبول کرده و آن‌ها را به تلگرام ما ارسال نماید.

فایلی با نام telegram-notify بسازید و آن را باز نمایید:

				
					sudo nano /usr/local/bin/telegram-notify

				
			

اسکریپت زیر را کپی کنید:

				
					#!/bin/bash
set -euo pipefail

source /etc/telegram/telegram.env

MESSAGE="$1"

for CHAT_ID in $(echo "$TELEGRAM_CHAT_IDS" | tr "," "\n"); do
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
    -d chat_id="$CHAT_ID" \
    -d text="$MESSAGE" \
    -d parse_mode="Markdown" > /dev/null
done
				
			

اسکریپتی که نوشتید به صورت قابل اجرا درآورید:

				
					sudo chmod +x /usr/local/bin/telegram-notify

				
			

اکون می‌توانید بات تلگرام خود را با دستور زیر تست کنید!

				
					sudo telegram-notify ":sunglasses: Hello from my server!"

				
			

پس از اجرای این دستور، تلگرام شما باید پیام بالا را دریافت کند.

متصل کردن سرور به بات تلگرام

حالا که می‌توانیم با دستورات خود به بات تلگرامی که ساختیم پیام‌های مختلف بفرستیم، می‌توانیم با اجرای چند دستور ساده، اطلاعات سرور خود را در بات تلگرام به صورت روزانه دریافت کنیم.

به وسیله کد زیر، هر روز ساعت نه صبح آپدیت روزانه سرور خود را از طریق بات تلگرام دریافت خواهید کرد:

				
					0 9 * * * /usr/local/bin/telegram-notify ":white_check_mark: $(hostname) is alive as of $(date)"

				
			

با کد خطر زیر نیز، اگر سرور شما (در مثال زیر از Nginx استفاده شده) به هر دلیلی متوقف شود، در کمتر از پنج دقیقه مطلع خواهید شد:

				
					*/5 * * * * ! systemctl is-active --quiet nginx && /usr/local/bin/telegram-notify ":rotating_light: $(hostname): nginx is NOT running at $(date)"

				
			

جمع بندی

اتصال تلگرام به سرور، یک روش مدرن، رایگان و فوق العاده کارآمد برای مانیتورینگ است. می‌توانید با روش‌هایی که در این مقاله به آن‌ها اشاره کردیم، به راحتی وارد این محیط حرفه‌ای شوید و خیال خود را از مانیتور سرور راحت کنید.

سوالات متداول

بله شما می‌توانید با اتصال Zabbix به تلگرام سرور خود را به صورت حرفه‌ای‌تر مانیتور کنید.

بله، برای بخش نوشتن اسکریپت شخصی سازی شده بهتر است که دانش کمی از لینوکس داشه باشید تا بتوانید اسکریپت‌های بهتری بنویسید.

منابع

  • https://community.hetzner.com/tutorials/server-monitoring-using-telegram-bot

به این مقاله امتیاز دهید!

میانگین امتیاز 0 / 5. تعداد رأی ها : 0

هنوز هیچ رأیی داده نشده. اولین نفر باشید!

اشتراک گذاری در تلگرام اشتراک گذاری در لینکدین اشتراک گذاری در ایکس کپی کردن لینک پست

و در ادامه بخوانید

اولین دیدگاه را اضافه کنید.

    برچسب ها

    VPS مانیتورینگ