家庭数据中心系列 通过wgcloud部署自己的运维监控系统(上):搭建篇
本文最后更新于 276 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。

前言

在我的群站的实时健康监测及报警这一块,我一直使用的是uptime-kuma + bark server的组合(具体搭建及配置参见:docker系列 搭建基于bark server的消息推送服务器docker系列 搭建基于uptime和bark的应用实时健康监测及报警系统)。

不过,讲道理,这个组合我最主要用到的还是实时报警功能,很少去看uptime-kuma的实时监测页面,原因有如下几点:
1、的确没有必要一直盯着uptime-kuma的实时监测页面看(除非像真甲方一样有专门的运维人员)
2、uptime-kuma的监控方式都是采用的外部探测的方式,角度较为单一,盯着看也看不出啥名堂,比如:某台设备流量多大?某个docker或者某台主机的资源消耗是否异常?哪些主机上有工作异常的进程?某台主机上某个进程占用的cpu、内存是多少?某台主机上的日志中是否有指定关键字的报错?某台主机上某个关键的文件是否被篡改过?某个数据库的某个表的内容是否达到某个阈值等等。
3、uptime-server本身的监控展现页面也比较单调,逼格颇低:

image.png

基于以上原因,uptime-kuma + bark server这一套组合我一直就只是当实时报警系统来用,就没觉得有实时监测方面的功能。

前几天忽然心血来潮,专门研究了下(免费的)运维监控系统,没想到还真让我找到一款符合我心意的:wgcloud,虽然略有瑕疵(免费版各功能的对象都有10个的上限),但是总体而言算是达到了我的要求:前面提到uptime-kuma不能做的都能实现,并且展现界面也有品味多了,最终效果如下:

image.png

本文(上篇)就详细记录一下wgcloud的部署过程,具体配置在下篇中介绍。

部署wgcloud

环境准备

安装java环境

WGCLOUD的server可以运行在JDK1.8、JDK11或更高版本JDK,OpenJDK也支持
我用的debian 12,所以采用如下步骤:
1、更新软件源

apt update

2、安装默认OpenJDK 11

apt-get install default-jdk

3、验证java是否安装成功

java -version

image.png

其他系统的安装方式参见官方说明:https://www.wgstart.com/help/docs7.html

注:只有server端需要部署JDK,只是agent的主机不需要部署。

创建数据库(可选)

wgcloud需要使用数据库,支持的数据库(数据源):MySQL(MySQL 5.X和MySQL 8.X都可以)、MariaDB、Oracle、PostgreSQL(推荐10版本或以上)。以上数据库任选一种即可,也支持国产数据库openGauss和OceanBase。大家可以根据自己的使用习惯来进行选择,我其他的应用mariadb用得的比较多,所以有现成的,就直接选择mariadb了(mysql也可以,但是有选择的情况下永远优先mariadb)。

wgcloud需要利用现成的数据库(我这里是mariadb)中的对应库并进行初始化配置,如果还没有数据库,则需要新建。


创建新mariadb数据库的流程建议如下:
创建宿主机上需要挂载到mariadb容器中的目录

mkdir -p /docker/mariadb/db

创建mariadb容器

docker run --name=mariadb01 -d --restart=always \
  -p 3306:3306 \ #映射宿主机的3306端口到容器的3306端口
  -v /docker/mariadb/db:/var/lib/mysql \ # 挂载前面创建的宿主机目录到容器内部指定目录
  -e MARIADB_ROOT_PASSWORD=123 \ #指定数据库root用户对应的密码,这个大家自行修改
  mariadb:10.11

在mariadb中新建wgcloud库

具体请参考我另一篇文章:奇技淫巧系列 新建空数据库以及给对应用户赋予权限,下文中假定初始化后库名称、对应的用户名和密码均为"wgcloud"。

部署wgcloud server端和agent端

下载server端并解压缩

wgcloud在github的下载链接如下:https://github.com/tianshiyeben/wgcloud/releases,我安装时候最新版的releases是wgcloud-v3.5.1.tar.gz(记得是下server端)。另外,v3.x版本是免费不开源商业版,免费开源版我这个时候是v2.3.7。

下载完成后,将server端解压缩到特定目录,我这里就直接放在/root目录下,然后解压缩:

cd ~
tar -zxvf wgcloud-v3.5.1.tar.gz

解压缩后的目录wgcloud-v3.5.1.tar.gz的文件结构如下:

image.png


