WGCLOUD监控入门

一、简介

WGCLOUD是一个高性能高并发的分布式监控系统,server基于springboot架构开发,agent采用go开发,核心模块包括:主机监控,ES集群监控,CPU监控,CPU温度监控,大屏看板,docker监控,网络流量监控,内存监控,业务数据监控(mysql,oracle,pg等),服务心跳检测,应用进程管理,磁盘IO监控,端口监控,日志文件监控,系统负载监控,监控告警信息推送。

1.采用服务端和客户端协同工作方式,更轻量高效,默认可支持500+主机监控。

2.server端负责处理数据,生成图表展示,告警信息推送。agent端负责定时(1分钟)上报主机数据。

3.支持主流平台安装部署,如Linux, Windows, Solaris, AIX, HP-UX等。

4.支持邮件告警,也支持自定义告警脚本执行,在脚本中可集成微信,钉钉,短信等告警方式。

5.server支持水平扩容,在集群状态下,可支持5000+主机在线监控。

6.支持多数据源监控,自定义sql脚本执行,实时监控业务数据变化。

7.公众看板服务,支持游客浏览主机监控概要信息,无需登陆,可随时开启关闭看板服务。

官网

WGCLOUD - 极简运维监控系统 - 官网

官方文档

下载安装包 - WGCLOUD

oschina

WGCLOUD首页、文档和下载 - 运维监控平台 - OSCHINA - 中文开源技术交流社区

git 源码下载

GitHub - tianshiyeben/wgcloud: Linux运维监控工具,支持系统硬件信息,内存,cpu,温度,磁盘空间及IO,硬盘smart,系统负载,网络流量等监控,服务接口,大屏展示,拓扑图,进程监控,端口监控,docker监控,文件防篡改,日志监控,数据可视化,web ssh,堡垒机,指令下发批量执行,Linux面板(探针),SNMP,故障告警

————————————————

二、MariaDb(Mysql)数据库安装、数据库初始化

登陆mysql

mysql -uroot -p【密码】

创建数据库

create database wgcloud;

选择新建的数据wgcloud

use wgcloud;

执行初始化脚本

source /root/wgcloud-v3.4.0/wgcloud-MySQL.sql;

三、server 配置

进入 wgcloud 的 server 目录并查看文件列表

进入 server 配置文件目录

[root@10-18-93-156 server]# cd config/

[root@10-18-93-156 config]# ll

总用量 12

-rw-r--r-- 1 root root 7854 2月 24 14:10 application.yml

-rw-r--r-- 1 root root 91 2月 24 14:10 daemon.properties

server配置文件说明

1.配置文件server/config/application.yml,除标红需要修改外,其他暂时默认即可,后续可根据实际场景再修改

将标红数据库连接信息,改为自己的mysql数据库连接信息

自定义登陆账号密码,如标红部分admin/111111,暂时默认即可

wgToken为server和agent通信密钥,server和agent配置要保持一致,暂时默认即可

如果想修改server访问端口,将9999改为自己的端口(不能和守护进程端口相同),同时访问时也用修改后的端口,暂时默认即可

server所在主机的9997端口(暂时默认即可)要开放给agent访问,否则agent日志里会出现防篡改校验失败的信息,agent会通过"http://server主机IP:9997"来获取防篡改校验信息,如何修改守护进程端口

server配置文件为yml格式,所有配置的地方冒号后必须紧跟一个空格,注意是空格。wgToken: wgcloud

如何实现微信告警和钉钉告警

编辑配置文件

[root@10-18-93-156 config]# vi application.yml

配置信息详情

server:
  port: 9999
  servlet:
    session:
      timeout: 120m
    context-path: /wgcloud
#日志文件输出路径
logging:
  path: ./log
