Telegram bot pre monitorovanie servera Linux, oznámenia, správu

V tomto článku sa pozrieme na príklad použitia. telegram topánok na serveri s Linux CentOS, ukážte, ako nakonfigurovať jednoduché upozornenia v chatovacej botičke na monitorovanie servera, ako aj niekoľko ovládacích príkazov.

V ére mobilných prístrojov je dôležité používať rôznych poslov nielen na komunikáciu so skutočnými ľuďmi, ale aj na používanie rôznych robotov. Napríklad v telegram Existuje široká funkčnosť robota, ktorá môže byť použitá na rôzne účely - poskytovať informácie o objednávke klientovi, informácie o zásielke od poštového operátora a napríklad sledovať váš vlastný server..

obsah:

  • Vytvorenie chatovacej roboty v telegrame
  • Odosielanie upozornení na telegramový rozhovor zo servera
  • Správa servera Linux v chatu Telegram

Vytvorenie chatovacej roboty v telegrame

Ak chcete vytvoriť chat chat v telegram použitý bot @BotFather. Ak chcete vytvoriť svoj robot, musíte nájsť @BotFather vo svojom telegrame a choďte s ním četovať:

lis START. Ak chcete vytvoriť nový robot, vyberte v ponuke / newbot, zadajte názov robota vo formáte „name_bot“. Po vytvorení robota dostanete API token tokenu, ktorý bude potrebný v ďalšej konfigurácii.

Teraz musíte zistiť USER_ID - Toto je ID hodiny s robotom, v ktorom bude odosielať oznámenia. Prejdite s ním na rozhovor a stlačte tlačidlo Štart a odošlite ľubovoľnú postavu. Potom v prehliadači prejdite na:

https://api.telegram.org/bot/getUpdates - kde to je API ktorý vydal BotFather.

Vaše ID je na snímke zvýraznené.

Vytvorili sme teda robot v telegrame a dostali sme autorizačné údaje.

Odosielanie upozornení na telegramový rozhovor zo servera

Pomocou predtým vytvoreného robota a prijatých ID môžete odosielať oznámenia do rozhovoru Telegram zo servera a prijímať tak všetky údaje alebo výstrahy, ktoré nás zaujímajú..

Ak chcete na chat poslať správu, musíte použiť nasledujúcu adresu URL:

https://api.telegram.org/bot/sendMessage?chat_id=&text=
kde:
- Toto je API, ktoré vydal @BotFather
- toto je ID vášho rozhovoru s robotom.

Napríklad:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d text = "Dobré ráno, krajina"

Prečo môžem používať takéto telegramové oznámenia? Napríklad pri vytváraní zálohy môžete poslať oznámenia o jej vytvorení alebo poslať odkaz na stiahnutie kópie na rozhovor s robotom. Môžete posielať oznámenia s informáciami o zlyhaniach systému v telegrame. K korunám je možné pridať akékoľvek šeky a potom ich poslať na telegram.

Ďalší príklad použitia takýchto oznámení:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d text = "Používateľ $ (whoami) prihlásený do $ (hostname) na $ (hostname) na $ (hostname) $ (echo $ SSH_CLIENT | awk 'print $ 1') "&> / dev / null 2> & 1

Pridajte tento kód do / etc / profile a bude dostávať upozornenia v telegram zakaždým, keď používatelia vstúpia na server:

Chcem vám pripomenúť, že vo všetkých tímoch musíte presne uviesť svoje token (API) a ID rozprávanie.

Správa servera Linux v chatu Telegram

Existuje sada skriptov, ktoré vám umožňujú ovládať server Linux z chatu Telegram, posielať rôzne príkazy na rozhovor s robotom. Nainštalujte si Python, množstvo nástrojov a nahrajte skripty na server.

# 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 "Vývojové nástroje" -y
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
# ./configure
# make
# make install

Vytvorte symbolický odkaz pre Python:

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

