實驗環境:
zabbix server 172.16.1.121
mysql 172.16.1.121
訪問端 172.16.1.122
54.1 zbxtable
1 說明
ZbxTable使用Go語言編寫ZbxTable,可無縫對接已有的Zabbix系統,適配目前所有Zabbix版本,
可導出指標,對告警歷史、告警消息進行分析,同時支持GraphTree功能。
參考文檔:
https://zbxtable.cactifans.com/2020/07/24/zbxtable-1.0/
https://zbxtable.cactifans.com/docs/install/rpm/
2 架構圖
3 部署Zbxtable
在172.16.1.122節點上操作
(1) 添加yum源
CentOS 7.x x86_64
# rpm -Uvh https://repo.cactifans.com/zbxtable/1.0/rhel/7/x86_64/zbxtable-release-1.0-1.el7.noarch.rpm
# yum clean all
CentOS 8.x x86_64
# rpm -Uvh https://repo.cactifans.com/zbxtable/1.0/rhel/8/x86_64/zbxtable-release-1.0-1.el8.noarch.rpm
# dnf clean all
(2) 安裝
1) 安裝 Zbxtable
# yum install zbxtable -y
# ls -l /usr/local/zbxtable/
total 38168
-rwxr-xr-x 1 zbxtable zbxtable 39082862 Dec 24 23:10 zbxtable
2) 安裝 Zbxtable-Web
# yum install zbxtable-web -y
# ls -l /usr/local/zbxtable/
total 38168
drwxr-xr-x 5 root root 187 Jan 30 20:45 web
-rwxr-xr-x 1 zbxtable zbxtable 39082862 Dec 24 23:10 zbxtable
(3) ZbxTable 配置
1) mysql數據庫初始化
在172.16.1.121節點上操作
# mysql -uroot -p'zabbix5.0@lc'
mysql> create database zbxtable character set utf8 collate utf8_bin;
mysql> create user zbxtable@'%' identified by 'zbxtablepwd123';
mysql> grant all privileges on zbxtable.* to zbxtable@'%';
mysql> quit;
2) 系統初始化
# cd /usr/local/zbxtable/
# ./zbxtable init
# 會進入交互式命令行,根據實際情況輸入數據庫賬號及密碼,以及zabbix連接信息,
# 最后確認即可生成配置文件。如數據庫及zabbix連接錯誤,會要求重新輸入連接信
# 息,否則無法生成配置文件。
# ls -l /usr/local/zbxtable/
total 52868
drwxr-xr-x 2 root root 22 Jan 30 20:48 conf
-rwxr-xr-x 1 root root 733 Jan 30 20:48 control
-rwxr-xr-x 1 root root 15043584 Jan 30 20:48 msty.ttf
-rwxr-xr-x 1 root root 387 Jan 30 20:48 nginx.conf
drwxr-xr-x 5 root root 187 Jan 30 20:45 web
-rwxr-xr-x 1 zbxtable zbxtable 39082862 Dec 24 23:10 zbxtable
# cat /usr/local/zbxtable/conf/app.conf
; zbxtable
appname = zbxtable
httpport = 8084
runmode = prod
timeout = 12
token = 8bb379179d5d4a7c83a1cbc17d4b2bdb
copyrequestbody = true
; database
dbtype = mysql
dbhost = 172.16.1.121
dbuser = zbxtable
dbpass = zbxtablepwd123
dbname = zbxtable
dbport = 3306
; zabbix
zabbix_web = http://172.16.1.121/zabbix
zabbix_user = Admin
zabbix_pass = zabbix
(4) 啟動Zbxtable
# systemctl start zbxtable
# systemctl enable zbxtable
(5) 查看Zbxtable服務狀態
# systemctl status zbxtable
# 一定要確保zbxtable服務是Active: active(running)狀態,如不是正常狀態,
# 建議查看日志/usr/local/zbxtable/logs/zbxtable.log或者系統
# /var/log/message日志。
# netstat -tunlp | grep zbxtable
tcp6 0 0 :::8084 :::* LISTEN 1579/zbxtable
(6) Zbxtable-Web配置
文件位於/usr/local/zbxtable/web前端為純靜態文件,需nginx做代理。
1) 安裝nginx
# yum install nginx -y
2) 拷貝nginx配置文件
# cp /usr/local/zbxtable/nginx.conf /etc/nginx/conf.d/
# 說明:此時/etc/nginx/nginx.conf默認server 80端口還在,如果
# 和本地端口有沖突,建議將配置注釋掉。
3) 啟動nginx
# systemctl start nginx
4) 配置開機啟動
# systemctl enable nginx
5) 查看端口
# netstat -tunlp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1686/nginx: master
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 1686/nginx: master
(7) 訪問zbxtable
http://172.16.1.122:8088
系統默認賬號:admin
密碼:Zbxtable
4 部署MS-Agent
在172.16.1.121節點上操作
(1) 說明
1) MS-Agent為告警消息采集客戶端,安裝在zabbix-server端,采集zabbix-server產生的告警信息,並發送到ZbxTable平台。
ms-agent需使用zbxtable命令完成在Zabbix Server的報警Actoin等配置,要確保zbxtable服務器上
/usr/local/zbxtable/conf/app.conf配置正確。
2) /usr/lib/zabbix/alertscripts/ms-agent
接收Zabbix-server平台產生的告警並發送到ZbxTable平台。
如果你的Zabbix Server的alertscripts目錄不為/usr/lib/zabbix/alertscripts/,需要移動ms-agent到你的zabbix server
的alertscripts目錄下即可,否則會在Zabbix告警頁面出現找不到ms-agent的錯誤提示,ZbxTable平台也無法收到告警消息。也可以
修改Zabbix Server的配置文件,將alertscripts目錄指向/usr/lib/zabbix/alertscripts/。
3) /etc/ms-agent/app.ini
ms-agent的配置文件。
/etc/ms-agent/app.ini為程序配置文件,默認內容如下
[app]
Debug = 1
TenantID = zabbix01
LogSavePath = /tmp
Host = http://192.168.10.10:8088/v1/receive
Token = ec573cf7388da56916f75ba9bbe46a69
# Debug 為程序日志級別 0 是 debug,1 為 info,查看日志文件名格式如下/tmp/ms-agent_yyyymmdd.log
# LogSavePath 為日志目錄,默認為/tmp 目錄
# Host 為 ZbxTable 系統地址,默認為 http 服務器 IP+/v1/receive
# Token 與 ZbxTable 通信的 Token,可自行修改,需要與 ZbxTable 平台配置保持一致即可,否則無法接收告警。
(2) 在zabbix-server上生成告警Action等
在172.16.1.122節點上操作
# cd /usr/local/zbxtable/
# ./zbxtable install
# 在zabbix中查看創建的動作
(3) 安裝MS-Agent
1) 添加yum源
CentOS 7.x x86_64
# rpm -Uvh https://repo.cactifans.com/zbxtable/1.0/rhel/7/x86_64/zbxtable-release-1.0-1.el7.noarch.rpm
# yum clean all
CentOS 8.x x86_64
# rpm -Uvh https://repo.cactifans.com/zbxtable/1.0/rhel/8/x86_64/zbxtable-release-1.0-1.el8.noarch.rpm
# dnf clean all
2) 安裝
# yum install ms-agent -y
3) 修改app.ini配置文件
# vim /etc/ms-agent/app.ini
[app]
Debug = 1
TenantID = zabbix01
LogSavePath = /tmp
Host = http://172.16.1.122:8088/v1/receive
Token = 8bb379179d5d4a7c83a1cbc17d4b2bdb
(4) 重啟zabbix-server
# systemctl restart zabbix-server.service
5 查看zbxtable告警分析
http://172.16.1.122:8088/alarm/query