# 数据库 相关设置
spring:
  application:
    name: wgcloud-server
  datasource:
    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: 【Mysql 数据库密码,默认 111111】
    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
  #通信token,agent端和此保持一致
  wgToken: wgcloud
  #是否开启公众看板,yes开启,no关闭,公众看板页面无需登陆
  dashView: yes
  #数据表监控间隔,单位秒,默认60分钟
  dbTableTimes: 3600
  #服务接口监控间隔,单位秒,默认10分钟
  heathTimes: 600
  #告警缓存时间间隔(此时间段内不再重复告警),单位秒,默认60分钟
  warnCacheTimes: 7200
  #监控数据保留天数,默认10天
  historyDataOut: 10
  #节点类型,master或slave,一个集群只能有一个master和N个slave
  nodeType: master
  #server/logo/下的ico图标名称,32*32,如favicon.png,此功能需升级到专业版
  icoUrl:
  #server/logo/下的logo图标名称,120*120,如logo.png,此功能需升级到专业版
  logoUrl:
  #软件名称,如wgcloud运维监控系统,此功能需升级到专业版
  wgName:
  #简称,如wgcloud,此功能需升级到专业版
  wgShortName:

#告警配置
mail:
  #告警总开关,yes开启,no关闭
  allWarnMail: yes
  #监控主机内存使用率%报警值,超过此值即发送邮件报警
  memWarnVal: 99
  #监控主机cpu使用率%报警值,超过此值即发送邮件报警
  cpuWarnVal: 99
  #cpu温度报警值℃,超过此值即发送邮件报警
  cpuTemperatureWarnVal: 92
  #磁盘使用率%报警值,超过此值即发送邮件报警
  diskWarnVal: 99
  #不需要告警磁盘在此屏蔽,多个盘符用,隔开,如/boot,/dev
  diskBlock: /dev
  #内存告警,yes开启,no关闭。总开关开启后,此处设置才会生效。以下开关均遵循此规则。
  memWarnMail: yes
  #CPU告警,yes开启,no关闭
  cpuWarnMail: yes
  #CPU温度告警邮件,yes开启,no关闭
  cpuTemperatureWarnMail: yes
  #磁盘使用率告警,yes开启,no关闭
  diskWarnMail: yes
  #主机下线告警,yes开启,no关闭
  hostDownWarnMail: yes
  #进程下线告警,yes开启,no关闭
  appDownWarnMail: yes
  #服务接口告警,yes开启,no关闭
  heathWarnMail: yes
  #数据源连接失败,告警,yes开启,no关闭
  dbDownWarnMail: yes
  #日志文件监控,告警,yes开启,no关闭
  fileLogWarnMail: yes
  #端口telnet不通,告警,yes开启,no关闭
  portWarnMail: yes
  #告警脚本绝对路径(若配置脚本,无论是否配置过邮件,都会执行该脚本),可以为空,参考模板:server/template/sendMsg.sh
  warnScript: 

进入 wgcloud 的 server 并启动 server 服务

cd /root/wgcloud-v3.4.0/server

启动服务

[root@10-18-93-156 server]# ./start.sh

启动效果

./wgcloud-server-release.jar

wgcloud-server程序开始启动

./wgcloud-daemon-release

wgcloud-daemon程序开始启动

四、编辑 客户端(被监控服务器)的配置文件

进入客户的文件目录

[root@localhost ~]# cd /root/wgcloud-v3.4.0/agent

编辑客户剬配置文件

cd config/

[root@10-18-93-156 config]# vi application.properties

agent配置文件说明

1.配置文件agent/config/application.properties,除标红需要修改外,其他暂时默认即可
#wgcloud-server端访问地址,端口一定要写,即使是80也要写哈
serverUrl=http://192.168.11.200:9999
#本机ip,可以为空,为空时候默认取计算机名称,计算机名称不要超过50个字符
bindIp=192.168.11.200
#通信token,请和server端配置的wgToken保持一致
wgToken=wgcloud
#给server端上报数据频率,单位秒,个人版值不能小于60,专业版值不能小于30
submitSeconds=120
#server主机的守护进程端口
daemonPort=9997
wgToken为agent和server通信的密钥,相当于密码,可以自定义为自己的配置密码,暂时保持默认即可










