Távirat bot Linux szerver megfigyeléshez, értesítésekhez, kezeléshez

Ebben a cikkben a felhasználás példáját vizsgáljuk meg. távirat bot egy Linux CentOS szerverrel, mutassa be, hogyan konfigurálhatja az egyszerű értesítéseket a chat botban a kiszolgáló figyelésére, valamint számos vezérlőparancsot.

A mobil eszköz korszakában fontos lett a különféle hírvivők használata nemcsak az igazi emberekkel való kommunikációhoz, hanem a különféle botok használatához is. Például a távirat A bot széles funkcionalitása elérhető, amelyet különféle célokra lehet felhasználni - információt adhat az ügyfélnek a megrendelésről, a postai szolgáltatótól a csomagról és például a saját szerverének megfigyelésére..

Tartalom:

  • Csevegőbot létrehozása a táviratban
  • Értesítések küldése a távirat csevegésére a szerverről
  • Linux szerver menedzsment a Telegram chatbotban

Csevegőbot létrehozása a táviratban

Csevegési bot létrehozása távirat használt bot @BotFather. A bot létrehozásához meg kell találnia @BotFather a táviratban, és menj beszélgetni vele:

sajtó START. Új bot létrehozásához válassza a menüben / newbot, Írja be a bot nevét a „name_bot” formátumban. A bot létrehozása után megkapja API bot token, amelyre a további konfiguráláshoz szükség lesz.

Most meg kell tudnod user_id - Ez a bot órájának azonosítója, amelyben értesítéseket fog küldeni. Keressen vele csevegni, nyomja meg a Start gombot, és küldjön bármilyen karaktert. Ezután a böngészőben lépjen a következőbe:

https://api.telegram.org/bot/getUpdates - hol van API amely kiadta a BotFather-t.

Azonosítóját kiemeli a képernyőképe.

Tehát létrehozott egy botot a Telegramban, és megkaptuk az engedélyezési adatokat.

Értesítések küldése a távirat csevegésére a szerverről

Az előzőleg létrehozott bot és a fogadott azonosítók használatával értesítéseket küldhet a Telegram csevegőbe a szerverről, és így bármilyen adatot vagy riasztást megkaphat, amely érdekel minket..

Az üzenet elküldéséhez a csevegőbe a következő URL-t kell használnia:

https://api.telegram.org/bot/sendMessage?chat_id=&text=
ahol:
- ez az az API, amelyet a @BotFather kiadott
- ez a bottal folytatott csevegés azonosítója.

Például:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d text = "Jó reggelt, ország"

Miért használhatom az ilyen távirat-értesítéseket? Például, amikor biztonsági másolatot készít, értesítést küldhet annak létrehozásáról, vagy linket küldhet a másolat letöltéséhez a botnal való csevegéshez. Küldhet magának értesítéseket a táviratban található rendszer-összeomlásokkal kapcsolatos információkkal. Bármely csekk hozzáadható a koronához, majd elküldhető a Telegramba.

További példa az ilyen értesítések használatára:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d text = "$ $ (whoami) bejelentkezett a $ (hostname) (echo $ SSH_CLIENT | awk 'print $ 1') "&> / dev / null 2> & 1

Adja hozzá ezt a kódot a / etc / profil és értesítéseket kapunk távirat minden alkalommal, amikor a felhasználó belép a szerverre:

Szeretném emlékeztetni, hogy minden csapatban pontosan meg kell adnia az ön nevét token (API) és ID csevegés.

Linux szerver menedzsment a Telegram chatbotban

Van egy szkriptkészlet, amely lehetővé teszi a Linux szerver vezérlését a Telegram csevegéséből, különféle parancsok küldésével a botmal való csevegéshez. Ehhez telepítse a Python-ot, számos eszközt, és töltsön fel szkripteket a kiszolgálóra.

# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
# yum install xz -y
# tar -xpJf Python-3.6.0.tar.xz
# cd Python-3.6.0
# yum groupinstall "Fejlesztő eszközök" -y
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
# ./konfiguráció
# make
# telepítse

Hozzon létre egy hivatkozást a Python számára:

# ln-us / usr / local / bin / python3 / usr / bin / python3

Telepítse magának a botnak a szoftvert:

