容器快速部署zabbix/邮件报警及钉钉报警/通过grafana实现数据可视化/zbxtable资产及报表导出功能

功能概况:

        一:本系统基于容器技术实现对zabbix监控系统的部署与运维,通过拉取镜像和docker-compose对容器进行编排与启动,可实现基础版本与完整版本的快速部署;也可通过git命令切换不同版本的zabbix。方便生产环境中的快速应用。

        二:通过访问前端页面,添加不同类型的主机,如linux设备,windows设备,云服务器,路由设备,实现对主机cpu,内存,服务等进行监控。通过配置报警媒介绑定用户,依赖动作及监控模板实现邮件报警及钉钉机器人报警。通过配置监控项实现对日志内容的实时监控。

        三:通过docker-compose部署grafana容器及图形渲染插件renderer,连接zabbix实现对监控数据的可视化,更完善的展现监控内容;自定义dashboard实现对监控模板的私人定制,实现更好的体验感。

        四:在zabbix-agent虚拟机中部署zbxtable,需配置本地mysql,配置文件中连接zabbix的访问地址,进行数据初始化获取zabbix中的资产信息,并且导出资产报表,还可对各主机流量报表以及告警信息进行导出,实现zabix报表功能。


部署分析:

        基础环境准备分析:

        在系统部署前,需对基础环境进行相关配置,应配置好两台虚拟机的网络,yum源,安装docker环境及docker-compose的准备。网上常用的安装zabbix方式主要是二进制包安装,使用官方的yum仓库,通过yum的形式在线安装zabbix,也有从源码包安装,但需对编译依赖及参数较为熟悉,且构建时间较长;本文zabbix监控系统使用从容器中进行安装与部署,使用容器部署维护起来更加方便,部署更快,迁移更简单。

        容器镜像拉取类型分析:

        Zabbix官方在4.0之前,容器部署方式是将所有的组件打包至一个镜像中,其中包括mysql,前端,web ,apache等,这种打包方式与容器的维护是有冲突的,使用容器部署所需的环境应该越来越精简;在4.0之后,按照其组件将其进行拆分,在官方文档中,zabbix-server端按照其数据库类型分为两种,主流的还是mysql;web端通过浏览器访问的界面拆分为nginx和apache,根据数据库类型也分为mysql和postgreSQL;在容器底层的镜像中也有诸多类型,如ubuntu,alpine linux 和centos;

        本文容器底层引用的是centos镜像;关于容器镜像的下载,本文通过复制镜像下载链接,通过wget命令下载镜像安装包,解压后通过导入镜像脚本将镜像保存至本地,此时导入的镜像是完整版zabbix所需的镜像。而基础版本仅需要使用mysql,zabbix-web,zabbibx-server三个镜像即可。

        容器部署方式分析:

        通过docker-compose对容器镜像编排,定义其中的关系,挂载目录,暴露端口写至yaml文件中,可通过其一键启动,拉取所需镜像,运行容器。在官方文档中。使用docker-compose部署已上传github中,且采用分支形式进行部署,可采用git切换分支形式部署不同版本的zabibx,忽略宿主机系统版本影响。
        而在yaml文件中涉及到所有的组件,部分组件添加了参数profiles:-all,启动yaml时指定参数才能将其启动起来。这样部署将zabbix的部署分为两个版本即基础功能版本和完整功能版本。基础功能版本所需组件仅有server,web端,数据库;而在所需zabbix需要跨机房跨网段监控时,启动时需使用完整功能版,如果仅监控局域网,不涉及跨网段或需要代理,则可使用基础功能版。
        如果在生产环境中,运行的只是一个基础版本的zabbix,只监控局域网内部的设备;而后续有新的需求,需要跨网段及做代理,这时只需要启动时添加参数,就能快速切换至完整版功能的zabbix。

        构建目录详解:

        本文将部署zabbix所需文件统一存至/data/zabbix-docker文件中。
        docker-compose.yaml文件中,支持容器开机自启,支持部署zabbix基础版及完整版通过参数一键部署,基于已拉取的镜像构建zabbix服务,创建前端后端网络,暴露相关端口,做出相对应的映射关系,完成容器的编排。    
        env_vars传参变量文件夹,其目录下的文件都是隐藏文件,需要使用ls -a才能看到,这里面的文件都是一些传参文件,如mysql密码,数据库用户,zabbix密码以及性能方面的调整;因为通过容器来跑,所有的调整,传参可以概括为两种,一是密码,其中与mysql相关的都是密码,可以更改;二是性能方面的调整,可以修改相关文件重启调整性能,如在使用docker compose部署的时候出现zabbix server无法启动问题,可修改文件夹中.env_srv文件,通过修改缓存空间,调整zabbix性能。
        mysql目录,容器部署完成后,将数据库的目录映射到当前目录下(/data/zabbix-docker),所有的mysql重要内容都在mysql目录中,如果在生产环境下已经运行很久了,存在很多历史监控数据,只需要将目录拷贝到其它电脑上运行就完成了迁移。通过登入zabbix-db容器,使用root用户连接数据库,删除binlog文件,可以进行数据库清理。通过du -sh /data/zabbix-docker/查看构建zabbix服务所需内存大小。
        zbx_env,官方默认挂载目录,主要将容器外目录挂载至容器内,实现数据持久化。

        zabbix功能分析:

        在Zabbix部署完成之后,访问web页面,通过在客户端部署zabbix-agent添加监控主机,实现对主机cpu,网络等资源监控;通过配置监控项实现对zabbix日志的监控;配置脚本报警实现邮件及钉钉自动报警;连接zabbix与grafana实现数据可视化监控,可自定义设置监控模板;连接zabbix与zbxtable实现对监控主机信息,流量的报表及告警信息导出功能。各服务访问地址及功能介绍如表2-1:

