作者更新了源码,有些地方需要稍微修改下
前言
现在开源的探针项目多如牛毛,其中ServerStatus应该算是鼻祖了,今天我们来看下如何使用docker-compose搭建ServerStatus中文版并开启电报通知。
目前各种探针项目越来越多,要求的依赖也越来越多,对硬件资源的要求也是越来越多,很多项目都已经开始要依赖MySQL、Redis了,不过很多项目确实也功能很多,可以绘图、显示丢包延迟曲线,自然要依赖也多,小白是穷逼,强行玩鸡,留下了贫穷的泪水,哈哈。说下我对探针的要求:
1.能跑起来(废话)
2.可以显示到国内节点的延迟丢包(绘图我就不需要了,太高级了)
3.不需要依赖数据库(主要是我不会搞数据库……)
4.可以电报推送
好废话不多说,今天我们具体来看下如何使用docker-compose搭建ServerStatus中文版并开启电报通知。
项目地址:https://github.com/cppla/ServerStatus
大佬直接看文档就行了,这里是小白教程。
服务端搭建
系统版本也Debian YYDS,其他系统请自行使用相应命令,大差不差。本教程所有操作均在/root目录下进行。
准备工作
由于我们采用docker-compose安装的,所以我门需要提前安装好docker和docker-compose,还需要从github拉去源码,所以git命令也需要安装好。
#安装git apt update -y && apt install git -y #安装docker wget -qO- https://get.docker.com/ | sh #安装docker-compose curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose #拉取源码 git clone https://github.com/cppla/ServerStatus.git
创建电报机器人
私信Botfather,创建一个新机器人,自己输入一个名字和用户名。
记录下API密钥,待会会用到
私信机器人获取chat_id,记录下来,待会会用到
所有的前期准备我们就完成了。
修改服务端配置文件
#进入源码目录 cd ServerStatus/ #修改docker-compose-telegram.yml文件,我们需要修改的有如下几处: #端口可以自定义 ports: - 35601:35601 - 8080:80 #进入服务端目录 cd server/ #修改config.json文件,其中watchdog部分为推送设置 { "servers": [ { "username": "s01", "name": "node1", "type": "xen", "host": "host1", "location": "??", "password": "USER_DEFAULT_PASSWORD", "monthstart": 1 }, { "username": "s02", "name": "node2", "type": "vmware", "host": "host2", "location": "??", "password": "USER_DEFAULT_PASSWORD", "monthstart": 1 } ], "watchdog": [ { "name": "cpu high warning", "rule": "cpu>90&load_1>3", "interval": 600, "callback": "https://yourSMSurl" }, { "name": "memory high warning", "rule": "(memory_used/memory_total)*100>90", "interval": 300, "callback": "https://yourSMSurl" }, { "name": "offline warning", "rule": "online4=0&online6=0", "interval": 600, "callback": "https://yourSMSurl" }, { "name": "you can parse an expression combining any known field", "rule": "load_5>3", "interval": 900, "callback": "https://yourSMSurl" } ] }
watchdog的写法如下:
watchdog rule 可以为任何已知字段的表达式。 watchdog interval 最小通知间隔。 watchdog callback 可自定义为Post方法的URL,告警内容将拼接其后并发起回调。 watchdog callback Telegram:https://api.telegram.org/bot你自己的密钥/sendMessage?parse_mode=HTML&disable_web_page_preview=true&chat_id=你自己的标识&text= watchdog callback Server酱: https://sctapi.ftqq.com/你自己的密钥.send?title=ServerStatus&desp= watchdog callback PushDeer: https://api2.pushdeer.com/message/push?pushkey=你自己的密钥&text=
启动镜像
docker-compose up -d
现在我们就可以通过IP:8080来访问探针了。
客户端搭建
为了简单起见,我们直接使用作者大大提供的一键脚本搭建客户端:
wget https://raw.githubusercontent.com/cppla/ServerStatus/master/status.sh -O status.sh && bash status.sh
这里我们需要依据刚刚的config.json里的信息依次填入:IP/域名[server]、端口、账号[username]、密码[password]。好到现在为止,完整的搭建就完成了。
电报推送情况
我们可以看到,电报推送情况也是正常的
建议只保留offline推送,不然频繁推送也挺烦人
反代
最后,如果需要域名的访问的话,可以用nginx反代一下,大佬都是直接写nginx配置文件、咱小白就老老实实用宝塔就行了。