Skip to content

Telegram bot which provides the server statistics and monitoring feature to notify you of the critical events. In development! Please feel free to contribute!:)

Notifications You must be signed in to change notification settings

shashlikxp/ServerStatsBot

 
 

Repository files navigation

Server Manager Bot

A Telegram Bot:

  • Commands
    • /stats - gives summed statistics about memory \ disk \ processes (will improve)
    • /shell - goes into the mode of executing shell commands & sends you the output
    • /memgraph - plots a graph of memory usage for a past period and sends you a picture of the graph
    • /setmem - set memory threshold (%) to monitor and notify if memory usage goes above it
    • /setpoll - set polling interval in seconds (higher than 10)
  • Monitors memory usage and if it reaches above the set threshold = sends you warning message

Example summary: Gif

Bot

Example shell command output as a message from the bot:

Shell

Example graph sent by bot: Gif

Graph

Usage

Requirements

  • Python 3+
  • Telepot
  • Psutil
    • Make sure to install it for Python 3+
    • In order to make sure that pip installs packages for the 3+ version:
      • curl -O https://bootstrap.pypa.io/get-pip.py
      • sudo python3 get-pip.py
      • After that pip install psutil
      • Also Stackoverflow question about that here
  • matplotlib
    • sudo apt-get install python3-matplotlib
  • Bot key & tokens.py
    • Hide all the keys and admin variables in tokens.py. Use it only for sensitive variables. Avoid creating functions not to clutter the namespaces through the import.
    • Get a key from the Bot Father
    • Clone that repo
    • In the folder with the cloned repo create a file tokens.py
      • It's added to the .gitignore so you don't commit your own (and I don't commit mine:)
    • In that file put a string variable telegrambot which equals your key
      • For example: telegrambot = "000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

Running the bot

python3 servstatsbot.py

Running the bot as SystemD daemon

  • Fix included file in the repo: serverstatsbot.service
  • Place that file in /lib/systemd/system/
  • Reload SystemD daemon service: sudo systemctl daemon-reload
    • Enable autostart after reboot sudo systemctl enable serverstatsbot.service
    • Start Service sudo systemctl start serverstatsbot.service
    • See status Service sudo systemctl status serverstatsbot.service

Setting an admin

You have to set a variable adminchatid in tokens.py to be equal your chat_id or multiple chat_id (if more people will use your bot). For example:

  • adminchatid = [443355]
  • adminchatid = [443355, 55667788, 99884433]

I will reimplement this differently later.

PLEASE CONTRIBUTE :)

I threw this code together within 10 minutes or so as a mockup to work on it later. But I think it's a nice bot idea and some of you guys might like this too. So please feel free to fork, pull, requests features! Can give contributors access! Would really love to see this bot grow some fat and brain:)

Other bot development

Alfred

http://alfredthebot.com

GB

About

Telegram bot which provides the server statistics and monitoring feature to notify you of the critical events. In development! Please feel free to contribute!:)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%