表2-1 服务访问地址

访问地址

服务

功能

192.168.221.34:80

zabbix

日常监控及脚本报警

192.168.221.34:3000

grafana

监控数据可视化

192.168.221.33:8088

zbxtable

监控信息报表导出

        zabbix-agent的部署:

        关于zabbix客户端的部署,需要在客户端通过使用二进制包安装或通过yum来安装,本文监控主机设备有云服务器ECS,网络设备华为路由器,虚拟机zabbix-server,zabbix-agent及宿主机windows。在ECS中使用yum的安装方式,对配置文件进行修改,实现对其监控;在虚拟机中,通过下载脚本安装包,一键安装并对配置文件进行修改;在windows设备中下载zabbix-agent软件包,安装并配置;在网络设备华为路由器中,由于条件有限,使用仿真软件ensp,配置snmp服务成功被zabbix服务端监控。

        脚本报警:

        Zabbix报警类型有webhook,电子邮件,短信及脚本;本文主要研究脚本报警,配置了邮件自动告警及钉钉机器人自动告警;zabbix agent采集数据发送给服务端,服务端依靠监控模板判断是否有异常,通过触发动作匹配条件及相关操作实现脚本运行自动报警   

        采用脚本方式来进行zabbix报警,需要将宿主机zabbix脚本目录与容器脚本目录绑定挂载,并配置其权限为777,并且按照本文所配置的报警方式。

        邮件自动报警需要下载mailx邮件服务;并对mailx配置文件进行修改,添加报警人邮箱,授权码等。钉钉机器人报警方式需要通过python脚本,且需获取钉钉机器人URL,而zabbix是通过容器来进行部署的,zabbix官方不会在容器中内置python环境,所以需要给容器添加python环境,为了使安装python方法简便,使用centos镜像构建容器,直接使用yum install安装。

        脚本配置完成后,需要在zabbix页面中配置报警媒介类型,添加脚本参数,此时可在页面中进行报警测试。然后绑定用户,创建触发动作添加操作。当所监控的某一服务出现异常,会自动将报警内容发送至邮箱及钉钉。

        配合grafana实现数据可视化:

        本文通过容器部署grafana容器及渲染图片插件,与zabbix连接实现数据可视化监控。通过编写docker-compose.yaml文件,创建grafana容器与renderer插件容器,挂载数据及日志目录,实现grafana与插件的对接,并设置容器网段。通过访问web地址,在grafana中添加zabbix插件并启动,通过zabbix的api组件实现数据联通;可添加仪表盘根据zabbix中的资产信息进行图形自定义的编排。

        在zabbix页面中监控信息的图形展示功能较为单一,且查看监控数据是操作繁琐,并不直观。通过grafana,能够将zabbix监控数据进行更好的展示,在生产环境中也能够体现技术的专业性。本文指在研究grafana监控图形与传统zabbix监控面板的对比。

        配合zbxtable实现报表导出:

        本系统在虚拟机zabbix-agent中安装zxbtable服务,通过安装本地mysql部署zbxtable服务,连接zabbix将及监控数据呈现在zbxtable页面中,能够在zbxtable中直观了解到zabbix监控主机信息,可进行资产管理,实时了解主机状态,对于不同系统,不同设备zbxtable都能够进行统一管理,并且能对资产信息进行报表导出,还可对主机之间流量信息进行报表导出,本文指在研究zbxtable对zabbix监控主机信息报表导出功能。

        部署zbxtable服务,需安装本地mysql服务,通过下载zbxtabel二进制文件,安装到/usr/local/zbxtable目录中,再配置文件内容,修改数据库信息,zabbix信息等,需安装redis服务并启动,配置mail功能用于报表或邮件的发送。配置Ms-Agent,是zbxtable可接收zabbix上的报警信息并显示再页面中;再配置zbxtable web,配合nginx服务启动前端页面。再前端页面中对数据进行初始化得到zabbix主机信息即可;

        部署及测试

        部署流程介绍

        1.首先在vmware虚拟机中安装两台linux虚拟机,配置好网络,yum源,关闭防火墙及selinux,安装docker及docker-compose环境,网上下载镜像安装包,解压脚本一键部署,下载部署zabibx服务安装包,解压并运行docker-compose.yaml文件,至此zabbix服务部署完成。

        2.在zabbix前端页面中,进行添加主机设备操作,验证zabbix监控功能广泛,本系统监控多种设备,如虚拟机,windows主机,云服务器ECS,网络设备路由器;并配置好对zabbix server主机/var/log/message日志文件的监控,配置脚本报警,完成邮件报警及钉钉告警功能。

        3.容器中拉取通过docker-compose.yaml文件拉取grafana镜像及图片渲染插件镜像并运行容器,在其前端页面中安装zabbix插件与部署好的zabbix连接,创建自定义监控模板。

        4.在zabbix-agent虚拟机中安装mysql服务,下载安装包部署zbxtable服务,连接zabbix,进行数据初始化,完成资产,链路流量报表导出功能,绘制自定义拓扑图。

        部署流程如图所示:

        虚拟机中相关配置操作

        1.基础环境配置:修改网络信息,编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,将BOOTPROTO值改为static,并添加静态ip地址信息。关闭防火墙及selinux;可见本文zabbix服务端ip地址为:192.168.221.34;

         2.先决条件,配置yum源,安装docker及docker-compose;

