ZbxTable Go语言开发的开源Zabbix报告系统

Posted 我的紫霞辣辣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZbxTable Go语言开发的开源Zabbix报告系统相关的知识,希望对你有一定的参考价值。

系统介绍

ZbxTable 是使用 Go 语言开发的一个开源的 Zabbix 报表系统。 基本功能如下:

1. 导出监控指标特定时间段内的详情数据与趋势数据到 xlsx

2. 导出特定时间段内 Zabbix 的告警消息到 xlsx

3. 对特定时间段研内的告警消息进行分析,告警 Top10 等

4. 按照主机组导出巡检报告

5. 对 Zabbix 图形按照数类型进行显示和查看并支持导出到 pdf

6. 主机未恢复告警显示和查询

系统架构

组件介绍

ZbxTable 官方文档

ZbxTable使用 beego 框架编写的后端程序
ZbxTable源码

ZbxTable-Web使用 React 编写的前端
ZbxTable-Web源码

MS-Agent安装在 Zabbix Server 上,用于接收 Zabbix Server 产生的告警,并发送到 ZbxTable 平台
MS-Agent源码

兼容性

zabbix版本兼容性
5.4.x支持
5.2.x支持
5.0.x LTS支持
4.4.x支持
4.2.x支持
4.0.x LTS支持
3.4.x支持
3.2.x支持
3.0.x LTS支持

部署ZbxTable工具

下载组件包(zbxtable,zbxtable-web,ms-agent)

# 下载 rpm 包
rpm -Uvh https://repo.cactifans.com/zbxtable/1.0/rhel/7/x86_64/zbxtable-release-1.0-1.el7.noarch.rpm
yum clean all
yum makecache

# 安装 Zbxtable
yum -y install zbxtable

# 安装 Zbxtable-Web
yum -y install zbxtable-web

# 安装 ms-agent
yum -y install ms-agent

数据库初始化

# 数据库初始化,创建数据库及用户
mysql -uroot -p123
create database zbxtable character set utf8 collate utf8_bin;
create user zbxtable@localhost identified by '123';
grant all privileges on zbxtable.* to zbxtable@localhost;
quit;

Zbxtable 配置

# 生成配置文件
cd /usr/local/zbxtable/
./zbxtable init
# ✔ mysql
# DBHost: localhost
# DBName: zbxtable
# DBUser: zbxtable
# DBPass: 123
# DBPort: 3306
# Connected to database zbxtable successfully!
# Zabbix Web URL: http://192.168.15.7/zabbix
# Zabbix Username: Admin
# Zabbix Password: zabbix
# Connected to Zabbix API successfully!Zabbix version is  5.0.17
# The configuration information is as follows:
# ZbxTable dbtype: mysql
# ZbxTable dbhost: localhost
# ZbxTable dbname: zbxtable
# ZbxTable dbuser: zbxtable
# ZbxTable dbpass: 123
# ZbxTable dbport: 3306
# Zabbix Web URL: http://192.168.15.7/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!
# 二维码

# 查看配置文件
cat conf/app.conf
# ; zbxtable
# appname         = zbxtable
# httpport        = 8084
# runmode         = prod
# timeout         = 12
# token           = 2144aa207c6c4ea9acf1a6b76e4adfeb
# copyrequestbody = true
# ; database
# dbtype          = mysql
# dbhost          = localhost
# dbuser          = zbxtable
# dbpass          = 123
# dbname          = zbxtable
# dbport          = 3306
# ; zabbix
# zabbix_web      = http://192.168.15.7/zabbix
# zabbix_user     = Admin
# zabbix_pass     = zabbix

启动

# 修改好配置后,使用以下命令启动
systemctl enable --now zbxtable
systemctl restart zbxtable

部署Zbxtable-Web工具

nginx官方源

# 配置nginx官方源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Zbxtable-Web 配置

# 下载nginx软件
yum -y install nginx

# 复制nginx配置文件
cp /usr/local/zbxtable/nginx.conf /etc/nginx/conf.d/

# 启动nginx服务
systemctl restart nginx
systemctl enable nginx

# 使用http://ip:8088 即可访问系统,系统默认账号:admin 密码:Zbxtable

部署 ms-agent 工具

这个程序必须部署在Zabbix Server上!!!作用:接收Zabbix平台产生的告警并发送到ZbxTable平台。

ms-agent 工具下载网址:https://dl.cactifans.com/zabbix/ms-agent-1.0.0-1.el7.x86_64.rpm

初始化配置

cd /usr/local/zbxtable
./zbxtable install
# 2021/11/02 14:52:15.235 [I] [command.go:163]  Create media type successfully!
# 2021/11/02 14:52:15.263 [I] [command.go:163]  Create user group successfully!
# 2021/11/02 14:52:15.345 [I] [command.go:163]  Create alarm user successfully!
# 2021/11/02 14:52:15.345 [I] [command.go:163]  Username :ms-agent
# 2021/11/02 14:52:15.345 [I] [command.go:163]  Password : PSFGcJiHsx
# 2021/11/02 14:52:15.411 [I] [command.go:163]  Create alarm action successfully!
# 2021/11/02 14:52:15.411 [I] [command.go:163]  MS-Agent plugin configured successfully!
# 2021/11/02 14:52:15.411 [I] [command.go:163]  MS-Agent token is 2144aa207c6c4ea9acf1a6b76e4adfeb

表示配置成功.此步骤会在 Zabbix Server 创建 ms-agent,密码为随机,并配置相关 Action 和 Media Type,并关联到用户.

修改ms-agent配置文件

# 配置文件
vim /etc/ms-agent/app.ini 
[app]
Debug = 1
# TenantID = zabbix01
LogSavePath = /tmp
Host = http://192.168.15.7:8088/v1/receive
Token = 2144aa207c6c4ea9acf1a6b76e4adfeb

# Debug 为程序日志级别 0 是 debug,1 为 info
# LogSavePath 为日志目录,默认为/tmp 目录
# Host 为 ZbxTable 系统地址,默认为 http 服务器 IP+/v1/receive
# Token 与 ZbxTable 通信的 Token,可自行修改,需要与 ZbxTable 平台配置保持一致即可,否则无法接收告警。

部署完成


以上是关于ZbxTable Go语言开发的开源Zabbix报告系统的主要内容,如果未能解决你的问题,请参考以下文章

Go Cloud项目开源发布:Go语言将成为云端应用开发的首选语言?

华为开源产品级 Go 语言微服务框架 Go Chassis | 软件推介

Go语言诞生5周年!10大Go语言开源项目推荐

Go语言入门

证明Go语言的强大,没这10个开源项目不行

Go语言开发的灵活管理资源的开源CMDB