Debian11安装WgCloud主机监控系统

最近忙着把之前测试的WgCloud监控平台从测试服务器迁移安装到新服务器上,在安装迁移的过程中,遇到了些许波折,也踩了不少坑,但同时也学到了不少知识,遂记录下来。

准备工作

WgCloud是一个纯绿色版本,非侵入式,是完全自主私有化部署的监控平台,解压即可运行,它不依赖外网,局域网、内网也可以部署。因Server服务使用Java开发,需要JDK环境,JDK1.8或者OpenJDK都允许;同时,Server端还需要数据库来存贮数据,它支持MySQL、MariaDB、PostgreSQL、Oracle这四种数据库作为数据源。本次演示采用的是JDK1.8和MySQL5.7。

下载安装JDK1.8并配置环境变量

  • 下载Linux版本JDK1.8,下载地址,并上传至Linux指定目录,本次演示所有下载文件均放在Linux系统的/home/ 目录下。
  • 解压文件至指定目录
  1. [root@wgcloud ~]# mkdir /usr/java
  2. [root@wgcloud ~]# tar -zxvf jdk-8u152-linux-x64.tar.gz -C /usr/java/
  • 配置环境变量
  1. [root@wgcloud ~]# vi /etc/profile

将如下配置添加到文件/etc/profile最后面,然后保存退出:

  1. # 添加 java环境变量
  2. export JAVA_HOME=/usr/java/jdk1.8.0_152
  3. export PATH=$JAVA_HOME/bin:$PATH
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

刷新一下:

  1. [root@wgcloud ~]# source /etc/profile

查看java版本,检测是否安装成功:

  1. [root@wgcloud ~]# java -version
  2. java version "1.8.0_152"
  3. Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

