安装

使用二进制方式部署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/stable/zbxtable/zbxtable-latest.tar.gz

2.1.3版本开始web已嵌入到zbxtable二进制程序中,无需独立部署
ZbxTable-Web: https://dl.cactifans.com/stable/zbxtable/web-latest.tar.gz

MS-Agent: https://dl.cactifans.com/stable/zbxtable/ms-agent-latest.tar.gz

安装配置视频

ZbxTalbe 2.1 安装
ZbxTable 2.1 数据初始化
ZbxTable 2.1 告警配置
ZbxTable 2.1 链路报表
ZbxTable 2.1 拓扑图配置

ZbxTable

部署

创建对应用户及目录,并下载 zbxtable 二进制文件,安装到/usr/local/zbxtable 目录

useradd zbxtable
wget http://dl.cactifans.com/zbxtable/zbxtable-latest.tar.gz
tar zxvf zbxtable-latest.tar.gz -C /usr/local/
chown -R zbxtable:zbxtable /usr/local/zbxtable

即可完成文件部署

数据库配置

zbxtable 支持 mysql 或 postgresql,确保 mysql 或 postgresql 服务已经启动,根据实际情况创建对应的数据库及用户信息

mysql 数据库

# mysql -uroot -p
create 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 - postgres
psql
create 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 -y
yum install redis -y
systemctl enable --now redis

配置文件

zbxtable 配置文件为程序目录下的 conf/app.ini

默认内容如下

; zbxtable
appname         = zbxtable
httpport        = 8085
runmode         = dev
timeout         = 12
token           = de0c0d234f054c74b3d87d715f69afb6
copyrequestbody = true
EnableDocs      = true

; log
log_level       = 6
log_path        = logs/app.log
maxlines        = 1000
maxsize         = 0
maxdays         = 10
daily           = true

; database
dbtype          = mysql
dbhost          = 127.0.0.1
dbuser          = zbxtable
dbpass          = zbxtablepwd123
dbname          = zbxtable
dbport          = 3306

;redis
redis_host      = 127.0.0.1
redis_port      = 6379
redis_pass      =
redis_db        = 8

; zabbix
zabbix_web      = http://192.168.10.200
zabbix_user     = Admin
zabbix_pass     = xxxxx
zabbix_token    =

;mail
email_from       = xxx@qq.com
email_port       = 465
email_host       = smtp.qq.com
email_isSSl      = true
email_secret     = xxxxx
email_nickname   = 运维监控

;wechat
wechat_agentid   = 1
wechat_corpid    = wxa7c63522727bxxxx
wechat_secret    = 5HA0o9bkvMMFDp8yFs

复杂密码配置

如果密码信息含有特殊字符需要使用``号包含起来,例如

dbpass        =`zbxtablepwd123!#@`
zabbix_pass   = `#S!_xxXxxx123123`

数据库配置

zbxtable支持mysql和postgresql数据库,默认配置为mysql数据库,如需使用postgresql数据库,需要修改

dbtype          = postgresql
dbport          = 5432

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-reload
systemctl enable --now zbxtable

查看 zbxtable 服务状态

systemctl status zbxtable

确保服务状态为 active (running)状态 ,如果启动失败可查看服务日志,

journalctl -u zbxtable -n 100

一般为数据库或 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,进行如下操作:

  1. 建立名为 zbxtable 的 zabbix 用户,并生成随机密码
  2. 建立名为 zbxtable 的 zabbix 用户组
  3. 建立名为 ms-agent 的告警媒介,并导入指定的告警模板
  4. 建立名为 ms-agent 的告警动作,接收所有告警通过 ms-agent 媒介发送到 zbxtable, 此操作主要是为了避免其他告警媒介和动作的影响,方便后期的更新和卸载 执行成功后会有如下输出信息
[root@localhost zbxtable]# ./zbxtable install
2022/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-agent
2022/07/04 16:27:48.575 [I] [command.go:163]  Password : qynNlKzMBx
2022/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 配置

从2.1.3版本开始,前端web全静态文件打包在二进制程序中,运行时自动解压,无需独立安装部署。

前端需要nginx,如果你已安装 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 二进制文件
├── template                #微信、邮件告警模板 
│   ├── mail_problem.tpl    #邮件告警模板
│   ├── mail_recovery.tpl   #邮件恢复告警模板
│   ├── wechat_problem.tpl  #微信告警模板
│   └── wechat_recovery.tpl #微信恢复告警模板
├── 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.gz
tar zxvf ms-agent-1.0.4.tar.gz
mv 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 = 0
TenantID = zabbix01
LogSavePath = /tmp
Host = http://192.168.10.10:8088
Token = 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