系统介绍
ZbxTable 是使用 Go 语言开发的一个开源的 Zabbix 报表系统,距离上次ZbxTable 1.0发布已有2年,随着Zabbix版本的变化,本次推出ZbxTable 2.0版本 主要功能如下:
- 按照主机类型,展示或导出主机资源
- 简单资产管理,资源状态总览
- 主机资源TOP5
- 多套Zabbix告警接入、统计、分析、导出
- 自定义绘制拓扑图,拓扑图可实时更新
- 链路流量自动报表及邮件通知
系统架构
组件介绍
ZbxTable: 使用 Beego 框架编写的后端程序
ZbxTable-Web: 使用 Vue 编写的前端
MS-Agent: 安装在 Zabbix Server 上,用于接收 Zabbix Server 产生的告警,并发送到 ZbxTable 平台
相关文档
安装文档:https://zbxtable.cactifans.com/docs/install/
使用文档:https://zbxtable.cactifans.com/docs/usage/
安装使用视频:https://space.bilibili.com/274831847/channel/seriesdetail?sid=2430406&ctype=0
在线体验
直接点击登录即可
https://zbx.cactifans.com
版本兼容
Zabbix版本 | 兼容性 |
6.0.x | ✅ |
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 | 未测试 |
源码及二进制包
1.源码
ZbxTable: https://github.com/canghai908/zbxtable
ZbxTable-Web: https://github.com/canghai908/zbxtable-web
MS-Agent: https://github.com/canghai908/ms-agent
2.二进制包
二进制包可用于部署在Linux系统,如CentOS,Ubuntu,Debian等Linux系统下
ZbxTable: https://dl.cactifans.com/zbxtable/zbxtable-2.0.0.tar.gz
ZbxTable-Web: https://dl.cactifans.com/zbxtable/web.tar.gz
MS-Agent: https://dl.cactifans.com/zbxtable/ms-agent-1.0.3.tar.gz
系统截图
系统默认账号:admin 密码:Zbxtable
系统首页
资产管理
状态总览
主机列表
主机详情
网络设备列表
网络设备详情
告警分析
告警查询
自定义拓扑图
拓扑图展示
链路报表
安装方法
安装
使用二进制方式部署ZbxTable
介绍使用二进制方式安装 zbxtable 2.1,适用于在 Centos、Ubuntu、Debian 等系统上安装,安装完成后必须进行数据初始化操作。
说明
建议新手直接使用编译好的二进制文件安装,zbxtable 可安装在 zabbix server 上也可以独立安装 ZbxTable 使用前后端分离模式,主要服务及组件如下
组件 | 功能 |
ZbxTable | 后台服务 |
ZbxTable-Web | 前端静态页面 |
MS-Agent | 安装在 Zabbix Server,接收 Zabbix 平台产生的告警并发送到 ZbxTable 平台 |
zbxtable 依赖以下服务
服务 | 用途 |
nginx | 前端 web 静态文件及服务转发 |
mysql 或 postgresql | 存储 zbxtable 用户信息,存储拓扑及报表信息 |
redis | 数据存储及告警 |
二进制文件下载:
ZbxTable: https://dl.cactifans.com/zbxtable/zbxtable-2.1.0.tar.gz
ZbxTable-Web: https://dl.cactifans.com/zbxtable/web.tar.gz
MS-Agent: https://dl.cactifans.com/zbxtable/ms-agent-1.0.4.tar.gz
安装配置视频
ZbxTalbe 2.1 安装
ZbxTable 2.1 数据初始化
ZbxTable 2.1 告警配置
ZbxTable 2.1 链路报表
ZbxTable 2.1 拓扑图配置
ZbxTable
部署
创建对应用户及目录,并下载 zbxtable 二进制文件,安装到/usr/local/zbxtable 目录
useradd zbxtablewget https://dl.cactifans.com/zbxtable/zbxtable-2.1.0.tar.gztar zxvf zbxtable-2.1.0.tar.gz -C /usr/local/mv /usr/local/zbxtable-2.1.0 /usr/local/zbxtablechown -R zbxtable:zbxtable /usr/local/zbxtable
即可完成文件部署
数据库配置
zbxtable 支持 mysql 或 postgresql,确保 mysql 或 postgresql 服务已经启动,根据实际情况创建对应的数据库及用户信息
mysql 数据库
# mysql -uroot -pcreate database zbxtable character set utf8mb4 collate utf8mb4_bin;create user zbxtable@127.0.0.1 identified by 'zbxtablepwd123';grant all privileges on zbxtable.* to zbxtable@127.0.0.1;quit;
postgresql 数据库
# su - postgrespsqlcreate user zbxtable with password 'zbxtablepwd123';create database zbxtable owner zbxtable;grant all on database zbxtable to zbxtable;\q
如果服务器未安装 redis 需要安装 redis,并启动,可使用默认密码,也可以配置密码, 以 CentOS 7 为例
yum install epel-release -yyum install redis -ysystemctl enable --now redis
配置文件
zbxtable 配置文件为程序目录下的 conf/app.ini
默认内容如下
; zbxtableappname = zbxtablehttpport = 8085runmode = devtimeout = 12token = de0c0d234f054c74b3d87d715f69afb6copyrequestbody = trueEnableDocs = true; loglog_level = 6log_path = logs/app.logmaxlines = 1000maxsize = 0maxdays = 10daily = true; databasedbtype = mysqldbhost = 127.0.0.1dbuser = zbxtabledbpass = zbxtablepwd123dbname = zbxtabledbport = 3306;redisredis_host = 127.0.0.1redis_port = 6379redis_pass =redis_db = 8; zabbixzabbix_web = http://192.168.10.200zabbix_user = Adminzabbix_pass = xxxxxzabbix_token =;mailemail_from = xxx@qq.comemail_port = 465email_host = smtp.qq.comemail_isSSl = trueemail_secret = xxxxxemail_nickname = 运维监控;wechatwechat_agentid = 1wechat_corpid = wxa7c63522727bxxxxwechat_secret = 5HA0o9bkvMMFDp8yFs
关键配置
如果密码信息含有特殊字符需要使用``号包含起来,例如
dbpass =`zbxtablepwd123!#@`zabbix_pass = `#S!_xxXxxx123123`
Zabbix 相关配置
- zabbix_web zabbix 的 web 访问地址,确保此地址可以通过浏览器访问到 zabbix 的 web
- zabbix_user 访问 zabbix 的用户名,默认为 admin,如果你的 zabbix 为 5.4 以上版本可配置 token,此项可留空
- zabbix_pass 访问 zabbix 用户的密码,如果你的 zabbix 为 5.4 以上版本可配置 token,此项可留空
- zabbix_token 访问 zabbix web 的 token,zabbix 5.4 版本之后可在 zabbix web 页面生成 token 访问, 只需要添加 token 即可,建议使用 admin 用户为 zbxtable 生成永久的 token
mail 邮件相关配置
mail 配置用于发送链路报表邮件,通 smtp 协议发送邮件,根据需要具体配置
wechat 微信告警配置
配置企业微信的信息,企业微信配置请查看 https://blog.51cto.com/itnihao/1733245 的配置,新版本需要配置企业 IP 或域名白名单
启动 ZbxTable
拷贝 zbxtable 的 systemd 启动文件
cp /usr/local/zbxtable/zbxtable.service /etc/systemd/system/systemctl daemon-reloadsystemctl enable --now zbxtable
查看 zbxtable 服务状态
systemctl status zbxtable
确保服务状态为 active (running)状态,如果启动失败可查看日志,一般为数据库或 zabbix web 连接失败 查看日志
cat /usr/local/zbxtable/logs/app.log
根据错误提示修改配置文件,重启服务即可
配置 Ms-Agent
ms-agent 可接收 zabbix 产生的告警,并发送到 zbxtable,用于告警的统计和分析,后续会增加告警发送功能 执行以下命令在 zabbix 上配置 Ms-Agent
cd /usr/local/zbxtable/./zbxtable install
此操作会连接 zabbix web,进行如下操作:
- 建立名为 zbxtable 的 zabbix 用户,并生成随机密码
- 建立名为 zbxtable 的 zabbix 用户组
- 建立名为 ms-agent 的告警媒介,并导入指定的告警模板
- 建立名为 ms-agent 的告警动作,接收所有告警通过 ms-agent 媒介发送到 zbxtable, 此操作主要是为了避免其他告警媒介和动作的影响,方便后期的更新和卸载 执行成功后会有如下输出信息
[root@localhost zbxtable]# ./zbxtable install2022/07/04 16:27:48.252 [I] [command.go:163] Create media type successfully!2022/07/04 16:27:48.320 [I] [command.go:163] Create user group successfully!2022/07/04 16:27:48.575 [I] [command.go:163] Create alarm user successfully!2022/07/04 16:27:48.575 [I] [command.go:163] Username : ms-agent2022/07/04 16:27:48.575 [I] [command.go:163] Password : qynNlKzMBx2022/07/04 16:27:48.668 [I] [command.go:163] Create alarm action successfully!2022/07/04 16:27:48.668 [I] [command.go:163] MS-Agent plugin configured successfully!2022/07/04 16:27:48.668 [I] [command.go:163] MS-Agent token is de0c0d234f054c74b3d87d715f69afb6[root@localhost zbxtable]#
- 如果出现错误,请在https://github.com/canghai908/zbxtable/issues 提交 zabbix 版本等环境信息
- Ms-Agent 的 install 操作只需操作一次即可
MS-Agent token 为 ms-agent 发送告警的凭证,需要写到 zbxtable 的配置文件的 token 字段中
ZbxTable Web 配置
web 为全静态文件,下载解压即可。zbxtable web 通过 nginx 代理访问. 安装 ZbxTable web 文件
wget https://dl.cactifans.com/zbxtable/web.tar.gztar zxvf web.tar.gz -C /usr/local/zbxtable
如果你已安装 nginx,直接拷贝配置文件到即可,如果未安装 nginx 需安装
yum install nginx -y
拷贝 zbxtable 自带得 nginx 配置文件到 nginx 的配置文件目录
cp /usr/local/zbxtable/nginx.conf /etc/nginx/conf.d/
重启 nginx
systemctl enable --now nginx
nginx 默认会启动 80 端口,如果和其他程序冲突,建议修改默认 80 端口
使用 http://ip:8088 即可访问 ZbxTable,系统默认账号:admin 密码:Zbxtable
部署后最终目录结构如下
├── conf│ └── app.conf #zbxtable 配置文件├── web #zbxtable web前端静态文件目录├── zbxtable #zbxtable 二进制文件├── nginx.conf #zbxtable提供的nginx配置文件├── zbxtable.init #zbxtable提供的init.d启动文件└── zbxtable.service #zbxtable提供的systemd启动文件
安装完成后,需要对数据进行初始化,否则系统内数据会显示为空,参考教程 ZbxTable 数据初始化
MS-Agent
此组件需要安装在 Zabbix Server 主机上,用于接收 zabbix 产生的告警,并发送到 zbxtable, 用于告警、分析、发送、屏蔽,支持多租户,可以将多台 zabbix 的告警统一发送到一个 zabxtable 平台
安装
如果使用 docker 部署 Zabibx Server 需要把 zabbix 的/usr/lib/zabbix/alertscripts 卷挂载到宿主机目录,把 ms-agent 解压放入此目录即可
下载二进制文件,并解压
cd /opt/wget https://dl.cactifans.com/zbxtable/ms-agent-1.0.4.tar.gztar zxvf ms-agent-1.0.4.tar.gzmv ms-agent-1.0.4 ms-agent
解压之后生成一个 ms-agent 二进制文件,一个 app.ini 配置文件。
程序 | 作用 |
ms-agent | 接收 Zabbix 平台产生的告警并发送到 ZbxTable 平台 |
app.ini | ms-agent 配置文件 |
拷贝 ms-agent 到你的 zabbix server 的 Alertscripts 目录下,默认路径为/usr/lib/zabbix/alertscripts/,也可通过修改 Zabbix Server 的配置文件指定 alertscripts 目录。 修改 zabbix server 的 Alertscripts 目录 vi zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
重启 Zabbix Server 生效. 拷贝 ms-agent 二进制及 app.ini 配置文件到 zabbix server 配置的告警脚本目录
cp ms-agent/* /usr/lib/zabbix/alertscripts/
赋予 ms-agent 脚本可执行权限
chmod a+x /usr/lib/zabbix/alertscripts/ms-agent
至此完成基本安装,无需重启 Zabbix Server
配置文件
zabbix server 会调用 ms-agent 进行告警的发送,同时会读取 ms-agent 程序目录下的 app.ini 配置文件,默认内容如下
[app]Debug = 0TenantID = zabbix01LogSavePath = /tmpHost = http://192.168.10.10:8088Token = 2d7a7ab0b0be493ab0bb9a925e4a30d2
- Debug 为程序日志级别 0 是 debug,1 为 info
- LogSavePath 为日志目录,默认为/tmp 目录
- TenantID 租户 id,默认即可,如有多套 ms-agent 发送到同一个 zbxtable,建议补重复即可
- Host 为 ZbxTable 系统的访问地址,默认为 http:+ 服务器 IP:8088
- Token 与 ZbxTable 通信的 Token,可自行修改,需要与 ZbxTable 平台配置保持一致即可,否则无法接收告警。
Debug
可修改配置文件打开 Debug 模式,查看日志文件名格式如下/tmp/ms-agent_yyyymmdd.log
开发作者:当代张思德
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除