有以下注意事项:
1、server端目录里自带agent客户端,如果只是单agent的主机,也建议放在相同路径下,这样方便升级。
2、server和agent部署都是解压后,对配置文件稍作必要修改,就可以启动运行了,不用编译
3、server端只部署一个就行,所有agent向这个server单向上报指标数据
4、有多少台主机需要监控,就部署多少个agent(即使是server主机需要监控也要启动agent)
5、server和agent需要保持相同的版本
6、监控主机信息由agent自动采集上报,因此server端主机列表页面不能添加主机。agent部署好启动后,就可以在【主机管理】页面看到监控主机了
7、wgcloud-daemon-release为守护进程,执行server/start.sh会同时启动wgcloud-server-release.jar和wgcloud-daemon-release,守护进程不要关闭,server要和守护进程进行通信
8、server和agent所在主机系统时间需要保持一致,即使有差异,时间差应不超过15个小时(此时间差内agent打印防篡改校验失败信息,请忽略即可,不影响监测采集)
9、注意不要编辑/修改server/wgcloud-server-release.jar,否则agent日志将出现防篡改校验失败的信息,达到一定周期后将不再上报数据
10、如果agent不能直连访问server,可以通过代理wgcloud-proxy,实现将数据中转上报给server
11、如果是在Windows部署运行server,尽量不要让server所在目录路径中有空格(如C:\Program Files (x86)\wgcloud),有时候低版本windows会因路径中有空格而导致启动不了的问题
12、server和agent可以混用,只要保持同一版本即可。即server运行在linux上,agent可以运行在linux也可运行在windows上,反之也可以


初始化wgcloud库

/root/wgcloud-v3.5.1目录中有3个sql文件:

image.png

因为我用的mariadb,所以初始化文件选择:wgcloud-MySQL.sql

应用wgcloud-MySQL.sql文件的方式很多,以phpmyadmin为例:

image.png

初始化完成:
image.png

当然,也可以用命令行格式导入,如下:

mysql -u root -p -h 127.0.0.1 #数据库IP根据实际情况修改,如果非默认的3306,就用-P参数后加端口
use wgcloud;
source /root/wgcloud-v3.5.1/wgcloud-MySQL.sql

配置application.yml文件

wgcloud server的数据库指向由/root/wgcloud-v3.5.1/server/config/application.yml文件里的如下内容决定:

image.png

我的实际配置如下:
image.png

"application.yml"文件中其他重要参数如下,包括管理员的用户名密码、web ssh、集群功能等,大家可以根据自己的需要进行修改,一般除了管理员的用户名、密码,其他保持默认即可:

#核心配置参数
base:
  #管理员登陆账号
  account: admin
  #管理员登陆账号的密码
  accountPwd: 111111
  #是否开启免密登录,yes开启,no关闭,此功能开启需升级到专业版
  openSSO: no
  #server和agent的通信密钥,server和agent配置文件中的wgToken值要保持一致
  wgToken: wgcloud
  #每页显示多少条数据,建议不小于10
  pageSize: 20
  #是否开启web ssh客户端,yes开启,no关闭
  webSsh: yes
  #web ssh客户端的服务端口,如果要使用web ssh,那么server主机的9998端口要在防火墙放行,不用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
  #监控数据趋势折线图,每个图表每次查询时最多展现的数据量,若数据量超过此值,系统则会自动均衡化处理数据,最终保留的数据量等于此值,主要为防止图表一次展示过多数据导致浏览器卡顿,配置为0表示不压缩均衡化处理数据
  chartDataMaxShowValue: 4000
  #节点类型,master或slave,一个集群只能有一个master和N(最多31)个slave,如:slave1,slave2
  nodeType: master
  #是否开启使用标签,yes开启,no关闭
  hostGroup: no

启动服务端

cd /root/wgcloud-v3.5.1/server
ls -l

image.png
如果没有执行权限,使用如下命令添加:

chmod +x start.sh
chmod +x stop.sh

启动wgcloud的server端:

sh start.sh #重启也是用该命令,如需停止进程,则使用sh stop.sh

结果如下:

image.png

注1:启动server,会同时启动守护进程wgcloud-daemon-relese,不要关闭守护进程。
注2:如果部署wgcloud server端的主机有防火墙或者安全组,需要放开9999端口和9998端口(9998是web ssh端口,如果不需要可以不放开)。

启动agent端

agent也有对应的配置文件,其路径是:

/root/wgcloud-v3.5.1/agent/config/application.properties

在agent的配置文件里需要修改的只有serverUrl这一条,需要修改为server的地址,不过唯一例外的是server端本身的agent,可以不用修改:

image.png

注1:wgToken为agent和server通信的密钥,相当于密码,可以自定义为自己的配置密码(需要和server/config/application.yml中的wgToken值一致),暂时默认即可
注2:agent主动单向给server上报采集数据,agent主机不需要开启任何端口,因为server不会访问agent。

启动agent和上一节启动server是一样的,就是所在目录不一样:

cd /root/wgcloud-v3.5.1/agent
ls -l

image.png

启动wgcloud的agent端:

sh start.sh #重启也是用该命令,如需停止进程,则使用sh stop.sh

结果如下:

image.png

其他版本的agent请自行下载,就在server端下载的同一个release链接中。

如果需要设置agent开机启动,linux可以参看我另一篇文章:debian系列 设置命令或脚本开机启动的3种常见方式,macos可以通过将脚本加入登录项,win版的agent通过运行regAgentService.bat的批处理文件将agent注册为服务,然后直接将服务设置为开机启动即可,我这里就不多说了,都很简单。

下篇(功能篇)参见:家庭数据中心系列 通过wgcloud部署自己的运维监控系统(下):功能篇

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       

本站已禁用鼠标右键和各种快捷键,代码块内容可以直接在右上角点击复制按钮进行复制

zh_CN