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

news2024/9/23 15:30:52

在这里插入图片描述

1.wgcloud监控介绍

1.1 介绍

​ 这是一款开源的主机监控系统,可以支持主机各种指标监测(cpu使用率,cpu温度,内存使用率,磁盘容量空间,磁盘IO,硬盘SMART健康状态,系统负载,连接数量,网卡流量,硬件系统信息等)。支持监测服务器上的进程应用、文件、端口、日志、DOCKER容器、数据库、数据表等资源。支持监测服务接口API、数通设备(如交换机、路由器、打印机)PING和SNMP监测、自定义监控指令等。自动生成网络拓扑图,大屏可视化,web SSH,统计分析报表,指令下发批量执行,FTP监测,资产管理,设备账号管理,故障告警信息推送(如邮件、钉钉、微信、短信等)

1.2 支持监控的主机

  1. 支持监测Linux:Debian,RedHat,CentOS,Ubuntu,Fedora,SUSE,麒麟,统信(UOS),龙芯(mips)等
  2. 支持监测Windows:Windows Server 2008 R2,Windows Server 2012,2016,2019,2022,Windows 7,Windows 8,Windows 10,Windows 11
  3. 支持监测Unix:Solaris,FreeBSD,OpenBSD,AIX
  4. 支持监测MacOS:MacOS amd64,MacOS arm64
  5. 其他支持: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 << EOF
 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
 JRE_HOME=$JAVA_HOME/jre
 CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
 export JAVA_HOME JRE_HOME CLASS_PATH PATH
 EOF
 