基础YUM源和优化系统
#此脚本能优化CentOS7、8的系统(非必要操作)
curl -L https://drive.swireb.cn/d/Shell/system.sh | sh

#docker软件源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker并运行
#安装docker
yum clean all && yum makecache
yum -y install docker-ce

#修改docker配置文件(可选优化操作)
mkdir /etc/docker

cat << EOF | tee /etc/docker/daemon.json
{
  "graph": "/data/docker",
  "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
  "live-restore": true
}
EOF

#启动docker服务
systemctl daemon-reload && systemctl enable --now docker
安装docker-compose命令
#下载二进制文件
wget -P /usr/local/bin https://drive.swireb.cn/d/Linux/Docker/docker-compose  &>/dev/null

#赋予执行权限
chmod +x /usr/local/bin/docker-compose

#确认版本
docker-compose -v

        3.docker-compose部署zabbix;本文通过下载镜像安装包,解压后通过脚本执行拉取镜像。下载并解压部署文件,zabbix部署文件统一保存在/data/zabbix-docker中。

        在该目录下,docker-compose.yaml文件是启动文件,其中写明了构建完整版zabbix的所有组件,通过在运行yaml文件时添加参数-profile all 可以选择创建zabbix基础版和完整版,本文因不涉及代理及跨网段,所以部署zabbix基础版;

        env_vars是传参变量文件夹,涉及系统密码及性能调优功能;zbx_env是zabbix挂载目录,映射容器内外文件及目录。Msyql文件当容器开始运行时,自动创建,保存的是zabbx数据文件。