[root@10-18-93-156 config]# cat application.properties
#v3.4.0
#wgcloud-server端web访问地址,将下方替换为server主机IP和端口即可,端口一定要写,即使是80也要写哈
serverUrl=http://localhost:9999

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

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

#给server端上报数据频率,单位秒,个人版值不能小于120,专业版值不小于30。此值建议不要大于600
submitSeconds=30

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

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

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

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

#关联成员登录账号,默认为空
account=

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

注意
agent配置文件为properties类型,因此等号后面不需要保留空格
若无批量上传工具,可以使用常用工具里的批量上传工具
进入客户端,启动客户端服务

[root@10-18-93-156 agent]# cd /root/wgcloud-v3.4.0/agent

启动服务

[root@10-18-93-156 agent]# ./start.sh

五、启动服务注意事项

1.server启动

注意:linux检查文件是否有可执行权限,若无,则赋给可执行权限

start.sh启动服务,stop.sh停止服务

win下用start.bat启动,启动后不可关闭黑窗口,停止服务关掉黑窗口即可

启动后通过http://192.168.1.1:9999/wgcloud访问登陆页面,把192.168.1.1改为自己的实际IP和端口,默认登陆账号密码:admin/111111

2.agent启动

注意:linux检查文件是否有可执行权限,若无,则赋给可执行权限

start.sh启动服务,stop.sh停止服务

win下用管理员身份启动wgcloud-agent-release.exe,启动后不可关闭黑窗口,停止服务关掉黑窗口即可,若需要注册windows服务,请点击常用基础工具集合下载 - WGCLOUD

六、浏览器配置、展示

地址栏录入登录地址
http://10.18.93.156:9999/wgcloud
账号、密码是上文配置的
默认
#登陆账号
account: admin
#登陆账号的密码
accountPwd: 111111

监控概况

主机管理

端口管理列表

日志监控

日志监控列表

数据源管理

数据源监控列表

数据表管理

数据表监控列表

服务接口管理

主机

七、配置邮件告警

邮件告警配置比较简单,不过还是写一下,因为有时候大家可能会忽略一些细节

本文以qq邮箱发送为例说明,邮件告警配置成功后,所有告警通知都会自动发送邮件,如果不想接收邮件了,删除邮件告警设置即可。

qq邮件发送需要注意的地方,邮件发送密码不是qq登陆密码,而是授权码,需要去邮箱手动获取,下图是标识怎么获取qq邮箱的授权码,点击邮箱设置->账户->生成授权码

记得在账户下设置开启SMTP服务,然后点击【生成授权码】,得到授权码后先保存下来,后面要用

ivoxyoemrlbzfbgb

下面开始设置邮件告警

设置完成后,点击【测试发送】,就可以接收到邮件了,到这就设置完成了。

八、内网、局域网,无法访问外网,想使用一键部署agent脚本也可以的

1、将需要部署的agent安装包,下载并复制到/server/logo/文件夹下

提示:/server/logo/目录也可以作为资源下载仓库,访问路径http://[server主机IP:9999]/wgcloud/resources/

2、将installAgent.sh脚本,下载并复制到/server/logo/文件夹下

3、编辑installAgent.sh,

将如下脚本里面的https://www.wgstart.com/download/${versionStr}/改为http://[server主机IP:9999]/wgcloud/resources/

测试如下,下载成功

注意,这里9999是server的默认端口,如果已经修改过端口了,改为自己的实际server端口

#!/bin/sh
paramServerUrl=$1
tarFileName=$2
paramBindIp=$3

echo "paramServerUrl------${paramServerUrl}"
echo "tarFileName------${tarFileName}"
echo "paramBindIp------${paramBindIp}"