安装MySQL5.7、修改相关配置、添加用户及权限并创建数据库

  • 下载安装程序至/home/
  1. [root@wgcloud ~]# cd /home/
  2. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.39-1debian10_amd64.deb-bundle.tar
  • 程序解压
  1. [root@wgcloud ~]# tar -xvf mysql-server_5.7.39-1debian10_amd64.deb-bundle.tar
  • 依次依赖程序
  1. [root@wgcloud ~]# apt install psmisc libaio1 libnuma1 libatomic1 libmecab2
  • 安装MySQL程序(需要按照顺序依次安装)
  1. [root@wgcloud ~]# dpkg -i mysql-common_5.7.39-1debian10_amd64.deb
  2. [root@wgcloud ~]# dpkg -i mysql-community-client_5.7.39-1debian10_amd64.deb
  3. [root@wgcloud ~]# dpkg -i mysql-client_5.7.39-1debian10_amd64.deb
  4. [root@wgcloud ~]# dpkg -i mysql-community-server_5.7.39-1debian10_amd64.deb
  5. # 期间会提示输入密码, 并确认密码
  6. [root@wgcloud ~]# dpkg -i mysql-server_5.7.39-1debian10_amd64.deb
  • 修改相关配置
  1. # 1.允许远程访问, 修改bind-address的值为0.0.0.0

  2. # 2.配置数据库默认字符集,新增参数character-set-server=utf8

  3. [root@wgcloud ~]# vim /etc/mysql/mysql.conf.d/mysqld.cnf

  4. bind-address = 0.0.0.0 # 为了安全,此处未修改,因为数据库只授权给localhost即可。

  5. character-set-server=utf8

  6. # 配置客户端默认字符集,新增参数default-character-set=utf8

  7. [root@wgcloud ~]# vim /etc/mysql/conf.d/mysql.cnf

  8. default-character-set=utf8

  9. # 执行赋权语句并刷新生效,在进入mysql环境后执行

  10. [root@wgcloud ~]# mysql -uroot -p #输入MySQL密码后执行下面语句

  11. mysql>

  12. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

  13. FLUSH PRIVILEGES;

  14. mysql>

  15. show variables like '%character%'; # 查看字符集

  16. mysql> exit;

  • 创建数据库wgcloud,在进入mysql环境后执行
  1. [root@wgcloud ~]# mysql -uroot -p #输入MySQL密码后执行下面语句
  2. mysql> CREATE DATABASE wgcloud DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 创建数据库用户并授权访问wgcloud数据库(示例:用户名wg,密码wg&cloud#10086)
  1. mysql> create user 'wg'@'localhost' identified by 'wg&cloud#10086'; # 创建数据库
  2. mysql> grant all privileges on 'wgcloud'.* to 'wg'@'localhost' identified by 'wg&cloud#10086'; # 授予用户wg通过本机对于数据库“wgcloud”的全部权限
  3. mysql> flush privileges; # 刷新权限
  4. mysql> exit; # 先退出MySQL

下载安装wgcloud,解压并导入数据库

  • 下载
  1. [root@wgcloud ~]# cd /home/
  2. [root@wgcloud ~]# wget https://www.wgstart.com/download/3.4.2/wgcloud-v3.4.2.tar.gz # 下载
  3. [root@wgcloud ~]# tar -xvf wgcloud-v3.4.2.tar.gz -C /home # 解压
  4. [root@wgcloud ~]# mv wgcloud-v3.4.2 wgcloud # 修改文件夹名
  5. [root@wgcloud ~]# mysql -uwg -p # 注意此处直接用wg用户登录即可,输入wg密码后执行下面语句
  6. mysql> use wgcloud;
  7. mysql> source /home/wgcloud/wgcloud-MySQL_v3.4.2.sql;
  8. mysql> exit;
  • 修改server的mysql连接信息/home/wgcloud/server/config/application.yml
  1. [root@wgcloud ~]# vi /home/wgcloud/server/config/application.yml

此处,暂时只需要修改数据库连接信息即可,其他请参考官网说明,server配置文件说明

  1.  `username: wg`
    
  2.  `password: wg&cloud#10086`
    
  • 启动服务和访问
    server启动前,请查看/home/wgcloud/server/start.sh和/home/wgcloud/server/wgcloud-daemon-release是否有执行权限,不会检查的,可直接终端执行下面几条语句:
  1. [root@wgcloud ~]# chmod +x /home/wgcloud/server/start.sh
  2. [root@wgcloud ~]# chmod +x /home/wgcloud/server/stop.sh
  3. [root@wgcloud ~]# chmod +x /home/wgcloud/server/wgcloud-daemon-release
  4. [root@wgcloud ~]# chmod +x /home/wgcloud/agent/start.sh
  5. [root@wgcloud ~]# chmod +x /home/wgcloud/agent/stop.sh
  6. [root@wgcloud ~]# chmod +x /home/wgcloud/agent/wgcloud-agent-release

然后启动Server服务和agent服务

  1. [root@wgcloud ~]# bash /home/wgcloud/server/start.sh
  2. [root@wgcloud ~]# bash /home/wgcloud/agent/start.sh

启动完成后,浏览器输入http://192.168.10.1:9999/wgcloud登录系统,将URL中的信息改为自己的server主机IP和web端口,默认登陆账号/密码:admin/111111。这样就部署完成了,如果其他主机需要监控,只需要单独部署agent就行了。具体教程看wgcloud文档

监控主机单独安装agent

请参考官网说明,注意Linux及win版本的不同,Win建议注册成服务,并开机自启动。

建议

  • 管理员登陆账号/密码,默认为:admin/111111,可在server/config/daemon.properties修改,建议修改;
  • wgToken为server和agent通信密钥,server和agent配置文件中的wgToken值要保持一致,默认为wgcloud,可在server/config/daemon.properties修改,建议修改;
  • 9999为server的web访问端口,可以修改,不能和守护进程wgcloud-daemon-release的端口相同,守护进程端口默认9997,均可在server/config/daemon.properties修改,同时访问时也用修改后的端口,默认即可;
  • 如果要使用web ssh功能,web ssh默认端口为9998,那么server所在主机的9998端口要开放,不要让防火墙拦截。web ssh开关、端口都在配置文件修改,默认即可

Sever设置开机自启动

方法一(适用CentOS)

在低版本的debian系linux系统中,增加开机自启脚本比较简单,直接修改/etc/rc.local文件,在exit 0之前增加需要运行的脚本即可。但是现在在高版本的linux中默认没有开启该功能,接下来我们通过设置来开启该功能。

  • 首先修改rc-local.service文件
  1. [root@wgcloud ~]# vi /lib/systemd/system/rc-local.service

在文件末尾添加以下信息即可:

  1. [Install]
  2. WantedBy=multi-user.target

保存退出,然后新建/etc/rc.local文件

  1. [root@wgcloud ~]# vi /etc/rc.local

并写入以下信息

  1. #!/bin/sh -e

  2. # 在这里输入需要自启的脚本

  3. bash /home/wgcloud/server/start.sh

  4. bash /home/wgcloud/agent/start.sh

  5. exit 0

保存退出,并赋予该文件可执行权限:

  1. [root@wgcloud ~]# chmod +x /etc/rc.local

启动该服务:

  1. [root@wgcloud ~]# systemctl enable rc-local # 启用
  2. [root@wgcloud ~]# systemctl start rc-local.service # 开始运行
  3. [root@wgcloud ~]# systemctl status rc-local.service # 查看状态

重启机器,看看server服务和agent服务是不是启动了,在终端输入命令看看哪些端口开放了

  1. [root@wgcloud ~]# netstat -tunlp

如果完全按照我推荐的来,可能发现只有9997端口启动了,端口9998和9999并没有启动。这是因为server端要启动必须要有Java环境,而rc.local是先于/etc/profile启动的,所以导致start.sh启动时找不到Java,因为 Java还没启动起来,怎么办呢?请修改/etc/rc.local:

  1. [root@wgcloud ~]# vi /etc/rc.local

在脚本前加入下面信息:

  1. #!/bin/sh -e

  2. # 在这里输入需要自启的脚本

  3. . /etc/profile

  4. bash /home/wgcloud/server/start.sh

  5. bash /home/wgcloud/agent/start.sh

  6. exit 0

保存退出,再次重启服务器即可。

方法二(适用Debian)

  1. 创建开机启动的服务单元文件
vi /etc/systemd/system/wgcloud.service
  1. 在文件中输入下面的内容
[Unit]
Description=WgCloud Agent Service
After=network.target

[Service]
Type=forking
ExecStart=/bin/bash /home/wgcloud_agent/start.sh
ExecReload=/bin/bash /home/wgcloud_agent/start.sh && /bin/bash /home/wgcloud_agent/stop.sh
ExecStop=/bin/bash /home/wgcloud_agent/stop.sh
PrivateTmp=true
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  1. 激活你的systemd服务单元
systemctl daemon-reload
  1. 启用设置好的服务
systemctl enable wgcloud.service
  1. 测试是否设置成功
systemctl is-enabled wgcloud.service

返回enabled即为已经成功设置。服务端可以添加一个相似的服务。

Nginx配置访问WgCloud页面URL地址不加后缀/wgcloud

  • 安装Nginx最新版本
    Debian11 默认源安装的是Nginx1.18,该版本无法使用Nginx某些新的功能,我们修改源来安装最新版本
    1. 添加源:(bullseye为debian 11的发行版本代号,根据实际情况修改)
  1. [root@wgcloud ~]# echo deb http://nginx.org/packages/debian/ bullseye nginx | tee /etc/apt/sources.list.d/nginx.list

  2. [root@wgcloud ~]# apt install gnupg2 -y

  3. [root@wgcloud ~]# cd /home

  4. [root@wgcloud ~]# wget http://nginx.org/keys/nginx_signing.key

  5. [root@wgcloud ~]# apt-key add nginx_signing.key

  6. 安装

  7. [root@wgcloud ~]# apt update

  8. [root@wgcloud ~]# apt install nginx -y

  9. 检验安装结果

  10. [root@wgcloud ~]# service nginx start

  11. [root@wgcloud ~]# nginx -v

  • 备份nginx.conf,并新建nginx.conf.wg并覆盖原文件
    1. 备份原配置文件
  1. `[root@wgcloud ~]# cp /etc/nginx/nginx.conf /etc/nginx.conf.bak`
    
  2. 新建nginx.conf.wg

  3. `[root@wgcloud ~]# vi /etc/nginx/nginx.conf.wg`
    

贴入以下内容

  1. user www-data root;

  2. worker_processes auto;

  3. pid /run/nginx.pid;

  4. include /etc/nginx/modules-enabled/*.conf;

  5. events {

  6.  `worker_connections 1024;`
    
  7.  `multi_accept on;` 
    
  8.  `use epoll;`
    
  9. }

  10. http {

  11.  `sendfile on;`
    
  12.  `tcp_nopush on;`
    
  13.  `tcp_nodelay on;`
    
  14.  `keepalive_timeout 65;`
    
  15.  `types_hash_max_size 2048;`
    
  16.  `include /etc/nginx/mime.types;`
    
  17.  `default_type application/octet-stream;`
    
  18.  `gzip on;`
    
  19.  `server  {`        
    
  20.     `listen 80;`
    
  21.     `server_name localhost;`        
    
  22.  `location /      {`
    
  23.      `proxy_pass http://127.0.0.1:9999/wgcloud/login/toLogin;`
    
  24.      `proxy_cookie_path /wgcloud/ /;`      
    
  25.      `proxy_set_header Host $host;`
    
  26. 	`proxy_set_header X-Real-IP $remote_addr;`
    
  27.      `proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;`
    
  28.      `proxy_set_header X-Forwarded-Proto https;`
    
  29.              `}`
    
  30.  `location /wgcloud/  {`
    
  31.      `proxy_pass http://127.0.0.1:9999/wgcloud/;`
    
  32.      `proxy_cookie_path /wgcloud/ /;`  
    
  33.      `proxy_set_header Host $host;`
    
  34. 	`proxy_set_header X-Real-IP $remote_addr;`
    
  35.      `proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;`
    
  36.      `proxy_set_header X-Forwarded-Proto https;`
    
  37.              `}`
    
  38.          `}`
    
  39.  `server  {`
    
  40.      `listen 80;`
    
  41.      `location /.well-known/  {`
    
  42.             `root /var/www/html;`
    
  43.                      `}`
    
  44.      `location /  {`
    
  45.              `rewrite ^(.*)$ https://$host$1 permanent;`
    
  46.              `}`
    
  47.          `}`
    
  48.    `}`
    
  49. 覆盖原文件并重载Nginx

  50. [root@wgcloud ~]# cp /etc/nginx/nginx.conf.wg /etc/nginx/nginx.conf

  51. [root@wgcloud ~]# systemctl reload nginx

如果启动不了,请检查配置文件是不是有错,通过:

  1. [root@wgcloud ~]# nginx -t

或者

  1. [root@wgcloud ~]# systemctl status nginx

来查看。
现在就可以直接通过http://192.168.10.1/ 来访问wgcloud了,请将URL中的信息改为自己的server主机IP和web端口。

MySQL问题

在安装测试中,曾经安装过最新版的MySQL8。Server端会启动不了。按照官网文档说明,需要修改driver-class-name值为com.mysql.cj.jdbc.Driver。

如果数据库连接mysql 8.x,driver-class-name建议改为:com.mysql.cj.jdbc.Driver,若是mysql 5.x则保持默认即可。

但在测试过程中,修改完成后Server端还是启动不了,查看/home/wgcloud/server/log/下的日志文件,会看到以下信息报错信息:

Caused by: java.sql.SQLException: RSA public key is not available client side (option serverRsaPublicKeyFile not set)

经过搜索,通过修改datasource下的url可以解决此问题,一个删除url里面的 &useSSL=false5,二是在后面添加allowPublicKeyRetrieval=true6,而dirver-calss-name值可以不修改。

设置钉钉提醒

请参考官方指导教程,只是在脚本执行前添加 bash即可,如下:

  1. # 告警脚本完整路径(若配置脚本,无论是否配置过邮件,都会执行该脚本),可以为空
  2. warnScript: bash /home/wgcloud/server/DDsendMsg.sh
  3. # 请按照自己实际路径和文件名

参考文件

评论

此博客中的热门博文

纯IPV6 VPS安装hysteria、x-ui面板,并实现多VPS轮换

CentOS7修改默认SSH端口

纯IPV6服务器(Euserv)安装哪吒面板