Telegram bot za nadgledanje poslužitelja Linuxa, obavijesti, upravljanje

U ovom ćemo članku pogledati primjer korištenja telegram bot na poslužitelju s Linux CentOS-om, pokazati kako konfigurirati jednostavne obavijesti u chat botu za praćenje vašeg poslužitelja, kao i nekoliko kontrolnih naredbi.

U doba mobilnih gadgeta postalo je važno koristiti razne glasnike ne samo za komunikaciju s stvarnim ljudima, već i upotrebu raznih botova. Na primjer, u telegram Za robota postoji bogata funkcionalnost, koja se može koristiti u razne svrhe - klijentu dati informacije o narudžbi, informacije o paketu od operatora pošte i, na primjer, nadzor vlastitog poslužitelja.

sadržaj:

  • Izrada robota za chat u Telegramu
  • Slanje obavijesti u Telegram chat s poslužitelja
  • Linux upravljanje poslužiteljem u Chatrougu Telegram

Izrada robota za chat u Telegramu

Za izradu chat bota u sustavu telegram rabljeni bot @BotFather. Da biste stvorili svog robota, morate pronaći @BotFather u svom Telegramu i idite razgovarati s njim:

tisak START. Da biste stvorili novi bot, odaberite u izborniku / novak, upišite naziv robota u formatu "name_bot" .Nakon kreiranja robota, dobit ćete API bot token, koji će biti potreban u daljnjoj konfiguraciji.

Sada morate saznati user_id - Ovo je ID sata s robota na kojem će slati obavijesti. Idite s njim u svoj chat i pritisnite start i pošaljite bilo koji znak. Nakon toga u pregledniku idite na:

https://api.telegram.org/bot/getUpdates - gdje je API koja je izdala BotFather.

Vaš ID je označen na snimci zaslona.

Dakle, stvorili smo bot u Telegramu i dobili smo podatke o autorizaciji.

Slanje obavijesti u Telegram chat s poslužitelja

Koristeći prethodno stvoreni bot i primljene ID-ove, možete slati obavijesti Telegram chatu s poslužitelja i na taj način primati sve podatke ili upozorenja koja nas zanimaju.

Da biste poslali poruku u chat, morate koristiti sljedeći URL:

https://api.telegram.org/bot/sendMessage?chat_id=&text=
gdje je:
- ovo je API koji je izdao @BotFather
- ovo je ID vašeg razgovora s botom.

Na primjer:

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

Zašto mogu koristiti takve obavijesti Telegrama? Na primjer, prilikom izrade sigurnosne kopije možete slati obavijesti o njenom stvaranju ili poslati vezu za preuzimanje kopije da biste razgovarali s robotom. Možete sami sebi slati obavijesti s informacijama o padu sustava u Telegramu. Na krune je moguće dodati bilo kakve čekove, a zatim ih poslati Telegramu.

Još jedan primjer upotrebe takvih obavijesti:

# curl -s -X POST https://api.telegram.org/bot944496485:AAEtGaGCVrQ7d26Rc3r_cqXPIhrKVokh8e4/sendMessage -d chat_id = 336116180 -d tekst = "Korisnik $ (whoami) prijavljen u $ (ime domaćina) na $ (ime hosta) na (odjek $ SSH_CLIENT | awk 'print $ 1') "&> / dev / null 2> & 1

Dodajte taj kôd u / itd. / profil i dobit ćete obavijesti u telegram svaki put kada korisnik uđe na poslužitelj:

Želim vas podsjetiti da u svim timovima morate navesti točno svoje token (API) i ID razgovarati.

Linux upravljanje poslužiteljem u Chatrougu Telegram

Postoji skup skripti koji vam omogućuje kontrolu Linux poslužitelja iz Telegram chata, slanje različitih naredbi za razgovor s botom. Da biste to učinili, instalirajte Python, niz alata i prenesite skripte na poslužitelj.

# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
# yum instalirajte xz -y
# tar -xpJf Python-3.6.0.tar.xz
# cd Python-3.6.0
# yum groupinstalirajte "razvojne alate" -y
# yum instalirajte zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel -y
# ./konfiguriranje
# make
# napravi instalaciju

Napravite simbol za Python:

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

I instalirajte softver za samog robota:

# pip3 instalirajte python-telegram-bot - nadogradnju

Sada preuzmite i raspakujte svoj direktorij poslužitelja root / admin tri datoteke iz arhive telegram_bot.zip:

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

Razmotrite datoteku config.py. U njemu trebamo navesti token (API) i ID vaš chat s botom, kao i put do direktorija s sigurnosnim kopijama i direktorija, čija ćete veličina dodatno provjeriti:

datoteka bot.sh ne zahtijeva konfiguraciju, u njemu samo naznačujemo put do bot.py:

A najosnovnija datoteka koja nam zapravo omogućuje upravljanje poslužiteljem je bot.py. U njemu su opisane funkcije koje će biti dostupne u chatu s botom i zapravo tamo možemo dodati vlastitu funkcionalnost. Na primjer, prvi blok opisuje dostupne naredbe bot u chatu:

U njemu su opisane sve funkcije koje će biti dostupne nakon unosa naredbe / pomoć.

Na primjer, sama funkcija opisana je u nastavku,

# ifconfig naredbena funkcija def ifconconf (bot, ažuriranje): ponovno učitavanje (config) korisnik = str (update.message.from_user.id) ako je korisnik config.admin: # ako je korisnički ID na popisu administratora, naredba je run_command ("ifconfig" ) bot.sendMessage (chat_id = update.message.chat_id, text = textoutput)

A ovu funkciju treba opisati kao naredbu:

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

To je, kao što vidimo, ovo je izvršavanje standardne funkcije provjere mrežnih postavki ifconfig.

Prilikom susreta s robotom pokušao sam dodati vlastitu naredbu, na primjer, da provjerim Apache:

# status usluge httpd

Ali samo kroz konfiguraciju ove datoteke nije uspjelo. Koliko razumijem, ovdje možete izvršiti samo naredbu opisanu u jednoj riječi ili znakovima. Problem sam riješio stvaranjem datoteke apache_status.sh sa sadržajem:

#! / bin / bash
status httpd usluge

I stvorio je poveznicu na sebi:

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

Sad kad zovete naredbu apachestatus, Dobivam status web poslužitelja apaš:

U datoteci bot.py Sva tri bloka ispunio sam, prema drugim funkcijama. Da bi bot mogao raditi, trebate pokrenuti datoteku bot.sh. Radi praktičnosti stvorit ćemo zasebnu uslugu za robota Telegram. Stvaramo potrebnu datoteku i postavljamo prava:

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

Zatim idemo na servisnu datoteku:

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

I dodajte sadržaj:

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

Sada dodajte uslugu za automatsko učitavanje i pokretanje:

# systemctl start telegram-bot.service
# systemctl omogućuju telegram-bot.service
# systemctl status telegram-bot.service

Ako sada razgovarate sa svojim botom, uđite / pomoć, dobit ćete popis dostupnih naredbi.

Na primjer, u trenutku kada je web poslužitelj zaustavljen na mom poslužitelju apaš:

Pokrenite ga na poslužitelju i provjerite status putem Telegrama:

Još nekoliko primjera izvršenja naredbi:

Dakle, možete nadzirati vaš Linux poslužitelj ili čak djelomičnu administraciju putem telegram, što će uvelike smanjiti vrijeme potrebno za izvođenje tipičnih radnji.

Također bih htio napomenuti da se autorizacija poslužitelja s robotom događa upravo putem ID i token (API) (bilo koja druga osoba, koja ne zna vaše podatke, neće se moći povezati).

U trenutku objave testni je bot uklonjen.