dirName=${tarFileName//.tar.gz/}

echo "开始下载${tarFileName}------"
wget --no-check-certificate "http://10.18.93.156:9999/wgcloud/resources/${tarFileName}"
echo "下载完成------"
tar -xvf ${tarFileName}
cd ./${dirName}/


echo "修改config/application.properties的配置项serverUrl------"
sed -i "s#^serverUrl=.*#serverUrl=${paramServerUrl}#g"  ./config/application.properties
if [ -n "$paramBindIp" ]; then
 sed -i "s#^bindIp=.*#bindIp=${paramBindIp}#g"  ./config/application.properties
fi
echo "修改完成------"

chmod +x start.sh

echo "部署下载已完成,开始启动agent------"

sh start.sh

然后就可以在被监控主机执行内网版的一键部署脚本了,下面示例脚本是在被控主机部署agent-linux-amd64-v3.4.0.tar.gz,如下

如果想要部署其它agent包,将脚本中的agent-linux-amd64-v3.4.0.tar.gz替换成其它agent安装包的名称即可,比如替换为agent-linux-arm64-v3.4.0.tar.gz,agent安装包名称列表

wget --no-check-certificate http://10.18.93.156:9999/wgcloud/resources/installAgent.sh; bash installAgent.sh http://10.18.93.156:9999 agent-linux-arm64-v3.4.0.tar.gz

如果想要设置被控主机的bindIp(agent本身可以自动获取被控主机IP,但是有时候agent自动获取IP不一定准确),那么用下面这个脚本,把下面[bindIp]替换为自己的agent被控主机实际IP

[root@VM-0-14-centos /]# mkdir wgcloud

[root@VM-0-14-centos /]# cd wgcloud

[root@VM-0-14-centos wgcloud]# wget --no-check-certificate http://[server主机IP:9999]/wgcloud/resources/installAgent.sh; bash installAgent.sh http://localhost:9999 agent-linux-amd64-v3.4.0.tar.gz [bindIp]

九、配置飞书告警

此文是Linux部署server用shell实现飞书告警,windows部署server用bat实现飞书告警点击此处

在群聊中添加机器人
进入群聊,打开群设置,找到群机器人,并点击添加机器人。选择自定义机器人加入群聊。

添加该机器人进群,设置机器人头像、名称和描述(随便写就可以了),然后点击下一步。

配置webhook,可根据需求选择一种及以上安全设置的方式(先不选,成功后再根据自己实际场景调整),复制并保存此页面的参数,最后点击完成。

使用机器人发送消息
请保管好 webhook 地址。 不要公布在 Github、博客等可公开查阅的网站上。地址泄露后可能被恶意调用发送垃圾信息

新建/home/testmsg.sh文件,此处目录和文件名称是为测试方便,自己可以根据实际场景自定义,内容如下

#!/bin/bash
content=${@:1}
content=${content//\<font color=\'red\'\>/}
content=${content//\<\/font\>\<\/br\>/}
content=${content//\ /}
content=${content//\"/}
time3=$(date "+%H:%M:%S")
content="$time3,$content"
echo "warn content is : $content"

#飞书机器人webhook 地址
api=https://open.feishu.cn/open-apis/bot/v2/hook/58298exxxxxxxxxxxxxxxxxxxxxx


curl -X POST \
  $api \
  -H 'Content-Type: application/json' \
    -d '{
    "msg_type": "post",
    "content": {
        "post": {
            "zh_cn": {
                "title": "WGCLOUD告警",
                "content": [
                    [
                        {
                            "tag": "text",
                            "text": "'$content'"
                        }
                    ],
                    [

                    ]
                ]
            }
        }
    }
}'

记得给testmsg.sh文件添加可执行权限

chmod +x testmsg.sh

测试过程中,将xxxxxxxx那行内容,替换为自己的实际webhook地址

sh /home/testmsg.sh 测试告警

  • 18
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值