安装
介绍使用二进制方式安装 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,进行如下操作:
- 建立名为 zbxtable 的 zabbix 用户,并生成随机密码
- 建立名为 zbxtable 的 zabbix 用户组
- 建立名为 ms-agent 的告警媒介,并导入指定的告警模板
- 建立名为 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 操作只需操作一次即可
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