支持节点管理和监控的ServerStatus,它来了

介绍

项目地址:https://github.com/lidalao/ServerStatus
项目基于cppla版本ServerStatus, 增加如下功能:

  • 更方便的节点管理, 支持增删改查
  • 上下线通知(telegram)
  • Agent机器安装脚本改为systemd, 支持开机自启

安装

服务端复制以下命令,一键到底。请记得替换成你自己的YOUR_TG_CHAT_ID和YOUR_G_BOT_TOKEN。

其中,Bot token可以通过@BotFather创建机器人获取, Chat id可以通过@getuserID获取。

mkdir sss && cd sss && wget --no-check-certificate https://raw.githubusercontent.com/lidalao/ServerStatus/master/sss.sh && chmod +x ./sss.sh && sudo ./sss.sh YOUR_TG_CHAT_ID YOUR_TG_BOT_TOKEN

安装成功后,web服务地址:http://ip:8081

通过sss.sh脚本,可以很方便的进行节点的增删改查操作。特别的,添加新节点时,会有提示如何在新节点安装对应的agent服务。如果你想了解更多,可以看看进阶部分,不看也足够用。

进阶

由于没改动ServerStatus代码,理论上,任何版本的ServerStatus都可以用_sss.py来做管理, 都可以用bot.py来进行上下监控。

节点管理时,把_sss.py放到和config.json同一目录,运行python3 _sss.py即可。唯一需要改动的就是restartSSS函数,此函数功能是重启ServerStatus服务,改成你对应的服务启动方式,例如用systemd,则把["docker-compose", "restart"]改成["systemctl", "restart", "ServerStatus"]

接下来是上下线监控服务,同样适用于任何版本的ServerStatus。 它只有一个文件bot.py, 可以跑在任何机器上,不是必须在服务端,丢在家里nas上也成。

bot.py里面有三个配置信息,bot_token, cat_idNODE_STATUS_URL, 改成你自己的对应信息,NODE_STATUS_URL需要改成你自己的探针web服务地址,例如,域名探针https://tz.test.com, 则改为https://tz.test.com/json/stats.json。配置修改完后,运行python3 bot.py即可开始监控

  1. 淘气说道:

    Chat id是不是就是回复的那个一串数字

    1. lidalao说道:

      是的。

  2. 177998说道:

    国内的服务器连不上github的仓库 :cry:

    1. lidalao说道:

      简单方法就先本地下载下来,然后再scp上去

  3. hutrw说道:

    想请教下,为什么我这里《TCP/UDP/进/线: 0 / 0 / 0 / 0》这行的数值不变,一直是0
    (っ °Д °;)っ

      1. hutrw说道:

        我在服务端删除了return 0,0,0,0后,重启了服务器还是不显示>﹏<
        如图:https://i.postimg.cc/63dwfqWG/QQ-20211211142827.png

        1. lidalao说道:

          哦,这是需要在客户端改的。
          具体位置在,/opt/sss/agent/client-linux.py
          改完后,重启服务: systemctl restart sss-agent

          1. hutrw说道:

            客户端修改好后就可以了,感谢\^o^/

  4. TxT说道:

    想请教一下,上下线通知要如何使用?YOUR_TG_CHAT_ID和YOUR_G_BOT_TOKEN已经替换成我自己的了

    1. TxT说道:

      我没有域名,想问下这个NODE_STATUS_URL我应该改成什么

      1. lidalao说道:

        ip+端口的形式
        http://ip:port/json/stats.json

  5. kkkk说道:

    NODE_STATUS_URL = 'https://XXXXXXX/stats.json'
    chat_id = os.getenv('XXXXXXXXXX')
    bot_token = os.environ.get('XXXXXXXXXXXXXXXXXXXXX')

    想问一下在nas里运行bot.py,已经如上修改了chatid和token还有url三个参数 python3运行的时候报以下内容错误

    python3 bot.py

    File "bot.py", line 22
    url = f"https://api.telegram.org/bot{bot_token}/sendMessage?parse_mode=HTML&disable_web_page_preview=true&chat_id=" + chat_id + "&text=" + text
    ^
    SyntaxError: invalid syntax

    1. kkkk说道:

      刚刚复制错了 应该是'https://xxxxxxxx/json/stats.json' 但是还是报错python3 bot.py

      File "bot.py", line 22
      url = f"https://api.telegram.org/bot{bot_token}/sendMessage?parse_mode=HTML&disable_web_page_preview=true&chat_id=" + chat_id + "&text=" + text
      ^
      SyntaxError: invalid syntax

      1. lidalao说道:

        python对空格有要求,
        你可以把你代码用code字段包一下发上来

  6. 学习说道:

    服务器端安装完一键脚本,客户端也装了生成的脚步。网页小鸡状态都是关闭,这是啥原因呢?

    1. EVO说道:

      我也是这样。。。。

  7. ad2说道:

    机器人id APi填上了 但是 上下线没有通知 TG那边还要设置 么

    1. ad2说道:

      File "bot.py", line 73, in
      sscmd(NODE_STATUS_URL)
      File "bot.py", line 65, in sscmd
      send2tg(i["name"], 0)
      File "bot.py", line 53, in send2tg
      _send(text)
      File "bot.py", line 22, in _send
      url = f"https://api.telegram.org/bot{bot_token}/sendMessage?parse_mode=HTML&disable_web_page_preview=true&chat_id=" + chat_id + "&text=" + text
      TypeError: can only concatenate str (not "NoneType") to str

  8. EVO说道:

    请问我安装完以后,为啥所有数据都不动

  9. 哈哈哈说道:

    只有ipv6的机器貌似监控不了

  10. dean说道:

    强迫症想把中间的“ServerStatus中文版”去掉。。

    1. dean说道:

      首行的emoji也想删掉 :lol:

      1. dean说道:

        tgbot似乎的确有点灵敏。。

发表评论

邮箱地址不会被公开。 必填项已用*标注