在Linux操作系统上部署wgcloud监控

1.wgcloud监控介绍
1.1 介绍
这是一款开源的主机监控系统,可以支持主机各种指标监测(cpu使用率,cpu温度,内存使用率,磁盘容量空间,磁盘IO,硬盘SMART健康状态,系统负载,连接数量,网卡流量,硬件系统信息等)。支持监测服务器上的进程应用、文件、端口、日志、DOCKER容器、数据库、数据表等资源。支持监测服务接口API、数通设备(如交换机、路由器、打印机)PING和SNMP监测、自定义监控指令等。自动生成网络拓扑图,大屏可视化,web SSH,统计分析报表,指令下发批量执行,FTP监测,资产管理,设备账号管理,故障告警信息推送(如邮件、钉钉、微信、短信等)
1.2 支持监控的主机
- 支持监测Linux:Debian,RedHat,CentOS,Ubuntu,Fedora,SUSE,麒麟,统信(UOS),龙芯(mips)等
- 支持监测Windows:Windows Server 2008 R2,Windows Server 2012,2016,2019,2022,Windows 7,Windows 8,Windows 10,Windows 11
- 支持监测Unix:Solaris,FreeBSD,OpenBSD,AIX
- 支持监测MacOS:MacOS amd64,MacOS arm64
- 其他支持:ARM,Android(安卓),Riscv64,S390x,树莓派等
2.wgcloud的搭建
2.1 Server端的搭建
2.1.1 监控机安装JDK
爪哇下载 |甲骨文中国 (oracle.com)
`查看主机中是否安装了Java
[root@localhost ~]# rpm -qa | grep java
`查看仓库中的java软件包
[root@localhost ~]# yum -y list java*
`下载开发者版本
[root@localhost ~]# yum install java-1.8.0-openjdk-devel.x86_64
`查看是否下载成功
[root@localhost ~]# java -version

`通过Yum安装的jdk一般在/usr/lib/jvm

`配置环境变量
[root@localhost ~]# cat > /etc/profile.d/jdk.sh << EOFJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64JRE_HOME=$JAVA_HOME/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATHEOF`初始化环境变量,让环境变量永久生效
[root@localhost ~]# source /etc/profile.d/jdk.sh
2.1.2 监控机安装MySQL数据库
`使用Yum安装Mariadb
[root@localhost ~]# yum -y install mariadb*
`启动数据库并设置为自启动
[root@localhost ~]# systemctl start mariadb.service;systemctl enable mariadb.service
`初始化数据库并设置密码
[root@localhost ~]# mysqladmin -uroot password "******"

`添加远程访问权限
MariaDB [(none)]> use mysql;
MariaDB [mysql]> grant all privileges on *.* to root@'%' identified by '123456';
MariaDB [mysql]> flush privileges;
2.1.3 监控机安装wgcloud

[root@localhost ~]# wget https://www.wgstart.com/download/3.4.6/wgcloud-v3.4.6.tar.gz
[root@localhost ~]# tar -zxf wgcloud-v3.4.6.tar.gz -C /usr/local/`在服务端进行初始化数据库,导入或运行SQL语句
`第一步:创建数据库,名称为wgcloud,字符集设置为UTF-8
[root@localhost ~]# mysql -uroot -p12345
MariaDB [(none)]> create database if not exists wgcloud character set utf8 collate utf8_general_ci;
MariaDB [(none)]> create user wgcloud@localhost identified by 'wgcloud123';
MariaDB [(none)]> grant all privileges on wgcloud.* to wgcloud@localhost;
MariaDB [(none)]> flush privileges;
`第二步:在wgcloud数据库,导入或运行/usr/local/wgcloud-v3.4.6文件夹中的wgcloud-MySQL.sql文件
MariaDB [none]> use wgcloud;
MariaDB [wgcloud]> source /usr/local/wgcloud-v3.4.6/wgcloud-MySQL.sql;
2.1.4 在服务端进行Server配置及启动
`配置/usr/local/wgcloud-v3.4.6/server/config/application.yaml文件


`配置/usr/local/wgcloud-v3.4.6/agent/config/application.properties文件

注意:properties类型文件中的等号后面不需要保留空格。agent主动单向给server上报采集数据,agent主机不需要开启任何端口,因为server不会访问agent
2.1.5 启动Serveri端和Agent端
[root@localhost ~]# cd /usr/local/wgcloud-v3.4.6/server/
[root@localhost server]# ./start.sh
./wgcloud-server-release.jarwgcloud-server程序开始启动
./wgcloud-daemon-releasewgcloud-daemon程序开始启动
[root@localhost server]# cd ../agent/
[root@localhost agent]# ./start.sh
./wgcloud-agent-releasewgcloud-agent程序开始启动
[root@localhost agent]# lsof -i:9999

