@Zabbix报表系统ZbxTable
文章目录
1.ZbxTable概述
ZbxTable 是使用 Go 语言开发的一个开源的 Zabbix 报表系统
2.ZbxTable功能介绍
#主要特点:
1)导出监控指标特定时间段内的详情数据与趋势数据到 xlsx
2)导出特定时间段内 Zabbix 的告警消息到 xlsx
3)对特定时间段研内的告警消息进行分析,告警 Top10 等
4)按照主机组导出巡检报告
5)对 Zabbix 图形按照数类型进行显示和查看并支持导出到 pdf
6)主机未恢复告警显示和查询
3.ZbxTable系统架构
4.ZbxTable组件介绍
#相关组件
ZbxTable: 使用 beego 框架编写的后端程序
ZbxTable-Web: 使用 React 编写的前端
MS-Agent: 安装在 Zabbix Server 上,用于接收 Zabbix Server 产生的告警,并发送到 ZbxTable 平台
5.ZbxTable线上体验
6.ZbxTable版本兼容性
Zabbix版本 | 组件兼容性 |
---|---|
zabbix5.4.x | 支持 |
zabbix5.2.x | 支持 |
zabbix5.0.x LTS | 支持 |
zabbix4.4.x | 支持 |
zabbix4.2.x | 支持 |
zabbix4.0.x LTS | 支持 |
zabbix3.4.x | 支持 |
zabbix3.2.x | 支持 |
zabbix3.0.x LTS | 支持 |
7.ZbxTable安装包
RPM包与源码包
1)源码包
2)RPM包
8.ZbxTable安装部署
1)组件安装
#安装源
[root@server ~]# rpm -Uvh https://repo.cactifans.com/zbxtable/1.0/rhel/7/x86_64/zbxtable-release-1.0-1.el7.noarch.rpm
Retrieving https://repo.cactifans.com/zbxtable/1.0/rhel/7/x86_64/zbxtable-release-1.0-1.el7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zbxtable-release-1.0-1.el7 ################################# [100%]
#组件下载
#安装 Zbxtable
[root@server ~]# yum -y install zbxtable
#安装 Zbxtable-Web
[root@server ~]# yum -y install zbxtable-web
#安装 ms-agent
[root@server ~]# yum -y install ms-agent
2)数据库部署
# 安装数据库,创建ZbxTable数据库用户
[root@server ~]# mysql -uzabbix -p"Password@2022"
#本地创建方式:
mysql> create database zbxtable character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> create user zbxtable@localhost identified by 'Hzl@2022';
Query OK, 0 rows affected (0.03 sec)
mysql> grant all privileges on zbxtable.* to zbxtable@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> quit;
Bye
#远程方式指定
mysql> create database zbxtable character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> create user zbxtable@'%' identified by 'Hzl@2022';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on zbxtable.* to zbxtable@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> quit;
Bye
3)ZbxTable系统初始化
#初始化
[root@server ~]# cd /usr/local/zbxtable/
[root@server zbxtable]# ll
total 33592
drwxr-xr-x 5 nginx nginx 4096 Mar 31 20:56 web
-rwxr-xr-x 1 zbxtable zbxtable 34392786 Aug 14 2021 zbxtable
[root@server zbxtable]# ./zbxtable init
✔ mysql
DBHost: localhost #选择存储的数据库,默认选择本地吧
DBName: zbxtable #选择的数据库
✔ DBUser: zbxtable█ #数据库的登录用户
✔ DBPass: Hzl@2022█ #数据库的密码
DBPort: 3306
Connected to database zbxtable successfully!
Zabbix Web URL: http://20.212.232.106/zabbix #指定调用的zabbix web URL
✔ Zabbix Username: Admin█
✔ Zabbix Password: zabbix█
Connected to Zabbix API successfully!Zabbix version is 5.0.21 #获取URL当前zabbix server版本状态
The configuration information is as follows:
ZbxTable dbtype: mysql
ZbxTable dbhost: localhost
ZbxTable dbname: zbxtable
ZbxTable dbuser: zbxtable
ZbxTable dbpass: Hzl@2022
ZbxTable dbport: 3306
Zabbix Web URL: http://20.212.232.106/zabbix
Zabbix Username: Admin
Zabbix Password: zabbix
✔ Yes
The configuration file ./conf/app.conf is generated successfully!
Follow WeChat public account to get the latest news!
#zbxTable博主的公众号
######################################################################
######################################################################
######################################################################
###### ###### ###### ## ## ######
###### ########## #### ######## ## #### ########## ######
###### ## ## ## #### #### #### ## ## ## ######
###### ## ## #### #### ## ######## ## ## ## ######
###### ## ## #### #### ###### ## #### ## ## ######
###### ########## ###### ## ## ## ########## ######
###### ## ## ## ## ## ## ## ## ######
###################### #### ## ## ## ## ######################
###### ## ###### #### ###### ##########
###### ######## #### ## ## #### #### #### ######
########## ## #### #### ## #### ## ## ######
######## ###### ###### ## ###### ## ## ########
########## ## ## ## ## #### #### ## #### ## ######
###### ###### #### #### ## ## ## #### ## ######
########## #### #### ## ######## #### #### ######
########## ## #### ## ## ## ## ## ## ########
########## #### ## ## ## ## ###### ######
########## #### ## ## #### ## ###### ## ######
###### ## ## ## ## ########## ## ######
######## ## ## ###### ## ########## ## ########
###### ######## ## #### ###### ###### ##############
###################### ## ## ## ## ###### ## ######
###### ## ######## #### ## ## ## ## ######
###### ########## ## ## ## ## ## ###### ###### ######
###### ## ## ## ## #### #### ############
###### ## ## #### ## ## #### #### ######
###### ## ## ## ## ## ## ## #### ######
###### ########## ## #### ###### ## ########## ########
###### ## ## ## #### #### ######
######################################################################
######################################################################
######################################################################
#生成的配置文件
[root@server zbxtable]# ll
total 48296
drwxr-xr-x 2 root root 4096 Mar 31 21:35 conf
-rwxr-xr-x 1 root root 733 Mar 31 21:32 control
-rwxr-xr-x 1 root root 15043584 Mar 31 21:32 msty.ttf
-rwxr-xr-x 1 root root 387 Mar 31 21:32 nginx.conf
drwxr-xr-x 5 nginx nginx 4096 Mar 31 20:56 web
-rwxr-xr-x 1 zbxtable zbxtable 34392786 Aug 14 2021 zbxtable
4)ZbxTable配置
1》当我们的配置ok后,会自动在zabbix上建立一个ms-agent用户,密码为随机,权限为管理员。最后输出MS-Agent token为MS-Agent 与ZbxTable通信的token,需要和MS-Agent 配置文件里的token保持一致,否则无法正常收到告警。
2》Token我们可以在conf/app.conf文件里找到
#查看当前初始化的主配置文件
[root@server zbxtable]# cat conf/app.conf
; zbxtable
appname = zbxtable
httpport = 8084
runmode = prod
timeout = 12
token = 47e4638ee8fd429e9b2c8b2096309cf6
copyrequestbody = true
; database
dbtype = mysql
dbhost = localhost
dbuser = zbxtable
dbpass = Hzl@2022
dbname = zbxtable
dbport = 3306
; zabbix
zabbix_web = http://20.212.232.106/zabbix
zabbix_user = Admin
zabbix_pass = zabbix
#主要配置信息如以下
appurl = http://ip:8088 #系统对外的访问地址
zabbix server info 为 zabbix server 的地址及账号密码
token 为 ms-agent 与 ZbxTable 平台通信的 token,可自行修改,与 ms-agent 配置的 token 保持一致即可,具体可查看 ms-agent 文档
ps:ms-agent文档(https://github.com/canghai908/ms-agent)
5)ZbxTable服务启动
#重启ZbxTable服务
[root@server ~]# systemctl restart zbxtable
#加入开机自启
[root@server ~]# systemctl enable --now zbxtable
Created symlink from /etc/systemd/system/multi-user.target.wants/zbxtable.service to /usr/lib/systemd/system/zbxtable.service.
#ZbxTable状态查看
[root@server ~]# systemctl status zbxtable
● zbxtable.service - zbxtable
Loaded: loaded (/usr/lib/systemd/system/zbxtable.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-03-31 21:56:34 CST; 36s ago
Main PID: 14804 (zbxtable)
Tasks: 5
Memory: 37.3M
CGroup: /system.slice/zbxtable.service
└─14804 /usr/local/zbxtable/zbxtable web
Mar 31 21:56:34 server bash[14804]: $$ / $$$$$$$\ | \$$$$ / $$ | $$$$$$$$ |$$$$$$$\ |$$ | $$$$$\
Mar 31 21:56:34 server bash[14804]: $$ / $$ __$$\ $$ $$< $$ | $$ __$$ |$$ __$$\ $$ | $$ __|
Mar 31 21:56:34 server bash[14804]: $$ / $$ | $$ |$$ /\$$\ $$ | $$ | $$ |$$ | $$ |$$ | $$ |
Mar 31 21:56:34 server bash[14804]: $$$$$$$$\ $$$$$$$ |$$ / $$ | $$ | $$ | $$ |$$$$$$$ |$$$$$$$$\ $$$$$$$$\
Mar 31 21:56:34 server bash[14804]: \________|\_______/ \__| \__| \__| \__| \__|\_______/ \________|\________|
Mar 31 21:56:34 server bash[14804]: 2022/03/31 21:56:34.627 [I] [web.go:47] Connected to database zbxtable successfully!
Mar 31 21:56:36 server bash[14804]: 2022/03/31 21:56:36.340 [I] [web.go:47] Connected to zabbix web successfully!Zabbix version is : 5.0.21
Mar 31 21:56:36 server bash[14804]: table `zbxtable_alarm` already exists, skip
Mar 31 21:56:36 server bash[14804]: table `zbxtable_manager` already exists, skip
Mar 31 21:56:37 server bash[14804]: 2022/03/31 21:56:37.463 [I] [asm_amd64.s:1371] http server Running on http://:8084
6)Zbxtable-Web 配置
Zbxtable Web需使用nginx
#web安装
[root@server ~]# yum install nginx -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
....
#web配置文件
[root@server ~]# cp /usr/local/zbxtable/nginx.conf /etc/nginx/conf.d/
#启动web
[root@server ~]# systemctl restart nginx
[root@server ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
7)测试访问
用http://ip:8088 即可访问ZbxTable系统
默认账号:admin 密码:Zbxtable
如启动失败或者出现错误错误,可修改通过需改程序配置文件,修改运行模式为 dev 模式,并重启 zbxtable,查看程序日志解决,日志位于 logs/zbxtable.log
9.ms-agent 安装部署
ms-agent 必须部署在 Zabbix Server 服务器,ms-agent 接收 zabbix 的告警消息,通过 http 协议发送到 ZbxTable 平台
ms-agent 需使用 zbxtable 命令完成在 Zabbix Server 的配置,包括创建用户,配置动作等配置。配置过程如下,确保 ZbxTable 配置文件里的 Zabbix Server 信息配置正确
1)配置ms-agent
[root@server ~]# cd /usr/local/zbxtable
[root@server ~]# ./zbxtable install
2020/07/18 23:22:16.881 [I] [install.go:43] Zabbix API Address: http://zabbix-server/api_jsonrpc.php
2020/07/18 23:22:16.881 [I] [install.go:44] Zabbix Admin User: Admin
2020/07/18 23:22:16.881 [I] [install.go:45] Zabbix Admin Password: xxxxx
2020/07/18 23:22:17.716 [I] [install.go:52] 登录zabbix平台成功!
2020/07/18 23:22:17.879 [I] [install.go:69] 创建告警媒介成功!
2020/07/18 23:22:18.027 [I] [install.go:82] 创建告警用户组成功!
2020/07/18 23:22:18.198 [I] [install.go:113] 创建告警用户成功!
2020/07/18 23:22:18.198 [I] [install.go:114] 用户名:ms-agent
2020/07/18 23:22:18.198 [I] [install.go:115] 密码:xxxx
2020/07/18 23:22:18.366 [I] [install.go:167] 创建告警动作成功!
2020/07/18 23:22:18.366 [I] [install.go:168] 插件安装完成!
#如上所示
表示配置成功.此步骤会在 Zabbix Server 创建 ms-agent,密码为随机,并配置相关 Action 和 Media Type,并关联到用户
# 配置文件
[root@Zabbix server ~]# vim /etc/ms-agent/app.ini
[app]
Debug = 1
# TenantID = zabbix
LogSavePath = /tmp
Host = http://1.116.153.193:8088/v1/receive
Token = 2144aa207c6c4ea9acf1a6b76e4adfeb
# Debug 为程序日志级别 0 是 debug,1 为 info
# LogSavePath 为日志目录,默认为/tmp 目录
# Host 为 ZbxTable 系统地址,默认为 http 服务器 IP+/v1/receive
# Token 与 ZbxTable 通信的 Token,可自行修改,需要与 ZbxTable 平台配置保持一致即可,否则无法接收告警。
2)安装ms-agent
部署在 Zabbix Server
部署环境:
程序 | 路径 | 作用 |
---|---|---|
ms-agent | /usr/lib/zabbix/alertscripts/ms-agent | 接收 Zabbix 平台产生的告警并发送到 ZbxTable 平台 |
app.ini | /etc/ms-agent/app.ini | ms-agent 配置文件 |
#下载安装包
[root@Zabbix server ~]# yum install https://dl.cactifans.com/zabbix/ms-agent-1.0.0-1.el7.x86_64.rpm -y
1》如果 Zabbix Server 的 alertscripts 目录不为/usr/lib/zabbix/alertscripts/ 需要移动 ms-agen 到你的 zabbix server 的 alertscripts 目录下即可,否则会在 Zabbix 告警页面出现找不到 ms-agent 的错误提示,也无法收到告警消息。
2》也可以修改 Zabbix Server 的配置文件,将 alertscripts 目录指向/usr/lib/zabbix/alertscripts/
3)zabbix server配置
#配置编辑
[root@Zabbix server ~]# vim /et/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
#重启zabbix server
[root@Zabbix server ~]# systemctl restart zabbix-server
本文来自博客园,作者:ଲ一笑奈&何,转载请注明原文链接:https://www.cnblogs.com/zeny/p/16088661.html