ServerStatus 服务器监控的搭建与维护

项目地址:https://github.com/lidalao/ServerStatus

项目基于cppla版本ServerStatus,增加如下功能:

  • 更方便的节点管理, 支持增删改查

  • 上下线通知(telegram)

  • Agent机器安装脚本改为systemd, 支持开机自启

创建机器人

我们选择Docker一键脚本搭建,在这之前我们需要去tg获取下Bot tokenChat id

Bot token 我们利用TG机器人**@BotFather** 获取

https://p.qlogo.cn/qqmail_head/icyLqRrzqET7E8XpF6cTLSUEF5crmT1mQvq7RGz7HEh8IPyOwiaORedOLKv8HQ5r4I/0

Chat id 我们利用TG机器人 @getuserID 获取;

但是有个缺点,不能实时获取到,等几个小时以后才会发给你,并且是入了魔的发, 一小时几千条

(别问我为什么知道)

我推荐第二种方法获取

1
https://api.telegram.org/bot{token}/getUpdates

将你刚刚获取到的token 输入到指定位置,在浏览器中打开,你应该得到一个没啥关键内容的页面

此时,你再打开你的TG,搜索你刚刚创建的TG机器人,随便发一个信息给他

然后刚刚的网页就更新看数据,你可以看到一个Chat id 那就是你所需要的.

创建Docker 镜像目录

1
mkdir -p ~/docker/sss
1
cd ~/docker/sss

将我们获取到的Bot tokenChat id 带入到脚本并执行

1
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://127.0.0.1:8081

启动失败

如果安装完成 ./sss.sh 报错,应该是缺少UTF8编码

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP0Z22zwuQSGzWNia6IpXxFLlZgZQfM9QgAM/0

  • 解决办法1: 修改/docker/sss/_sss.py 文件编码为latin-1

  • 解决办法2: 尝试安装UTF8编码

SSH 执行 locale 查看vps编码是否有 LANG=“en_US.UTF-8”

如果没有,修改并添加

1
vi /etc/default/locale

LANG=“en_US” 改为 LANG=“en_US.UTF-8” 保存并重启服务器

挂载Web目录

如果你有修改web页面的需求,就跟着走,没有需求就跳过

来到镜像目录下

1
cd ~/docker/sss
1
vi docker-compose.yml

添加#web目录代码,挂载目录到"本地"

1
2
3
      - ./config.json:/ServerStatus/server/config.json
      - ./html:/usr/share/nginx/html/   #web目录
      - ./json:/usr/share/nginx/html/json

然后按esc 输入:wq 回车

重新部署

确保在docker-compose.yml目录下执行停止指令

1
docker-compose down

再执行部署

1
docker-compose up -d

此时/docker/sss 目录下出现挂载文件夹 html

Wbe源码在cppla的项目里下载,上传进html文件夹,便可自由DIY

源码地址: https://github.com/cppla/ServerStatus/tree/master/web

由于github不允许下载单个文件夹,又不想打包整个项目,可以使用解析工具,下载指定文件夹

DownGit : https://downgit.github.io

节点排序

脚本添加节点,可能不能按自己的需求排序,如果有这方面需求可以这样操作

编辑镜像目录/docker/sss下的 config.json 文件

{“servers”: [ //起始

{“monthstart”: “1”, “location”: “JP”, “type”: “kvm”, “name”: “斯巴达-48”, “username”: “3481d052b70e47ffffd2072a68b71”, “host”: “斯巴达-48”, “password”: “M5gCcvfdFG8z”}, //段落

]} // 结尾

根据需求从上而下移动你的节点排序即可

然后在SSH重启docker镜像,首先查询镜像ID

1
docker ps -a

重启镜像

1
docker restart ID

重启完成之后,web页面的排序就按你的期望在排序

反向代理

在我们搭建完成之后不希望加端口号8081来访问,那么就需要做反向代理

如果你是裸机可以安装 Nginx Proxy Manager

官网地址: https://nginxproxymanager.com

同样我们建立一个镜像目录

1
mkdir -p ~/docker/npm
1
cd ~/docker/npm

新建一个Docker-compose.yml文件,粘贴以下内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

确保在 /docker/npm 目录下,执行

1
docker-compose up -d

初始用户名/密码

1
2
3
WebUI :http://127.0.0.1:81
Email:    admin@example.com
Password: changeme

宝塔环境

如果你已经有nginx环境,比如宝塔下设置

新建一个域名,并完成解析,申请SSL,强制HTTPS,然后在配置文件中,添加以下代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 location / {
  proxy_pass http://127.0.0.1:8081/;
  rewrite ^/(.*)$ /$1 break;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade-Insecure-Requests 1;
  proxy_set_header X-Forwarded-Proto https;
}

https://p.qlogo.cn/qqmail_head/Q3auHgzwzM5UeOMwLxibgkRwd5OtQ6GiaxnwAQBoRqaP0HLtFjNvkmicTz2ib2SXgHD29w9cR8Kfgvo/0

然后使用域名不加端口访问 server.xidcn.com

希望大家早日搭建自己的探针,以针会友

Hunter 支付宝支付宝
Hunter 微信微信
0%