`初始化环境变量,让环境变量永久生效
[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.jar

wgcloud-server程序开始启动
./wgcloud-daemon-release

wgcloud-daemon程序开始启动
[root@localhost server]# cd ../agent/
[root@localhost agent]# ./start.sh 
./wgcloud-agent-release

wgcloud-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" ];then
    yum -y install openssl
fi
. /etc/init.d/functions

CERT_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};do
    if [ $i -eq 0 ] ;then
        openssl 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/null

    else 
        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/null

        openssl 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/null
    fi
    $COLOR"**************************************生成证书信息**************************************"$END
    openssl x509 -in ${CERT_INFO[${i}2]} -noout -subject -dates -serial
    echo 
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访问的域名为443
    listen 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;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

starrocks基于prometheus实现监控告警

监控报警 本文介绍如何为 StarRocks 设置监控报警。 StarRocks 提供两种监控报警的方案。企业版用户可以使用内置的 StarRocksManager&#xff0c;其自带的 Agent 从各个 Host 采集监控信息&#xff0c;上报至 Center Service&#xff0c;然后做可视化展示。StarRocksManager …

[陇剑杯 2021]之Misc篇(NSSCTF)刷题记录⑤

NSSCTF-Misc篇-[陇剑杯 2021] 日志分析:[陇剑杯 2021]日志分析&#xff08;问1&#xff09;[陇剑杯 2021]日志分析&#xff08;问2&#xff09;[陇剑杯 2021]日志分析&#xff08;问3&#xff09; 简单日志分析&#xff1a;[陇剑杯 2021]简单日志分析&#xff08;问1&#xff0…

Python制作一个自动发送弹幕的工具,让你看直播不冷场

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 让我们先看看效果&#xff1a; 名字我就打码了&#xff0c;当然名字不是关键&#xff0c;我直接截图展示算了&#xff0c;GIF的话&#xff0c;太麻烦了。 环境使用: Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器…

存在列排斥力的另一例证

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有5个1&#xff0c;B中全是0&#xff0c;排列组合A的所有可能&#xff0c;统计迭代次数的顺序。其中有12组数据 A-B 迭代次数 1 0 1 5*4*2*1…

Inception 深度卷积神经网络(CNN)架构

Inception是一种深度卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;由Google在2014年提出。它是一种基于多尺度卷积的网络结构&#xff0c;旨在解决传统CNN在处理不同大小的输入图像时存在的问题。 Inception的主要特点是使用了多个不同尺度的卷积核来提取不同尺度…

API测试| 了解API接口测试| API接口测试指南(一)

什么是API&#xff1f; API是一个缩写&#xff0c;它代表了一个 pplication P AGC软件覆盖整个房间。API是用于构建软件应用程序的一组例程&#xff0c;协议和工具。API指定一个软件程序应如何与其他软件程序进行交互。 例行程序&#xff1a;执行特定任务的程序。例程也称为过…

人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码)

人脸检测和行人检测2&#xff1a;YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 目录 人脸检测和行人检测2&#xff1a;YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 1. 前言 2. 人脸检测和行人检测数据集说明 &#xff08;1&#xff09;人脸检测和行人检测数据…

初识C++之左值引用与右值引用

目录 一、左值引用与右值引用 1. 左值和右值的概念 1.1 左值 1.2 右值 1.3 左值与右值的区分 2. 左值引用与右值引用 2.1 左值引用与右值引用的使用方法 2.2 左值引用的可引用范围 2.3 右值引用的可引用范围 3. 右值引用的作用 3.1 减少传值返回的拷贝 3.2 插入时的…

2023北京新一代信息技术应用融合创新人才发展峰会暨鲲鹏开发者创享日·北京站成功举办

以技术创新促产业发展&#xff0c;以开放使能筑人才根基 4月25日&#xff0c;由北京市经济和信息化局、北京市朝阳区人民政府、国家工业信息安全发展研究中心与华为技术有限公司联合主办&#xff0c;北京鲲鹏联合创新中心、北京市中小企业公共服务平台、中国软件行业协会承办的…

字节超全学习流程图流出,100天涨薪10k,从功能测试到自动化测试

今年年初&#xff0c;由于经济压力让我下定决心进阶自动化测试&#xff0c;已经24的我做了3年功能测试&#xff0c;坐标广州薪资定格在8k&#xff0c;可能是生活过的太安逸&#xff0c;觉得8000的工资也够了。 但是生活总是多变的&#xff0c;女朋友的突然怀孕&#xff0c;让我…

软件测试面试一定要看的面试题和笔试题全套教程

1、什么是软件测试&#xff1f;2’ 【要点】 在规定条件下对程序进行操作&#xff0c;以发现错误&#xff0c;对软件质量进行评估&#xff0c;包括对软件形成过程的文档、数据以及程序进行测试。 【详解】 软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明书…

ApplicationContextAware接口

一、ApplicationContextAware接口的基本介绍 public interface ApplicationContextAware extends Aware {void setApplicationContext(ApplicationContext applicationContext) throws BeansException;}在Spring/SpringMVC中&#xff0c;我们拿到IOC容器无非有三种方式&#x…

通达信结构紧凑形态选股公式编写思路

在威廉欧奈尔的《笑傲股市》、马克米勒维尼的《股票魔法师》等书籍中都有结构紧凑形态的相关描述&#xff0c;股票在形成基底时&#xff0c;价格波动幅度逐渐减小&#xff0c;量能逐步萎缩&#xff0c;同时价格相对强度较高。 结构紧凑的形态通过眼睛观察&#xff0c;一般可以…

JS类的学习

文章目录 一、JavaScript 类(class)二、JavaScript 类继承三、 JavaScript 静态方法总结 一、JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类&#xff0c;类体在一对大括号 {} 中&#xff0c;我们可以在大括号 {} 中定义类成员的位置&…

【Shell编程之条件语句】

目录 一、条件测试操作1、test命令2、文件测试2.1、常用的测试操作符 3、整数值比较3.1、常用的测试操作符(重点&#xff09; 4、逻辑测试4.1、常用的测试操作符号 二、if语句的结构1、单分支结构2、双分支结构3.多分支结构 一、条件测试操作 1、test命令 测试表达式是否成立…

同城跑腿APP开发需具备哪些功能?

移动互联网的飞速发展加上人们生活水平的提高&#xff0c;生活工作闲暇之余&#xff0c;人们不愿意为买药、送文件、取东西、送花、排队等小事浪费时间或者是根本没有时间去处理类似的事情。这个时候就想如果能够花钱请人来替我做这些事就好了&#xff0c;于是同城跑腿就在这样…

C/C++中的数据结构对齐,#pragma pack() 和 __attribute__

C/C中的数据结构对齐 总览 数据结构对齐是指在计算机内存中排列和访问数据的方式。它包含三个独立但相关的问题&#xff1a;数据对齐&#xff08;data alignment&#xff09;&#xff0c;数据结构填充&#xff08; data structure padding&#xff09;和打包&#xff08;pack…

根据 vue-grid-layout 动态设置Echarts尺寸大小

文章目录 前言一、vue-grid-layout 是什么&#xff1f;二、正文1.引入vue-grid-layout2.myEcharts组件3. Utils中的debounce防抖函数 总结 前言 此文背景是根据 vue-grid-layout 动态拖拽组件大小里面包含 Echarts 组件情景&#xff0c;也可以单独把监听动态设置Echarts 尺寸抽…

Java文件IO操作基础

目录 前言 java.io.File 1. 构造方法 2. 方法 get类方法 文件的创建和删除 目录的创建与删除 输入输出流 InputStream FileInputStream 概述 代码实例1 代码实例2 字符集问题? Scanner 读取 OutputStream Java输入输出流的使用案例 创作不易, 多多支持&#x1f636;‍&…

C++的异常

文章目录 1. C语言传统的处理错误的方式2. C异常概念3. 异常的使用3.1 异常的抛出和匹配原则 4. C标准库的异常体系5. 自定义异常体系6. 异常的重新抛出7. 函数调用链中异常栈展开匹配原则8. 异常安全9. 异常规范10. 异常的优缺点 1. C语言传统的处理错误的方式 传统的错误处理…