Nainštalujte softvér pre samotný robot:

# pip3 nainštaluje python-telegram-bot - upgrade

Teraz stiahnite a rozbaľte do adresára servera root / admin tri súbory z archívu telegram_bot.zip:

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

Zvážte súbor config.py. V ňom musíme špecifikovať token (API) a ID váš rozhovor s robotom, ako aj cestu k adresárom so zálohami a adresáru, ktorého veľkosť budete ďalej kontrolovať:

súbor bot.sh nevyžaduje konfiguráciu, v ňom uvádzame iba cestu k bot.py:

A najzákladnejší súbor, ktorý nám v skutočnosti umožňuje spravovať server, je bot.py. Popisuje funkcie, ktoré budú k dispozícii v chate s robotom a skutočne tam môžeme pridať našu vlastnú funkciu. Napríklad prvý blok popisuje dostupné príkazy bota v chate:

Popisuje všetky funkcie, ktoré budú k dispozícii po zadaní príkazu / help.

Samotná funkcia je opísaná nižšie,

# ifconfig príkazová funkcia def ifconfig (bot, update): reload (config) user = str (update.message.from_user.id), ak je užívateľ v config.admin: # ak je ID užívateľa v zozname adminov, príkaz je run_command ("ifconfig" ) bot.sendMessage (chat_id = update.message.chat_id, text = textoutput)

Túto funkciu treba opísať ako príkaz:

ifconfig_handler = CommandHandler ('ifconfig', ifconfig) dispečer.add_handler (ifconfig_handler)

Ako vidíme, jedná sa o vykonanie štandardnej funkcie kontroly sieťových nastavení, ak je nakonfigurovaná.

Pri stretnutí s robotom som sa pokúsil pridať vlastný príkaz, napríklad skontrolovať Apache:

# service httpd status

Ale iba prostredníctvom konfigurácie tohto súboru nefungovalo. Ako to chápem, tu môžete vykonať iba príkaz popísaný jedným slovom alebo znakmi. Tento problém som vyriešil vytvorením súboru apache_status.sh s obsahom:

#! / bin / bash
stav služby httpd

A vytvorili na ňom symbolický odkaz:

# ln -s /root/admin/apache_status.sh / usr / local / sbin / apachestatus

Teraz pri volaní príkazu apachestatus, Dostanem stav webového servera apache:

V súbore bot.py Vyplnil som všetky tri bloky podľa ďalších funkcií. Aby robot fungoval, musíte súbor spustiť bot.sh. Pre väčšie pohodlie vytvoríme samostatnú službu pre robot Telegram. Vytvoríme potrebný súbor a nastavíme práva:

# touch /etc/systemd/system/telegram-bot.service
# chmod 664 /etc/systemd/system/telegram-bot.service

Potom prejdeme do servisného súboru:

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

A pridajte obsah:

[Jednotka] Opis = Telegram bot After = network.target [Service] ExecStart = / root / admin / bot.sh [Install] WantedBy = multi-user.target

Teraz pridajte službu do automatického načítania a spustite:

# systemctl start telegram-bot.service
# systemctl povoliť telegram-bot.service
# systemctl status telegram-bot.service

Ak teraz chatujete so svojím robotom, zadajte / help, dostanete zoznam dostupných príkazov.

Napríklad v tejto chvíli je webový server zastavený na mojom serveri apache:

Spustite ho na serveri a skontrolujte stav pomocou telegramu:

Niekoľko ďalších príkladov vykonania príkazu:

Takto môžete monitorovať váš Linuxový server alebo dokonca jeho čiastočnú správu telegram, čo výrazne pomôže skrátiť čas potrebný na vykonanie typických akcií.

Chcel by som tiež poznamenať, že autorizácia servera pomocou robota nastane presne do ID a token (API) (žiadna iná osoba, ktorá nepozná vaše údaje, sa nebude môcť pripojiť).

V čase uverejnenia bola testovacia bota odstránená.