极简运维监控系统-WGCLOUD

WGCLOUD介绍

WGCLOUD设计思想为新一代极简运维监控系统,提倡快速部署,降低运维学习难度,全自动化运行,无模板和脚本。

WGCLOUD基于微服务springboot架构开发,是轻量高性能的分布式监控系统,核心采集指标包括:cpu使用率,cpu温度,内存使用率,磁盘容量,磁盘IO,硬盘SMART健康状态,系统负载,连接数量,网卡流量,硬件系统信息等。支持监测服务器上的进程应用、文件防篡改、端口、日志、DOCKER容器、数据库、数据表等资源。支持监测服务接口API、数通设备(如交换机、路由器、打印机)等。自动生成网络拓扑图,大屏可视化,web SSH(堡垒机),统计分析图表,指令下发批量执行,告警信息推送(如邮件、钉钉、微信、短信等)English Readme

唯一官网

http://www.wgstart.com

Github仓库

https://github.com/tianshiyeben/wgcloud

部署运行的前置条件说明

WGCLOUD包括:server为服务端(或主控端),agent为客户端(探针端、被控端)

WGCLOUD是绿色版本,非侵入式,解压即可运行,是完全自主私有化部署的监控平台,不依赖外网,局域网、内网也可以部署

1、server所在主机需要JDK环境(JDK1.8、JDK11都可以),OpenJDK也可以,更高版本JDK也支持,一般推荐使用JDK1.8或JDK11

因server使用java开发,所以server所在主机需要JDK环境,如已安装则跳过

如下命令,检测是否安装JDK,输出类似下面结果,说明已安装。

[root@lavm-peaauoxaqf ~]# java -version
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)

1. 1  如未安装,执行如下命令来安装。

检查系统中jdk的所有版本
[root@lavm-peaauoxaqf ~]# yum search java|grep jdk

安装jdk1.8的版本
[root@lavm-peaauoxaqf ~]# yum install java-1.8.0-openjdk -y

2、server需要数据库来存贮数据

支持MySQL、MariaDB、PostgreSQL、Oracle这四种数据库,选择其中任一种作为数据源即可,如果已安装则跳过

3、agent所在主机不需要JDK、不需要JDK、不需要JDK

  • agent所在主机不需要JDK及其他依赖,解压后可直接启动运行
  • agent对linux要求为:内核版本2.6.23或更高,CentOS/RHEL 6.0以上
  • agent对windows要求为:Windows Server 2008 R2,2012,2016,2019,2022,Windows 7,Windows 8,Windows 10,Windows 11
  • macOS目前可以获取系统信息、内存、cpu,暂不能获取磁盘信息,其他验证中

4、不管是server还是agent,都不需要编译,都是解压后,就可以启动运行了,不会污染已有的系统任何功能和文件

5、server主机和agent被监控主机不在一个网段可以监控吗?

可以的

只要被监控主机能ping通server主机就行(即被控端能ping通主控端就行), server主机不需要ping通被监控主机

因为WGCLOUD架构设计是agent单向给server上报数据,server不会访问agent

6、 服务器硬件配置和调优建议参考

1、被控端agent对主机硬件无要求,agent对资源使用率很低(默认监控占用内存约10MB),可以忽略

2、主控端server对主机硬件配置建议:

硬盘容量建议最低40G,如果有SSD话就更好了。如果监控主机数量少的话,20G左右也可以

监控主机数量<50,server所在服务器建议最低配置 1H2G

50<监控主机数量<100,server所在服务器建议最低配置 2H4G

100<监控主机数量<500,server所在服务器建议建议最低配置 4H8G

监控主机数量>500,server所在服务器建议最低配置 8H16G

以此类推

3、如果主控端server主机内存资源充裕的话,适当增加内存使用,提升server运算能力

修改server/start.sh中的

 -Xms256m -Xmx512m 

,改为

 -Xms1024m -Xmx1024m 

,重启server生效

也可以设置更高些,比如改为

 -Xms2048m -Xmx2048m 

 -Xms4098m -Xmx4098m 

,这样server运行效率更高

如果主控端server部署在windows的话,修改server/start.bat

4、当监控主机数量>500时,根据数据库的硬件配置,适当调整上报数据频率为3-4分钟,以减少server端数据压力

5、如下这个是系统的隐藏参数(v3.4.4开始支持),server配置文件中没有,需要手动添加,不过一般不会使用(500节点以下不用关注此配置)

1、配置文件server/config/application.yml,除MySQL数据库连接信息(配置文件18-20行)需要修改外,其他暂时默认即可,后续可根据实际场景再进行调整