#导入centos系统的容器镜像(需要修改docker-compose.yaml的启动镜像)
wget --no-check-certificate https://drive.swireb.cn/d/Linux/Docker/Zabbix/images/zabbix-image-6.0-centos.tar.gz
tar xf zabbix-image-6.0-centos.tar.gz
cd zabbix-image-6.0-centos
./docker_load.sh
docker image ls -a

-----------------------------------------------------------------------
#先创建/data目录,下载并且解压部署文件
wget --no-check-certificate https://drive.swireb.cn/d/Linux/Docker/Zabbix/zabbix-docker.tar.gz
tar xf zabbix-docker.tar.gz
cd zabbix-docker

-----------------------------------------------------------------------
部署基础功能版本
#切换部署版本
git checkout 6.0 

#运行Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose up -d

#关闭Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose down

#修改使用centos系统的容器镜像(默认使用alpine系统的容器镜像;即先运行此命令修改docker-compose.yaml文件使用的镜像)
sed -i 's#alpine-6.0#centos-6.0#g' docker-compose.yaml

-------------------------------------------------------------------------
部署完整功能版本
#切换部署版本
git checkout 6.0 

#运行Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose --profile=all up -d

#关闭Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose --profile=all down

#修改使用centos系统的容器镜像(默认使用alpine系统的容器镜像;即先运行此命令修改docker-compose.yaml文件使用的镜像)
sed -i 's#alpine-6.0#centos-6.0#g' docker-compose.yaml

         4.至此,zabbix基础版已部署完成,通过docker ps 命令查看所部署容器;

         5.容器部署时依靠添加参数选择部署基础版或完整版zabbix;

         6.至此,zabbix服务部署完成,可访问zabbix前端页面;

zabbix前端操作

         部署zabbix-agent

        通过在被监控端安装zabbix-agent,并配置server ip为0.0.0.0;linux设备和windows设备都如此,对于网络设备交换机路由器等,通过snmp服务监控,当服务端与被监控端能互ping时即可监控成功;在zabbix前端页面配置--主机--创建主机;配置名称,选择模板群组及配置客户端接口ip;
        本文通过脚本安装agent监控linux设备,通过二级制包下载安装agent监控windows设备,并配合ensp启用snmp服务监控网络设备;各配置命令如下:

#通过脚本安装Agent2(支持CentOS7、Centos8)用于监控linux设备
wget --no-check-certificate https://drive.yangwn.top/d/AliDrive/Shell/install-agent2.sh

sh install-agent2.sh
---------------------------------------------------------------------------------

#通过二级制包安装agent用于监控windows设备

agent二级制包下载地址:https://www.zabbix.com/download_agents

---------------------------------------------------------------------------------
对于网络设备路由器交换机,在其上进行相关网络配置, 

#可结合zabbix监控网络三层架构,连接出口路由器,通过vtysh与出口路由器及核心交换机运行ospf;
#在交换机上配置vlanif口ip,通过静态路由实现与接入交换机通信,

并开启snmp服务,在仿真软件ensp上添加路由器与cloud设备,绑定至虚拟机vm net8 网卡,

