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/ 目录下。
- 解压文件至指定目录
[root@wgcloud ~]# mkdir /usr/java[root@wgcloud ~]# tar -zxvf jdk-8u152-linux-x64.tar.gz -C /usr/java/
- 配置环境变量
[root@wgcloud ~]# vi /etc/profile
将如下配置添加到文件/etc/profile最后面,然后保存退出:
# 添加 java环境变量export JAVA_HOME=/usr/java/jdk1.8.0_152export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
刷新一下:
[root@wgcloud ~]# source /etc/profile
查看java版本,检测是否安装成功:
[root@wgcloud ~]# java -versionjava version "1.8.0_152"Java(TM) SE Runtime Environment (build 1.8.0_152-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
安装MySQL5.7、修改相关配置、添加用户及权限并创建数据库
- 下载安装程序至/home/
[root@wgcloud ~]# cd /home/wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.39-1debian10_amd64.deb-bundle.tar
- 程序解压
[root@wgcloud ~]# tar -xvf mysql-server_5.7.39-1debian10_amd64.deb-bundle.tar
- 依次依赖程序
[root@wgcloud ~]# apt install psmisc libaio1 libnuma1 libatomic1 libmecab2
- 安装MySQL程序(需要按照顺序依次安装)
[root@wgcloud ~]# dpkg -i mysql-common_5.7.39-1debian10_amd64.deb[root@wgcloud ~]# dpkg -i mysql-community-client_5.7.39-1debian10_amd64.deb[root@wgcloud ~]# dpkg -i mysql-client_5.7.39-1debian10_amd64.deb[root@wgcloud ~]# dpkg -i mysql-community-server_5.7.39-1debian10_amd64.deb# 期间会提示输入密码, 并确认密码[root@wgcloud ~]# dpkg -i mysql-server_5.7.39-1debian10_amd64.deb
- 修改相关配置
# 1.允许远程访问, 修改bind-address的值为0.0.0.0# 2.配置数据库默认字符集,新增参数character-set-server=utf8[root@wgcloud ~]# vim /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 0.0.0.0 # 为了安全,此处未修改,因为数据库只授权给localhost即可。character-set-server=utf8# 配置客户端默认字符集,新增参数default-character-set=utf8[root@wgcloud ~]# vim /etc/mysql/conf.d/mysql.cnfdefault-character-set=utf8# 执行赋权语句并刷新生效,在进入mysql环境后执行[root@wgcloud ~]# mysql -uroot -p #输入MySQL密码后执行下面语句mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;FLUSH PRIVILEGES;mysql>show variables like '%character%'; # 查看字符集mysql> exit;
- 创建数据库wgcloud,在进入mysql环境后执行
[root@wgcloud ~]# mysql -uroot -p #输入MySQL密码后执行下面语句mysql> CREATE DATABASE wgcloud DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
- 创建数据库用户并授权访问wgcloud数据库(示例:用户名wg,密码wg&cloud#10086)
mysql> create user 'wg'@'localhost' identified by 'wg&cloud#10086'; # 创建数据库mysql> grant all privileges on 'wgcloud'.* to 'wg'@'localhost' identified by 'wg&cloud#10086'; # 授予用户wg通过本机对于数据库“wgcloud”的全部权限mysql> flush privileges; # 刷新权限mysql> exit; # 先退出MySQL
下载安装wgcloud,解压并导入数据库
- 下载
[root@wgcloud ~]# cd /home/[root@wgcloud ~]# wget https://www.wgstart.com/download/3.4.2/wgcloud-v3.4.2.tar.gz # 下载[root@wgcloud ~]# tar -xvf wgcloud-v3.4.2.tar.gz -C /home # 解压[root@wgcloud ~]# mv wgcloud-v3.4.2 wgcloud # 修改文件夹名[root@wgcloud ~]# mysql -uwg -p # 注意此处直接用wg用户登录即可,输入wg密码后执行下面语句mysql> use wgcloud;mysql> source /home/wgcloud/wgcloud-MySQL_v3.4.2.sql;mysql> exit;
- 修改server的mysql连接信息/home/wgcloud/server/config/application.yml
[root@wgcloud ~]# vi /home/wgcloud/server/config/application.yml
此处,暂时只需要修改数据库连接信息即可,其他请参考官网说明,server配置文件说明
`username: wg``password: wg&cloud#10086`
- 启动服务和访问
server启动前,请查看/home/wgcloud/server/start.sh和/home/wgcloud/server/wgcloud-daemon-release是否有执行权限,不会检查的,可直接终端执行下面几条语句:
[root@wgcloud ~]# chmod +x /home/wgcloud/server/start.sh[root@wgcloud ~]# chmod +x /home/wgcloud/server/stop.sh[root@wgcloud ~]# chmod +x /home/wgcloud/server/wgcloud-daemon-release[root@wgcloud ~]# chmod +x /home/wgcloud/agent/start.sh[root@wgcloud ~]# chmod +x /home/wgcloud/agent/stop.sh[root@wgcloud ~]# chmod +x /home/wgcloud/agent/wgcloud-agent-release
然后启动Server服务和agent服务
[root@wgcloud ~]# bash /home/wgcloud/server/start.sh[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文件
[root@wgcloud ~]# vi /lib/systemd/system/rc-local.service
在文件末尾添加以下信息即可:
[Install]WantedBy=multi-user.target
保存退出,然后新建/etc/rc.local文件
[root@wgcloud ~]# vi /etc/rc.local
并写入以下信息
#!/bin/sh -e# 在这里输入需要自启的脚本bash /home/wgcloud/server/start.shbash /home/wgcloud/agent/start.shexit 0
保存退出,并赋予该文件可执行权限:
[root@wgcloud ~]# chmod +x /etc/rc.local
启动该服务:
[root@wgcloud ~]# systemctl enable rc-local # 启用[root@wgcloud ~]# systemctl start rc-local.service # 开始运行[root@wgcloud ~]# systemctl status rc-local.service # 查看状态
重启机器,看看server服务和agent服务是不是启动了,在终端输入命令看看哪些端口开放了
[root@wgcloud ~]# netstat -tunlp
如果完全按照我推荐的来,可能发现只有9997端口启动了,端口9998和9999并没有启动。这是因为server端要启动必须要有Java环境,而rc.local是先于/etc/profile启动的,所以导致start.sh启动时找不到Java,因为 Java还没启动起来,怎么办呢?请修改/etc/rc.local:
[root@wgcloud ~]# vi /etc/rc.local
在脚本前加入下面信息:
#!/bin/sh -e# 在这里输入需要自启的脚本. /etc/profilebash /home/wgcloud/server/start.shbash /home/wgcloud/agent/start.shexit 0
保存退出,再次重启服务器即可。
方法二(适用Debian)
- 创建开机启动的服务单元文件
vi /etc/systemd/system/wgcloud.service
- 在文件中输入下面的内容
[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
- 激活你的systemd服务单元
systemctl daemon-reload
- 启用设置好的服务
systemctl enable wgcloud.service
- 测试是否设置成功
systemctl is-enabled wgcloud.service
返回enabled即为已经成功设置。服务端可以添加一个相似的服务。
Nginx配置访问WgCloud页面URL地址不加后缀/wgcloud
- 安装Nginx最新版本
Debian11 默认源安装的是Nginx1.18,该版本无法使用Nginx某些新的功能,我们修改源来安装最新版本- 添加源:(bullseye为debian 11的发行版本代号,根据实际情况修改)
[root@wgcloud ~]# echo deb http://nginx.org/packages/debian/ bullseye nginx | tee /etc/apt/sources.list.d/nginx.list[root@wgcloud ~]# apt install gnupg2 -y[root@wgcloud ~]# cd /home[root@wgcloud ~]# wget http://nginx.org/keys/nginx_signing.key[root@wgcloud ~]# apt-key add nginx_signing.key安装
[root@wgcloud ~]# apt update[root@wgcloud ~]# apt install nginx -y检验安装结果
[root@wgcloud ~]# service nginx start[root@wgcloud ~]# nginx -v
- 备份nginx.conf,并新建nginx.conf.wg并覆盖原文件
- 备份原配置文件
`[root@wgcloud ~]# cp /etc/nginx/nginx.conf /etc/nginx.conf.bak`新建nginx.conf.wg
`[root@wgcloud ~]# vi /etc/nginx/nginx.conf.wg`
贴入以下内容
user www-data root;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;events {`worker_connections 1024;``multi_accept on;``use epoll;`}http {`sendfile on;``tcp_nopush on;``tcp_nodelay on;``keepalive_timeout 65;``types_hash_max_size 2048;``include /etc/nginx/mime.types;``default_type application/octet-stream;``gzip on;``server {``listen 80;``server_name localhost;``location / {``proxy_pass http://127.0.0.1:9999/wgcloud/login/toLogin;``proxy_cookie_path /wgcloud/ /;``proxy_set_header Host $host;``proxy_set_header X-Real-IP $remote_addr;``proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;``proxy_set_header X-Forwarded-Proto https;``}``location /wgcloud/ {``proxy_pass http://127.0.0.1:9999/wgcloud/;``proxy_cookie_path /wgcloud/ /;``proxy_set_header Host $host;``proxy_set_header X-Real-IP $remote_addr;``proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;``proxy_set_header X-Forwarded-Proto https;``}``}``server {``listen 80;``location /.well-known/ {``root /var/www/html;``}``location / {``rewrite ^(.*)$ https://$host$1 permanent;``}``}``}`覆盖原文件并重载Nginx
[root@wgcloud ~]# cp /etc/nginx/nginx.conf.wg /etc/nginx/nginx.conf[root@wgcloud ~]# systemctl reload nginx
如果启动不了,请检查配置文件是不是有错,通过:
[root@wgcloud ~]# nginx -t
或者
[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即可,如下:
# 告警脚本完整路径(若配置脚本,无论是否配置过邮件,都会执行该脚本),可以为空warnScript: bash /home/wgcloud/server/DDsendMsg.sh# 请按照自己实际路径和文件名

评论
发表评论