(1) 将MySQL数据库连接信息,改为自己的实际信息。PostgreSQL连接配置说明Oracle连接配置说明

注意:如果MySQL和server不在同一个主机,需要配置允许MySQL的root用户远程访问:MySQL 5.7或5.6说明MySQL8说明

(2) 管理员账号/密码,默认:admin/111111,可以修改为自己喜欢的账号/密码,暂时默认即可

(3) wgToken为server和agent通信密钥,server和agent配置文件中的wgToken值要保持一致,暂时默认即可

(4) 9999为server的web访问端口,可以修改为其他端口(不能和守护进程wgcloud-daemon-release的端口相同,守护进程端口默认9997,可在server/config/daemon.properties修改),同时访问时也用修改后的端口,暂时默认即可

(5) 如果要使用web ssh,默认端口9998,那么server主机的9998端口要放行。web ssh开关、端口都在下面配置文件修改,暂时默认即可

注意yml文件格式规则,每个配置项冒号后需要保留一个英文空格。另外除数据库连接信息需要关注,其他都可以暂时默认

提示:若server主机的防火墙或安全组在运行,需放行这2个端口:9999(sever web页面访问)、9998(web ssh端口,不用web ssh可不开启),查看Linux防火墙开启端口说明

[root@server ~]# vim wgcloud-v3.4.8/server/config/application.yml
server:
  port: 9999
  servlet:
    session:
      timeout: 120m
#日志文件输出路径
logging:
  file:
    path: ./log