配置路由器接口ip为192.168.221.66,与zabbix-server处于同一网段;

交换机开启snmp:
[Switch]snmp-agent
[Switch]snmp-agent community read  zabbix  #zabbix前端页面添加主机时,SNMP community的值应为zabbix,版本为v2
[Switch]snmp-agent sys-info version v2c
[Switch]snmp-agent target-host trap address udp-domain 192.168.201.128 params securityna
me zabbix
[Switch]snmp-agent trap enable
Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y

路由器开启snmp:
[Router]snmp-agent
[Router]snmp-agent community read zabbix  #zabbix前端页面添加主机时,SNMP community的值应为zabbix,版本为v2
[Router]snmp-agent sys-info version v2c
[Router]snmp-agent target-host trap-hostname zabbix-server address 192.168.201.128 u
dp-port 161 trap-paramsname zabbix
[Router]snmp-agent trap enable
Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y



监控拓扑图如下:


监控效果如下:

         日志监控

        本系统对虚拟机zabbix-server中的/var/log/message进行监控,在zabbix页面中点击主机—选择zabbix server的监控项—创建监控项,可根据要监控的日志进行配置,其键值对是针对日志中出现’error’则采集数据;可在zabbix-server监控项中观察到监控结果;

        为了获取到信息,需要让被读取的文件,也就是文件/var/log/message要让zabbix有可读权限,在命令行使用chmod 777 /var/log/message命令给了最高权限;

zabbix前端配置如下:

监控内容如下:

         邮件报警/钉钉报警

        Zabbix脚本默认路径为/usr/lib/zabbix/alertscripts/,本文为容器部署,已将宿主机脚本目录挂载至容器内,在相应目录下进行脚本的创建,配合zabbix页面中的报警媒介及动作发送报警信息  

        部署脚本告警,在容器内将脚本内容完善,并部署email服务,在zabbix前端页面创建报警媒介email和钉钉;绑定用户,可通过测试进行验证脚本告警部署成功; 

#配置脚本报警需注意脚本是否有执行权限及zabbix用户是否有执行权,
#邮件功能是否设置完成,日志文件也需具备权限

1.进入容器zabbix-server内部署email服务,配置相关内容

2.在zabbix脚本默认路径下创建mailx.sh邮件报警脚本文件,内容如下:

#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

3.在zabbix脚本默认路径下创建dingding.py钉钉报警脚本文件,内容如下:
#部署钉钉报警需要在钉钉中创建群聊以及添加自定义钉钉机器人,
#设置关键词为“告警”和“恢复”,并获取其webhook添加至脚本中,
#Zabbix页面配置不过多描述,与邮件告警一致,创建报警媒介,绑定用户及创建动作。


!/usr/bin/python3
#-*- coding: utf-8 -*-
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=86d6f07eab410798bb5a6a1e170d1e630e70f83d680491054e110497a850c7a1"
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/lib/zabbix/alertscripts/dingding.log"):
    f=open("/usr/lib/zabbix/alertscripts/dingding.log","a+")