2.1.6 访问http://IP地址:Port/wgcloud


2.2 Agent的搭建
2.2.1 在客户端安装wgcloud
[root@localhost ~]# wget https://www.wgstart.com/download/3.4.6/wgcloud-v3.4.6.tar.gz
[root@localhost ~]# tar -zxf wgcloud-v3.4.6.tar.gz -C /usr/local/
2.2.2 修改Agent配置文件
`修改serverUrl为:http://Serverip:port

2.2.3 启动Agent
[root@localhost ~]# bash /usr/local/wgcloud-v3.4.1/agent/.start.sh
2.2.4 查看监控情况

2.3 使用system管理wgcloud
`使用system管理wgcloud
[root@localhost ~]# cat > /usr/lib/systemd/system/wgcloud.service << EOF
[Unit]
Description=wgcloud sever
After=network.target syslog.target[Service]
Type=forking
User=root
ExecStart=/usr/local/wgcloud/server/start.sh
ExecStop=/usr/local/wgcloud/server/stop.sh
ExecReload=/usr/local/wgcloud/server/stop.sh;/usr/local/wgcloud/server/start.sh
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF[root@localhost ~]# systemctl daemon-reload

3.使用Nginx服务器管理wgcloud
3.1 配置Nginx基础配置
`配置Nginx.conf文件中包括错误日志生成路径,进程限制,访问日志格式
user nginx;
worker_processes auto;
worker_cpu_affinity auto; #CPU亲和配置
worker_rlimit_nofile 1024; #进程限制error_log /data/log/nginx/error.log;
# error_log的级别分为debug,info,notice,warn,error,crit,默认为error
# debug:调试消息
# info:信息性消息
# notice:公告
# warn:警告
# error:处理请求时出错
# alert:警告.必须立即采取行动
# emerg: 紧急情况.系统处于无法使用的状态events {worker_connections 1024;use epoll; # 配置事件驱动模块
}http {include mime.types;default_type application/octet-stream;log_format main '$remote_addr $host - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# remote_addr:客户端IP地址# remote_user:客户端用户名称,用于记录浏览者进行身份验证时提供的名称,如果没有登录则为空# time_local:访问的时间与时区# request:请求的URL和HTTP协议# status:记录返回的HTTP状态码# body_bytes_sent:发送给客户端的文件主体内容的大小# http_referer:表示是从哪个网站上跳转来的# http_user_agent:客户端浏览器标识# http_x_forwarded_for:客户端IP地址列表(包括中间经过的代理IP)#access_log logs/access.log main;sendfile on;tcp_nopush on;# 优化Nginx静态资源的处理keepalive_timeout 65;include /usr/local/nginx/conf/conf.d/*.conf;
}
3.2 配置上游服务器
`文件路径:/usr/local/nginx/conf/conf.d/upstream.conf
upstream wgcloudServer {server 192.168.65.3:9999 weight=10;ip_hash;
}
3.3 配置反向代理
`文件路径:/usr/local/nginx/conf/conf.d/proxy.conf
server{listen 80;server_name localhost;charset utf-8;location / {proxy_pass http://myApp;proxy_buffer_size 64k;proxy_buffers 32 32k;proxy_busy_buffers_size 128k;proxy_set_header Host $host;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_redirect default;proxy_connect_timeout 600s;proxy_send_timeout 600s;proxy_read_timeout 600s; }location /wgcloud {proxy_pass http://wgcloudServer;}
}

3.4 配置SSL证书
1.本地做个域名解析(不做域名解析就用IP进行访问)
`Linux虚拟机:
[root@localhost ~]# vim /etc/hosts