# 数据库 相关设置
spring:
  application:
    name: wgcloud-server
  datasource:
    #如果数据库连接mysql 8.x,driver-class-name建议改为:com.mysql.cj.jdbc.Driver,若是mysql 5.x则保持默认即可
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/wgcloud?characterEncoding=utf-8&characterSetResults=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true
    username: root
    #如果密码含有特殊符号,比如.!这种符号,可能会有问题,两边用单引号包裹起来,没有错误就不用关注了
    password: 123456
    hikari:
      validationTimeout: 3000
      connectionTimeout: 60000
      idleTimeout: 60000
      minimumIdle: 10
      maximumPoolSize: 10
      maxLifeTime: 60000
      connectionTestQuery: select 1
  mvc:
    static-path-pattern: /static/**
  thymeleaf:
    cache: false
mybatis:
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml

#核心配置参数
base:
  #管理员登陆账号
  account: admin
  #管理员登陆账号的密码
  accountPwd: 111111
  #是否开启免密登录,yes开启,no关闭,此功能开启需升级到专业版
  openSSO: no
  #通信token,agent端和此保持一致
  wgToken: wgcloud
  #每页显示多少条数据,建议不小于10
  pageSize: 20
  #是否开启web ssh客户端,yes开启,no关闭
  webSsh: yes
  #web ssh客户端的服务端口
  webSshPort: 9998
  #守护进程访问url,server服务使用,agent不使用,若守护端口修改,那此处的端口也要同步修改下(一般保持默认即可)
  daemonUrl: http://localhost:9997
  #是否开启公众看板,yes开启,no关闭,开启后看板页面无需登陆
  dashView: yes
  #是否开启数据开放接口,yes开启,no关闭
  openDataAPI: yes
  #公众看板页面主机IP是否开启脱敏显示,yes开启,no关闭
  dashViewIpHide: yes
  #是否开启大屏展示看板,yes开启,no关闭,开启后看板页面无需登陆
  dapingView: yes
  #是否自动闭合左侧菜单,yes是,no否
  sidebarCollapse: yes
  #是否在列表页面显示告警次数,yes是,no否,一般不建议开启(至少不建议长期开启),因为可能会影响性能
  showWarnCount: no
  #是否开启指令下发(若关闭,将不能再新增和下发指令),yes是,no否
  shellToRun: yes
  #指令下发不能包含的敏感字符,小写即可,多个用逗号隔开
  shellToRunBlock: 'rm ,mkfs, /dev/,:(){:|:&};:,mv ,wget , install ,del ,delete ,format ,ren ,rd ,rd/s/q ,rmdir '
  #数据监控的sql语句,不能编写出现的敏感字符(即sql可能注入的关键字),小写即可,多个用逗号隔开
  sqlInKeys: 'execute ,update ,delete ,insert ,create ,drop ,alter ,rename ,modify '
  #数据表监控间隔,单位秒,默认60分钟
  dbTableTimes: 3600
  #服务接口监控间隔,单位秒,默认10分钟
  heathTimes: 600
  #ftp/sftp服务监控间隔,单位秒,默认10分钟
  ftpTimes: 600
  #数通设备PING监控间隔,单位秒,默认15分钟
  dceTimes: 900
  #数通设备snmp监测间隔,单位秒,默认20分钟
  snmpTimes: 1200
  #告警缓存时间(即静默时间)间隔(此时间段内同一告警通知不再重复发),单位秒,默认120分钟。此期间只是不推送告警到第三方(邮件钉钉微信等)了,系统监控扫描工作仍正常进行
  warnCacheTimes: 7200
  #监控数据保留天数,默认30天
  historyDataOut: 30
  #节点类型,master或slave,一个集群只能有一个master和N(最多31)个slave,如:slave1,slave2
  nodeType: master
  #是否开启使用标签,yes开启,no关闭
  hostGroup: no
  #是否开启成员账号管理(即每个成员可管理自己的资源),yes开启,no关闭,关闭后新增的成员不能再登录(管理员和只读账号可以登录)此功能需升级到专业版
  userInfoManage: no
  #server/logo/目录下的ico图标名称,32*32,如favicon.png,ico图片格式暂不支持(请转为png),此功能需升级到专业版
  icoName: favicon.png
  #server/logo/目录下的logo图标名称,120*120,如logo.png,此功能需升级到专业版
  logoName: logo.png
  #系统名称,如wgcloud运维监控系统,此功能需升级到专业版
  wgName: wgcloud运维监控系统
  #系统简称,如wgcloud,此功能需升级到专业版
  wgShortName: wgcloud
  #告警邮件标题前缀,此功能需升级到专业版
  mailTitlePrefix: '[WGCLOUD]'
  #告警邮件内容后缀,此功能需升级到专业版
  mailContentSuffix: 'WGCLOUD敬上'
  #是否显示页面底部版权、网址信息,yes显示,no不显示,此功能需升级到专业版
  copyRight: yes
  .....
以上只是配置文件server/config/application.yml的一部分,剩余部分因为安装部署过程不需修改,所以没有展示,后续可以根据实际场景自定义

 

agent配置文件说明(修改后需重启agent生效)

1、配置文件agent/config/application.properties,除serverUrl参数需要修改外,其他暂时默认即可,后续再根据实际场景调整

[root@agent-1 ~]# tar -xvf wgcloud-v3.4.8.tar.gz 
wgcloud-v3.4.8/
wgcloud-v3.4.8/agent/
wgcloud-v3.4.8/agent/wgcloud-agent-release
wgcloud-v3.4.8/agent/stop.sh
............

[root@agent-1 ~]# vim wgcloud-v3.4.8/agent/config/application.properties 

#wgcloud-server端访问地址,将下方替换为server主机IP和web端口即可,端口一定要写,即使是80也要写哈
serverUrl=http://172.25.32.31:9999

#本机ip或标识,可以为空,为空时候默认取本机IP,配置不要超过50个字符
bindIp=172.25.32.20

#通信token,请和server端配置的wgToken保持一致
wgToken=wgcloud

#给server端上报数据(主机指标)的频率,单位秒,个人版值不能小于120,专业版值最小可支持10但建议不小于30。此值建议不要大于600。除特殊业务场景外,建议上报频率不要少于1分钟
submitSeconds=120

#进程、端口、docker监控间隔时间,单位秒,个人版值不能小于300,专业版值不能小于10,但建议不小于30
hostAttachSeconds=300

#硬盘smart检测是否开启,yes开启,no关闭,开启时需要安装smartmontools工具才可用
smartOn=no

#是否允许agent执行server下发的指令,yes是,no否
shellToRun=yes

#是否监测异常进程,指cpu使用率或内存使用率大于90%的进程,yes是,no否
exceptionProcess=yes

#是否监测用户登录信息,yes是,no否
lastLoginInfo=yes

#agent日志文件保留天数,默认保留最近30天日志文件
logDays=30

#监控日志文件扫描间隔时间,单位秒,默认10分钟,个人版值不能小于600,专业版可以小于600
logCheckSeconds=600

#自定义监控项监控间隔时间,单位秒,默认10分钟,此功能需要升级到专业版
customDataSeconds=600

#带宽上下行速率指标监控的网卡名称(如eth0),多个网卡用逗号隔开,为空标识监控所有网卡(含虚拟网卡)
netInterface=

2、注意

agent配置文件为properties类型,因此等号后面不需要保留空格

同一个版本的agent配置文件都是一样

3、其他说明

其他主机监控,查看如何在监控主机上部署agent

一键部署agent脚本说明(Linux版)

如果agent不能直连server,可以通过代理wgcloud-proxy,实现将数据转发上报给server

windows版agent的目录下的NSSM.exe文件,是一个用于注册系统服务的辅助工具,查看说明,暂时不用关注

windows版agent的目录下的regAgentService.bat批处理脚本,可以将agent注册为系统服务,直接双击运行(会自动调用上面NSSM工具)即可

启动服务和访问

1、server启动(进入server/目录启动)

(1)若是Linux平台,检查下wgcloud-v3.4.8/server/start.sh是否有可执行权限,若无,则赋给可执行权限

[root@server server]# ls
config log logo README.txt start.sh stop.sh template wgcloud-daemon-release wgcloud-server-release.jar

(2) Linux部署的server,使用指令

 sh start.sh

启动服务(重启也用该指令),使用指令

 sh stop.sh

停止服务

[root@server ~]# cd wgcloud-v3.4.8/server/
[root@server server]# ls
config log logo README.txt start.sh stop.sh template wgcloud-daemon-release wgcloud-server-release.jar
[root@server server]# sh start.sh 
./wgcloud-server-release.jar

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

wgcloud-daemon程序开始启动

(3) windows部署的server,使用

start.bat

启动,启动后不可关闭黑窗口(尤其不要左键点击黑窗口,就会进入选择模式,就会阻塞运行,右击释放),停止服务关掉即可。也可以将server注册为windows系统服务,实现开机启动和隐藏黑窗口

(4) server启动完成大概需要10秒,注意:启动server,会同时守护进程wgcloud-daemon-relese,不要关闭守护进程

server运行的日志文件在server/log/,看到日志文件中有如下打印信息说明server启动完成

[root@server ~]# cat wgcloud-v3.4.8/server/log/wgcloud.2023-08-19.0.log 
 com.wgcloud.WgcloudServiceApplication - Starting WgcloudServiceApplication vrelease using Java 1.8.0_181 on server with PID 21456 (/root/wgcloud-v3.4.8/server/wgcloud-server-release.jar started by root in /root/wgcloud-v3.4.8/server)

启动完成后,浏览器输入 http://172.25.32.20:9999 登录,将URL中的信息改为自己的server主机IP和web端口,默认登录账号/密码:admin/111111

2、agent启动(进入agent/目录启动)

(1) 若是Linux平台,检查下wgcloud-v3.4.8/agent/start.sh是否有可执行权限,若无,则赋给可执行权限

[root@agent-1 agent]# ls
config log README.txt start.sh stop.sh wgcloud-agent-release

(2) Linux部署的agent,使用指令

 sh start.sh

启动服务(重启也用该指令),使用指令

 sh  stop.sh

停止服务

[root@agent-1 ~]# sh wgcloud-v3.4.8/agent/start.sh 
wgcloud-v3.4.8/agent/wgcloud-agent-release 

wgcloud-agent程序开始启动

[root@agent-2 ~]# sh wgcloud-v3.4.8/agent/start.sh 
wgcloud-v3.4.8/agent/wgcloud-agent-release

wgcloud-agent程序开始启动

(3) windows部署的agent,用管理员身份运行wgcloud-agent-release.exe,启动后不可关闭黑窗口,停止服务关掉即可。也可以将agent注册为windows系统服务,实现开机启动和隐藏黑窗口

(4) agent运行的日志文件在agent/log/

[root@agent-1 ~]# cat wgcloud-v3.4.8/agent/log/2023-08-19.log 
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:257: -------------agent核心配置-------------
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:264: 给server端上报数据(主机指标)的频率: 120
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:266: 进程、端口、docker监控间隔时间: 300
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:268: 运行日志文件保留天数: 30
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:270: 监控日志文件扫描间隔时间: 600
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:272: 自定义监控项监控间隔时间: 600
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:274: 带宽上下行速率指标监控的网卡名称(为空默认监控所有网卡): 
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:285: 硬盘smart检测配置: no
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:290: 是否允许执行下发指令: yes
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:295: 是否监测异常进程: yes
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:300: 是否监测用户登录信息: yes
[wgcloud-agent]2023/08/19 03:58:29 daemonUtil.go:116: 防篡改校验成功: 0
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:460: Agent started successfully. v3.4.8 . ©2017-2023 www.wgstart.com . All rights reserved.
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:461: serverUrl: http://172.25.32.20:9999
[wgcloud-agent]2023/08/19 03:58:29 WgcloudAgent.go:462: bindIp: 172.25.32.31

其他主机若需要监控,查看如何在监控主机上单独部署agent

部署完成

 

 

 

 


云野 » 极简运维监控系统-WGCLOUD

发表回复