else:
    f=open("/usr/lib/zabbix/alertscripts/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"�~O~Q�~@~A�~H~P�~J~_"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "�~O~Q�~@~A失败" + "\n" + str(text))
    f.close()

        部署grafana

         本系统中grafana使用容器部署,其yaml文件内容大致为使用镜像,挂载卷,重启策略,暴露端口以及使用网络;部署grafana还使用了其渲染图片插件容器,与部署zabbix一样部署文件放在/data目录下,通过docker-compose up 启动yaml文件,文件内容如下:

services:
  grafana:
    image: grafana/grafana:8.4.7
    container_name: grafana
    volumes:
      - /etc/localtime:/etc/localtime
      - ./data:/var/lib/grafana
      - ./log:/var/log/grafana
    restart: always
    privileged: true
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_RENDERING_SERVER_URL=http://renderer:8081/render
      - GF_RENDERING_CALLBACK_URL=http://grafana:3000/
      - GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app,grafana-clock-panel,grafana-simple-json-datasource
    ports:
      - "3000:3000"
    networks:
      grafana-net:
  renderer:
    image: grafana/grafana-image-renderer:3.4.0
    container_name: renderer
    volumes:
      - /etc/localtime:/etc/localtime
    restart: always
    privileged: true
    environment:
      - BROWSER_TZ=Asia/Shanghai
      - IGNORE_HTTPS_ERRORS=true
    expose:
      - "8081"
    networks:
      grafana-net:
networks:
  grafana-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.23.0.0/24
          gateway: 172.23.0.1

部署目录创建如下:

# 创建程序目录
mkdir -p /data/grafana
# 进入目录
cd /data/grafana
# 创建数据目录
mkdir data
# 创建日志目录
mkdir log
# 修改目录权限
chown -R 472 data
chown -R 472 log
# 创建并编辑docker-compose.yml配置文件
vi docker-compose.yml

        启动docker-compose.yaml文件,创建grafana容器和render容器;输入192.168.221.34:3000进入grafana页面,默认用户名密码:admin/admin, 安装zabbix插件,绑定zabbix的api接口,根据所需内容进行监控项自定义;插件部署完成界面如图:

 Grafana通过使用zabbix的api接口进行连接,如图:

通过自定义设置了对zabbix server设备监控其cpu,本文主在论证grafana对zabbix监控数据具有更好的展示功能,效果如图:

 部署zbxtable服务

        zbxtable是使用GO语言开发的一个开源的zabbix报警系统,其共有三个组件,zbtable是使用Beego框架编写的后端程序;zabtable-web是使用vue编写的前端;MS-Agent是安装在zabbix server上用于接收zabbix server产生的告警,并发送到zbxtable平台,本文由于是容器部署zabbix,所以MS-Agent需要安装在容器中。部署流程如下:

         在本地安装mysql,采用二级制方式安装zbxtable,配置mysql数据库,配置文件中绑定zabbix服务端,配置web通过nginx代理,在zabbix server主机安装MS-Agent,用于接收zabbix产生的告警,且发送至zbxtable平台上,下载解压并部署;在zbxtable前端页面进行资产初始化即可

        本文zbxtable服务安装在主机zabbix-agent上,访问地址为192.168.221.33:8088,首先需在本机上安装部署mysql服务(不再过多介绍)

#创建对应用户及目录,并下载 zbxtable 二进制文件,安装到/usr/local/zbxtable 目录
useradd zbxtable
wget https://dl.cactifans.com/zbxtable/zbxtable-2.1.1.tar.gz
tar zxvf zbxtable-2.1.1.tar.gz -C /usr/local/
mv /usr/local/zbxtable-2.1.1 /usr/local/zbxtable
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;

#如果服务器未安装 redis 需要安装 redis,并启动

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前端页面的地址
zabbix_web      = http://192.168.221.34
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

        在本地安装mysql,采用二级制方式安装zbxtable,配置mysql数据库,配置文件中绑定zabbix服务端,配置web通过nginx代理,在zabbix server主机安装MS-Agent,用于接收zabbix产生的告警,且发送至zbxtable平台上,下载解压并部署;在zbxtable前端页面进行资产初始化即可,配置内容如下:

#启动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)状态,如果启动失败可查看日志,

cat /usr/local/zbxtable/logs/app.log

------------------------------------------------------------------
#配置 Ms-Agent,ms-agent 可接收 zabbix 产生的告警,并发送到 zbxtable,用于告警的统计和分析

cd /usr/local/zbxtable/

./zbxtable install
#此操作会连接 zabbix web前端页面,进行如下操作:
#建立名为 zbxtable 的 zabbix 用户,并生成随机密码
#建立名为 zbxtable 的 zabbix 用户组
#建立名为 ms-agent 的告警媒介,并导入指定的告警模板
#建立名为 ms-agent 的告警动作,接收所有告警通过 ms-agent 媒介发送到zbxtable
-----------------------------------------------------------------------------------
#ZbxTable Web 配置  web 为全静态文件,下载解压即可

wget https://dl.cactifans.com/zbxtable/web.tar.gz

tar 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

#安装完成后,需要对数据进行初始化,否则系统内数据会显示为空

        主机zabbix-server内安装MS-Agent,用于接收 zabbix 产生的告警,并发送到 zbxtable, 用于告警、分析、发送、屏蔽,支持多租户,可以将多台 zabbix 的告警统一发送到一个 zabxtable 平台,使用 docker 部署 Zabibx Server 需要把 zabbix 的/usr/lib/zabbix/alertscripts 卷挂载到宿主机目录,把 ms-agent 解压放入此目录即可,配置内容如下:

#下载二进制文件,并解压,注意文件路径


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 server 的 Alertscripts 目录下,默认路径为/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.221.33:8088
Token = 2d7a7ab0b0be493ab0bb9a925e4a30d2

#Debug 为程序日志级别 0 是 debug,1 为 info
#LogSavePath 为日志目录,默认为/tmp 目录
#TenantID 租户 id,默认即可,如有多套 ms-agent 发送到同一个 zbxtable,建议补重复即可
#Host 为 ZbxTable 系统的访问地址,默认为 http:+ 服务器 IP:8088
#Token 与 ZbxTable 通信的 Token,可自行修改,需要与 ZbxTable 平台配置保持一致即可,否则无法接收告警。

        Zbxtable部署完成后,在其前端页面上进行数据初始化,使zbxtable能够获取zabbix资产信息,告警信息;对拓扑图进行绘制,获取主机间流量信息,并对zabbix资产信息,流量,告警信息进行报表的导出。

数据初始化如图:

        数据初始化之后,可在zbxtable页面中查看到根据不同设备类型分类的资产信息,如图:

 

        通过对报表管理中的流量报表进行配置,能够对配置的主机进行流量实时生成报表 ,如图:

参考链接:

容器部署zabbix:Zabbix通过容器进行部署 - Jack Yang's blog (swireb.cn)

grafana部署:Zabbix5系列-接入Grafana面板 (十七)_zabbix接入grafana应该选用哪一个面板_Halyace的博客-CSDN博客

zbxtable部署: ZbxTable

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!对于Zabbix钉钉群的报警集成,您可以按照以下步骤进行配置: 1. 首先,在钉钉群中创建一个机器人。进入群设置,选择"智能群助手",点击添加机器人,选择自定义机器人,并设置机器人名称。 2. 在Zabbix中配置报警媒介类型。进入Zabbix的管理界面,依次点击"管理员" -> "媒介类型" -> "创建媒介类型"。在弹出的配置界面中,输入媒介类型名称、类型和其他相关信息: - 类型: Script - 脚本名称: 配置一个用于发送报警消息到钉钉机器人的脚本。您可以使用Python或者Shell脚本来实现。 - 脚本参数: 可以根据需要传递给脚本的参数,例如钉钉群的Webhook地址、报警内容等。 3. 在Zabbix中配置报警动作。进入Zabbix的管理界面,依次点击"配置" -> "动作" -> "创建动作"。在弹出的配置界面中,输入动作的名称、条件和操作: - 条件: 指定需要触发报警的条件,例如触发器状态为问题、严重级别为高等。 - 操作: 选择触发报警时执行的操作,将媒介类型设置为之前创建的钉钉媒介类型,并配置相关参数。 4. 测试报警功能。在Zabbix中创建一个测试触发器,并设置合适的条件和操作。当触发器被触发时,Zabbix将通过钉钉机器人发送报警消息到相应的钉钉群。 请注意,具体配置步骤可能会因Zabbix钉钉版本的不同而有所差异。以上是一般的配置流程,具体操作还请参考Zabbix钉钉的官方文档或者社区资料。希望对您有所帮助!如果您有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值