`Windows主机同样修改hosts文件
2.使用Shell脚本一键生成SSL证书(此证书不被CA认可,所以浏览器会报不安全)
#!/bin/bash
if [ ! -f "/bin/openssl" ];thenyum -y install openssl
fi
. /etc/init.d/functionsCERT_INFO=([00]="/O=heaven/CN=ca.god.com" \[01]="cakey.pem" \[02]="cacert.pem" \[03]=2048 \[04]=3650 \[05]=0 \[10]="/C=CN/ST=hubei/L=wuhan/O=Gizaworks/CN=wgcloud.haohe.online" \[11]="master.key" \[12]="master.crt" \[13]=2048 \[14]=365[15]=1 \[16]="master.csr" \[20]="/C=CN/ST=hubei/L=wuhan/O=Gizaworks/CN=halo.haohe.online" \[21]="slave.key" \[22]="slave.crt" \[23]=2048 \[24]=365 \[25]=2 \[26]="slave.csr" )COLOR="echo -e \\E[1;32m"
END="\\E[0m"
DIR=/usr/local/nginx/conf/ssl/
cd $DIR for i in {0..2};doif [ $i -eq 0 ] ;thenopenssl req -x509 -newkey rsa:${CERT_INFO[${i}3]} -subj ${CERT_INFO[${i}0]} \-set_serial ${CERT_INFO[${i}5]} -keyout ${CERT_INFO[${i}1]} -nodes -days ${CERT_INFO[${i}4]} \-out ${CERT_INFO[${i}2]} &>/dev/nullelse openssl req -newkey rsa:${CERT_INFO[${i}3]} -nodes -subj ${CERT_INFO[${i}0]} \-keyout ${CERT_INFO[${i}1]} -out ${CERT_INFO[${i}6]} &>/dev/nullopenssl x509 -req -in ${CERT_INFO[${i}6]} -CA ${CERT_INFO[02]} -CAkey ${CERT_INFO[01]} \-set_serial ${CERT_INFO[${i}5]} -days ${CERT_INFO[${i}4]} -out ${CERT_INFO[${i}2]} &>/dev/nullfi$COLOR"**************************************生成证书信息**************************************"$ENDopenssl x509 -in ${CERT_INFO[${i}2]} -noout -subject -dates -serialecho
done
chmod 600 *.key
action "证书生成完成"

3.5修改配置文件
server{listen 80;server_name wgcloud.haohe.online;charset utf-8; return 301 https://$host$request_uri;
}server{# SSL访问的域名为443listen 443 default ssl;# 填写绑定证书的域名server_name wgcloud.haohe.online;# 证书文件名称ssl_certificate /usr/local/nginx/conf/ssl/master.crt;# 私钥文件名称ssl_certificate_key /usr/local/nginx/conf/ssl/master.key;ssl_session_timeout 5m;#请按照以下协议配置ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location /wgcloud {# limit_req zone=five burst=10;error_page 503 /503_api.html;proxy_pass http://wgcloudServer;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $host;add_header Strict-Transport-Security "max-age=31536000";}access_log /data/log/nginx/https_access.log main;error_log /data/log/nginx/https_error.log;
}

相关文章:
在Linux操作系统上部署wgcloud监控
1.wgcloud监控介绍 1.1 介绍 这是一款开源的主机监控系统,可以支持主机各种指标监测(cpu使用率,cpu温度,内存使用率,磁盘容量空间,磁盘IO,硬盘SMART健康状态,系统负载ÿ…...
浙大的SAMTrack,自动分割和跟踪视频中的任何内容
Meta发布的SAM之后,Meta的Segment Anything模型(可以分割任何对象)体验过感觉很棒,既然能够在图片上面使用,那肯定能够在视频中应用,毕竟视频就是一帧一帧的图片的组合。 果不其然浙江大学就发布了这个SAMTrack,就是在…...
Spring第三方资源配置管理
Spring第三方资源配置管理 1. 管理DataSource连接池对象1.1 管理Druid连接池【重点】1.2 管理c3p0连接池 2. 加载properties属性文件【重点】2.1 基本用法2.2 配置不加载系统属性2.3 加载properties文件写法 说明:以管理DataSource连接池对象为例讲解第三方资源配置…...
网络编程代码实例:多进程版
文章目录 前言代码仓库内容代码(有详细注释)server.cclient.cMakefile 结果总结参考资料作者的话 前言 网络编程代码实例:多进程版。 代码仓库 yezhening/Environment-and-network-programming-examples: 环境和网络编程实例 (github.com)E…...
一家传统制造企业的上云之旅,怎样成为了数字化转型典范?
众所周知,中国是一个制造业大国。在想要上云以及正在上云的企业当中,传统制造企业也占据了相当大的比例。 那么这类企业在实施数字化转型的时候,应该如何着手?我们不妨来看看一家传统制造企业的现身说法。 国茂股份的数字化转型诉…...
C++入门(C++)
目录 命名空间 1、命名空间的定义 2、命名空间的使用 1、加名空间名称和作用域限定符 2、使用using namespace 命名空间引入 3、使用using将命名空间中某个成员引入 C的输入与输出 缺省参数 1、缺省参数的概念 2、缺省参数分类 1、全缺省参数 2、半缺省参数 函数重载 1、函数重…...
Linux 利用网络同步时间
yum -y install ntp ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate ntp1.aliyun.com 创建加入crontab echo "*/20 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null &" >> /var/spool/cron/rootntp常用服务器 中国国家授…...
炫技亮点 SpringBoot下消灭If Else,让你的代码更亮眼
文章目录 背景案例第一阶段 萌芽第二阶段 屎上雕花第三阶段 策略工厂模式重构第四阶段 优化 总结 背景 大家好,我是大表哥laker。今天,我要和大家分享一篇关于如何使用策略模式和工厂模式消除If Else耦合问题的文章。这个方法能够让你的代码更加优美、简…...
免费ChatGPT接入网站-网站加入CHATGPT自动生成关键词文章排名
网站怎么接入chatGPT 要将ChatGPT集成到您的网站中,需要进行以下步骤: 注册一个OpenAI账户:访问OpenAI网站并创建一个账户。这将提供访问API密钥所需的身份验证凭据。 获取API密钥:在您的OpenAI控制台中,您可以找到您…...
PostgreSQL的数据类型有哪些?
数据类型分类 分类名称说明与其他数据库的对比布尔类型PG支持SQL标准的boolean数据类型与MySQL中的bool、boolean类型相同,占用1字节存储空间数值类型整数类型有2字节的smallint、4字节的int、8字节的bigint;精确类型的小数有numeric;非精确…...
Android 9.0 系统开机自启动第三方app
1.前言 在9.0的系统rom定制化开发中,在framework定制话的功能开发中,在内置的app中,有时候在系统开机以后会要求启动第三方app的功能,所以这就需要在监听开机完成的广播,然后在启动第三方app就可以了,接下来就需要在系统类中监听开机完成的广播流程来实现功能 2.系统开…...
一些想法:关于学习一门新的编程语言
很多人可能长期使用一种编程语言,并感到很有成就感和舒适感,发现学习一种新的编程语言的想法令人生畏而痛苦。或者可能知道并使用多种编程语言,但有一段时间没有学习新的语言。更或者可能只是好奇别人是如何潜心学习新的编程语言并迅速取得成…...
线性代数——矩阵
文章目录 版权声明基础概念矩阵的运算矩阵的加法数与矩阵相乘矩阵的乘法矩阵的转置 矩阵和方程组方阵和行列式伴随矩阵可逆矩阵分块矩阵矩阵的初等变换初等矩阵等价矩阵行阶梯矩阵行最简矩阵初等变换在矩阵求解中的应用 矩阵的秩 版权声明 本文大部分内容皆来自李永乐老师考研…...
taro之小程序持续集成
小程序持续集成 Taro 小程序端构建后支持 CI(持续集成)的插件 tarojs/plugin-mini-ci。 目前已支持(企业)微信、京东、字节、支付宝、钉钉、百度小程序 功能包括: 构建完毕后自动唤起小程序开发者工具并打开项目上传…...
Ceph入门到精通-Ceph 编排器简介
第 1 章 Ceph 编排器简介 作为存储管理员,您可以将 Ceph 编排器与 Cephadm 实用程序搭配使用,能够发现设备并在 Red Hat Ceph Storage 集群中创建服务。 1.1. 使用 Ceph Orchestrator Red Hat Ceph Storage Orchestrators 是经理模块,主要…...
【Feign扩展】OpenFeign日志打印Http请求参数和响应数据
SpringBoot使用log4j2 在Spring Boot中所有的starter 都是基于spring-boot-starter-logging的,默认使用Logback。使用Log4j2的话,你需要排除 spring-boot-starter-logging 的依赖,并添加 spring-boot-starter-log4j2的依赖。 配置依赖 <…...
MongoDB (零) 安装和简单使用
1.安装(Ubuntu) 1.1.安装gnupg sudo apt-get install gnupg1.2.获取GPG Key curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \--dearmor1.3.创建本地文件 echo "deb [ archamd64,arm64 signed-by/usr…...
Java中的异常是什么?
Java中的异常是指在程序运行时发生的错误或异常情况。这些异常可能会导致程序崩溃或无法正确执行,因此需要在代码中进行处理。Java中的异常机制可以帮助程序员捕获并处理异常,从而保证程序的稳定性和可靠性。 Java中的异常分为两种类型:受检…...
微短剧“小阳春”,“爱优腾芒”抢滩登陆?
降本增效一整年,长视频平台们似乎扭转了市场对于它们“烧钱”的印象。 爱奇艺宣布2022全年盈利,腾讯视频宣布从去年10月起开始盈利,视频平台们结束了一场“无限战争”。 与此同时,随着短视频平台的崛起,视频内容的形…...
C++菱形继承(再剖析)
当子类对象给父类对象的时候,怎么找公共的虚基类(A) 就得通过偏移量来算虚基类的位置 ---------------------------------------------------------------------------------------------------------------------------- 我们来分析一下B…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
