Telegram bot za nadziranje strežnikov Linux, obveščanje, upravljanje

V tem članku si bomo ogledali primer uporabe. Telegram bot na strežniku z Linuxom CentOS, pokaži, kako konfigurirati preprosta obvestila v chat botu za spremljanje vašega strežnika, pa tudi več kontrolnih ukazov.

V dobi mobilnih pripomočkov je postala pomembna uporaba različnih sporočil, ne le za komunikacijo z resničnimi ljudmi, temveč tudi za uporabo različnih botov. Na primer v Telegram Za bota obstaja široka funkcionalnost, ki jo je mogoče uporabiti v različne namene - dajati stranki informacije o naročilu, informacije o paketu od poštnega operaterja in na primer spremljanje lastnega strežnika.

Vsebina:

  • Ustvarjanje klepeta v Telegramu
  • Pošiljanje obvestil v klepet Telegram s strežnika
  • Upravljanje strežnikov Linux v klepetu Telegram

Ustvarjanje klepeta v Telegramu

Če želite ustvariti chat bot Telegram rabljen bot @BotFather. Če želite ustvariti svojega bot, morate poiskati @BotFather v vašem Telegramu in pojdite klepetati z njim:

Kliknite ZAČETEK. Če želite ustvariti nov bot, izberite v meniju / novorojenček, vnesite ime bota v obliki "name_bot". Ko ustvarite bot, boste prejeli API bot žeton, ki bo potreben pri nadaljnji konfiguraciji.

Zdaj morate to ugotoviti user_id - To je ID ure z botom, v katerem bo poslal obvestila. Pojdi z njim v klepet in pritisnite start in pošljite poljuben znak. Po tem v brskalniku pojdite na:

https://api.telegram.org/bot/getUpdates - kje je API ki je izdal BotFather.

Na zaslonu je označen vaš ID.

Torej, ustvarili smo bot v Telegramu in prejeli podatke o pooblastilih.

Pošiljanje obvestil v klepet Telegram s strežnika

S predhodno ustvarjenim bot in prejetimi ID-ji lahko v strežnik Telegram pošiljate obvestila s strežnika Telegram in tako prejemate kakršne koli podatke ali opozorila, ki nas zanimajo.

Če želite poslati sporočilo v klepet, morate uporabiti naslednji URL:

https://api.telegram.org/bot/sendMessage?chat_id=&text=
Kje:
- to je API, ki ga je izdal @BotFather
- to je ID vašega klepeta z botom.

Na primer:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d besedilo = "Dobro jutro, država"

Zakaj lahko uporabljam taka obvestila Telegrama? Na primer, ko ustvarite varnostno kopijo, lahko pošljete obvestila o njenem ustvarjanju ali pošljete povezavo za prenos kopije, da poklepetate z botrom. V Telegramu si lahko pošiljate obvestila s podatki o okvarah sistema. Kronam lahko dodate vse čeke in jih nato pošljete Telegramu.

Še en primer uporabe takih obvestil:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d text = "Uporabnik $ (whoami) se prijavi v $ (ime gostitelja) na $ (ime gostitelja) na (odmev $ SSH_CLIENT | awk 'print $ 1') "&> / dev / null 2> & 1

Dodaj to kodo v / itd / profil in prejela obvestila v Telegram vsakič, ko uporabniki vstopijo v strežnik:

Želim vas spomniti, da morate v vseh skupinah navesti točno svoje žeton (API) in ID klepet.

Upravljanje strežnikov Linux v klepetu Telegram

Obstaja nabor skript, ki omogoča nadzor nad strežnikom Linux iz klepeta Telegram in pošiljanje različnih ukazov za klepet z botrom. Če želite to narediti, namestite Python, več orodij in na strežnik naložite skripte.

# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
# yum namestite xz -y
# tar -xpJf Python-3.6.0.tar.xz
# cd Python-3.6.0
# yum groupinstalirajte "Razvojna orodja" -y
# yum namestite zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
# ./konfiguriraj
# make
# izvedite namestitev

Ustvari simbolno povezavo za Python:

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

In namestite programsko opremo za sam bot.

# pip3 namestite python-telegram-bot - nadgradite

Zdaj prenesite in razpakirajte v strežnik imenik root / admin tri datoteke iz arhiva telegram_bot.zip:

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

Upoštevajte datoteko config.py. V njem moramo določiti žeton (API) in ID vaš klepet z botom, pa tudi pot do imenikov z varnostnimi kopijami in imenikom, katerega velikost boste še preverili:

Datoteka bot.sh ne potrebuje konfiguracije, v njem navedemo samo pot do bot.py:

In najosnovnejša datoteka, ki nam dejansko omogoča upravljanje s strežnikom, je bot.py. Opisuje funkcije, ki bodo na voljo v klepetu z botom in dejansko tam lahko dodamo lastno funkcionalnost. Na primer, prvi blok opisuje razpoložljive ukaze bot v klepetu:

Opisuje vse funkcije, ki bodo na voljo po vnosu ukaza / pomoč.

Funkcija sama je opisana spodaj, na primer,

# ifconfig ukazna funkcija def ifconconfig (bot, posodobitev): znova naloži (config) uporabnik = str (update.message.from_user.id), če je uporabnik config.admin: # če je uporabniški id na seznamu administratorja, je ukaz run_command ("ifconfig" ) bot.sendMessage (chat_id = update.message.chat_id, text = textoutput)

In to funkcijo je treba opisati kot ukaz:

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

To je, kot vidimo, to je izvedba standardne funkcije preverjanja omrežnih nastavitev ifconfig.

Ko sem se srečal z botom, sem poskušal dodati svoj ukaz, na primer preveriti Apache:

# status httpd storitve

Toda le s pomočjo konfiguracije te datoteke ni delovalo. Kolikor razumem, tukaj lahko izvršite samo ukaz, opisan z eno besedo ali znaki. Težavo sem rešil z ustvarjanjem datoteke apache_status.sh z vsebino:

#! / bin / bash
status httpd storitve

In ustvaril na njej simbolno povezavo:

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

Zdaj pri klicanju ukaza apachestatus, Dobivam status spletnega strežnika apache:

V datoteki bot.py Vse tri bloke sem napolnil, glede na druge funkcije. Če želite bot delati, morate zagnati datoteko bot.sh. Za udobje bomo ustvarili ločeno storitev za bota Telegram. Ustvarimo potrebno datoteko in nastavimo pravice:

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

Nato pojdemo na storitveno datoteko:

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

In dodajte vsebino:

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

Zdaj dodajte storitev za samodejno nalaganje in zagon:

# systemctl zaženite telegram-bot.service
# systemctl omogoči telegram-bot.service
# systemctl status telegram-bot.service

Zdaj, če klepetate s svojim botrom, vnesite / pomoč, dobili boste seznam razpoložljivih ukazov.

Na primer, ko se spletni strežnik ustavi na mojem strežniku Apač:

Zaženite ga na strežniku in preverite stanje prek Telegrama:

Še nekaj primerov izvajanja ukazov:

Tako lahko nadzirate vaš Linux strežnik ali celo delno administracijo prek Telegram, kar bo pomagalo močno skrajšati čas, potreben za izvedbo tipičnih dejanj.

Prav tako želim opozoriti, da se pooblastilo strežnika z botom zgodi ravno s strani ID in žeton (API) (katera koli druga oseba, ki ne pozna vaših podatkov, se ne bo mogla povezati).

Ob objavi je bil testni bot odstranjen.