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_152
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
刷新一下:
[root@wgcloud ~]# source /etc/profile
查看java版本,检测是否安装成功:
[root@wgcloud ~]# java -version
java 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.cnf
bind-address = 0.0.0.0 # 为了安全,此处未修改,因为数据库只授权给localhost即可。
character-set-server=utf8
# 配置客户端默认字符集,新增参数default-character-set=utf8
[root@wgcloud ~]# vim /etc/mysql/conf.d/mysql.cnf
default-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.sh
bash /home/wgcloud/agent/start.sh
exit 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/profile
bash /home/wgcloud/server/start.sh
bash /home/wgcloud/agent/start.sh
exit 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
# 请按照自己实际路径和文件名
评论
发表评论