# pip3 install python-telegram-bot --upgrade

Most töltse le és csomagolja ki a kiszolgáló könyvtárába root / admin három fájl a telegram_bot.zip archívumból:

  • bot.sh
  • config.py
  • bot.py

Vegye figyelembe a fájlt config.py. Ebben meg kell határoznunk token (API) és ID a csevegés a bottal, valamint a biztonsági másolatokkal ellátott könyvtárak és a könyvtár elérési útja, amelynek méretét tovább ellenőrizheti:

fájl bot.sh nem igényel konfigurálást, abban csak az elérési utat jelöljük bot.py:

És a legalapvetőbb fájl, amely valóban lehetővé teszi számunkra a szerver kezelését bot.py. Leírja azokat a funkciókat, amelyek elérhetők lesznek a botnal folytatott csevegésben, és valójában ott is hozzáadhatjuk saját funkciókat. Például az első blokk leírja a csevegésben elérhető botparancsokat:

Leírja az összes funkciót, amely a parancs beírása után elérhető lesz / help.

Magát a funkciót például az alábbiakban ismertetjük,

# ifconfig parancs funkció def ifconfig (bot, frissítés): újratöltés (config) user = str (update.message.from_user.id), ha a felhasználó a config.admin: # ha a felhasználói azonosító az admin listában van, akkor a parancs a run_command ("ifconfig" ) bot.sendMessage (chat_id = update.message.chat_id, text = textoutput)

És ezt a funkciót parancsként kell leírni:

ifconfig_handler = CommandHandler ('ifconfig', ifconfig) küldő.add_handler (ifconfig_handler)

Vagyis, mint láthatja, ez a standard ifconfig hálózati funkció ellenőrzésének végrehajtása.

A bottal való találkozáskor megpróbáltam hozzáadni a saját parancsomat, például az Apache ellenőrzéséhez:

# szolgáltatás httpd állapota

De csak a fájl konfigurálása révén nem működött. Ahogy megértettem, itt csak egy szóval vagy karakterekkel leírt parancsot hajthat végre. A fájlt fájl létrehozásával oldottam meg apache_status.sh tartalommal:

#! / bin / bash
szolgáltatás httpd állapota

És létrehozott egy hivatkozást rajta:

# ln -s / gyökér/admin/apache_status.sh / usr / local / sbin / apachestatus

Most, amikor meghívjuk a parancsot apachestatus, Megkapom a webszerver állapotát apache:

Aktában bot.py Kitöltöttem mind a három blokkot, más funkciók szerint. A bot működéséhez el kell futtatnia a fájlt bot.sh. Az egyszerűség kedvéért külön szolgáltatást hozunk létre a Telegram bot számára. Készítjük a szükséges fájlt és beállítjuk a jogokat:

# érintse meg az /etc/systemd/system/telegram-bot.service elemet
# chmod 664 /etc/systemd/system/telegram-bot.service

Aztán megyünk a szolgáltatási fájlhoz:

# nano /etc/systemd/system/telegram-bot.service

És adjuk hozzá a tartalmat:

[Egység] Leírás = Telegram bot Után = network.target [Service] ExecStart = / root / admin / bot.sh [Install] WantedBy = multi-user.target

Most adja hozzá a szolgáltatást az automatikus betöltéshez, és futtassa:

# systemctl indítsa el a telegram-bot.service szolgáltatást
# systemctl engedélyezze a telegram-bot.service szolgáltatást
# systemctl status telegram-bot.service

Most, ha a botjával csevegsz, lépj be / help, megkapja az elérhető parancsok listáját.

Például abban a pillanatban, amikor a webszerver le van állítva a szerveremen Apache:

Futtassa a szerveren, és ellenőrizze az állapotot a Telegram segítségével:

Néhány további példa a parancs végrehajtására:

Így figyelemmel kísérheti a Linux szervert vagy akár a részleges adminisztrációt is távirat, ami jelentősen csökkenti a tipikus műveletek elvégzéséhez szükséges időt.

Azt is szeretném megjegyezni, hogy a szerver hitelesítése egy botmal pontosan a ID és token (API) (bármely más személy, aki nem ismeri az Ön adatait, nem lesz képes csatlakozni).

A közzétételkor a tesztbotot eltávolították.