Zabbix5系列-接入Grafana面板 (十七)

一、参考

  • Zabbix5系列

二、环境

参考以下三篇安装docker和docker-compose

docker版本:20.10.*
docker-compose版本:2.2.2
grafana版本:8.4.7

三、拉取镜像

3.1 从互联网拉取镜像
# 拉取grafana/grafana:8.4.7镜像
docker pull grafana/grafana:8.4.7
# 查看镜像
docker images
3.2 (可选)使用Dockerfile构造含插件的离线镜像并导出

! 经过测试本地构建包含image-renderer插件渲染出的图片不支持中文 image-renderer请使用远程方式

Dockerfile内容:

ARG GRAFANA_VERSION="latest"

FROM grafana/grafana:${GRAFANA_VERSION}

USER root

ARG GF_INSTALL_IMAGE_RENDERER_PLUGIN="false"

ARG GF_GID="0"
ENV GF_PATHS_PLUGINS="/var/lib/grafana-plugins"

RUN mkdir -p "$GF_PATHS_PLUGINS" && \
    chown -R grafana:${GF_GID} "$GF_PATHS_PLUGINS"

RUN if [ $GF_INSTALL_IMAGE_RENDERER_PLUGIN = "true" ]; then \
    echo "https://mirrors.aliyun.com/alpine/v3.15/main" > /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/v3.15/community" >> /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/edge/community" >> /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/edge/main" >> /etc/apk/repositories && \
    echo "https://mirrors.aliyun.com/alpine/edge/testing" >> /etc/apk/repositories && \
    apk --no-cache  upgrade && \
    apk add --no-cache udev ttf-opensans chromium && \
    rm -rf /tmp/* && \
    rm -rf /usr/share/grafana/tools/phantomjs; \
fi

USER grafana

ENV GF_PLUGIN_RENDERING_CHROME_BIN="/usr/bin/chromium-browser"

RUN if [ $GF_INSTALL_IMAGE_RENDERER_PLUGIN = "true" ]; then \
    grafana-cli \
        --pluginsDir "$GF_PATHS_PLUGINS" \
        --pluginUrl https://github.com/grafana/grafana-image-renderer/releases/latest/download/plugin-linux-x64-glibc-no-chromium.zip \
        plugins install grafana-image-renderer; \
fi

ARG GF_INSTALL_PLUGINS=""

RUN if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then \
    OLDIFS=$IFS; \
    IFS=','; \
    for plugin in ${GF_INSTALL_PLUGINS}; do \
        IFS=$OLDIFS; \
        if expr match "$plugin" '.*\;.*'; then \
            pluginUrl=$(echo "$plugin" | cut -d';' -f 1); \
            pluginInstallFolder=$(echo "$plugin" | cut -d';' -f 2); \
            grafana-cli --pluginUrl ${pluginUrl} --pluginsDir "${GF_PATHS_PLUGINS}" plugins install "${pluginInstallFolder}"; \
        else \
            grafana-cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}; \
        fi \
    done \
fi
# 创建Dockerfile文件
vi Dockerfile
# 构建一个含插件的镜像
# GRAFANA_VERSION : 版本
# GF_INSTALL_PLUGINS : 插件列表
# -t 目标镜像名称
docker build \
--build-arg "GRAFANA_VERSION=8.4.7" \
--build-arg "GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app,grafana-clock-panel,grafana-simple-json-datasource" \
-t grafana-zabbix:8.4.7 -f Dockerfile .
# 导出构建的镜像
docker save grafana-zabbix:8.4.7 -o grafana-zabbix-8.4.7.tar

四、容器编排

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

Grafana配置参考
Grafana配置转环境变量前面加GF所有节用下划线分割 原下划线保留 全转大写
Renderer渲染插件配置参考
参考文档传入环境变量

version: '3'
services:
  grafana:
    image: grafana/grafana:8.4.7
    #image: grafana-zabbix: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/
      # 安装zabbix clock json插件 <如使用本地构建注释此变量>
      - 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
      # 忽略https错误
      - 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
4.3 启动容器
# 放行端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 重载防火墙
firewall-cmd --reload
# 进入目录
cd /opt/grafana
# 启动
docker-compose up -d
# 查看日志
docker logs grafana
docker logs renderer

五、配置Grafana

5.1 浏览器访问http://IP地址:3000
默认用户名密码:admin/admin
在这里插入图片描述
5.2 设置 - Plugins - 搜索zabbix - 点击Zabbix进入插件
在这里插入图片描述
5.3 Config - Enable 启用插件
在这里插入图片描述
5.4 设置 - Data sources - Add data source 添加数据源

在这里插入图片描述
5.5 搜索zabbix 点击Zabbix上的Select
在这里插入图片描述
5.6 输入Zabbix jsonrpc地址和用户名密码后点 save&test

http://host/api_jsonrpc.php

在这里插入图片描述
5.7 添加 - Dashboard - Add a new panel
在这里插入图片描述

5.8 选择主机组 主机 标签 监控项目 添加图形
在这里插入图片描述

5.9 查看图形
在这里插入图片描述

六、汉化版

WangHL0927制作的6.7.3汉化版

6.1 拉取镜像并参考第四章进行容器编排

# 拉取w958660278/grafana-cn:6.7.3.0001-dev镜像
docker pull w958660278/grafana-cn:6.7.3.0001-dev
# 查看镜像
docker images

6.2 docker-compose.yml配置文件内容

version: '3'
services:
  grafana-cn:
    image: w958660278/grafana-cn:6.7.3.0001-dev
    container_name: grafana-cn
    volumes:
      - /etc/localtime:/etc/localtime
      - ./data:/var/lib/grafana
      - ./log:/var/log/grafana
    restart: always
    privileged: true
    environment:
      # 安装zabbix clock json插件
      # 注意grafana6.X不支持Zabbix插件4.X版本
      - GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app 3.12.4,grafana-clock-panel,grafana-simple-json-datasource
    ports:
      - "3000:3000"

6.3 启动容器

# 
firewall-cmd --zone=public --add-port=3000/tcp --permanent
#
firewall-cmd --reload
# 进入目录
cd /opt/grafana
# 创建数据目录
mkdir data
# 创建日志目录
mkdir log
# 修改目录权限
chown -R 472 data
chown -R 472 log
# 启动
docker-compose up -d
# 查看日志
docker logs grafana-cn

6.4 参考第五章配置grafana

为了实现GrafanaZabbix的接口流量监控并动态整合接口数据,需要深入理解两者之间的数据交互和模板配置。以下是一些关键的技术细节: 参考资源链接:[Grafana集成Zabbix:接口流量监控与动态图形展示](https://wenku.youkuaiyun.com/doc/7d9bpiinos?spm=1055.2569.3001.10343) 首先,确保Zabbix已经正确配置并且能够收集到所需的接口流量数据。在Zabbix中,你需要设置相应的监控项来捕获网络流量,并为每个接口定义唯一标识,通常使用正则表达式来匹配特定的接口名称模式。 其次,在Grafana中,创建一个新的仪表盘,并添加一个面板。在面板的数据源配置中选择Zabbix作为数据源,然后根据需要配置查询参数,例如'SW_GROUP'和'SW_HOST',以过滤特定的交换机和主机数据。 接下来,使用正则表达式在Grafana面板中整合接口数据。在查询中,你可以使用正则表达式如'/(Sw.*)/'来匹配接口名称,并选择相应的字段进行聚合。这样可以将多个接口的入站和出站流量合并显示在同一个图表中。 此外,还需要配置适当的时间范围和刷新间隔。时间范围一般设定为当前时间减去一段时间,以便用户可以观察到最近的流量变化。而刷新间隔则根据监控需求选择合适的频率,从几秒到几分钟不等。 最后,利用Grafana的动态模板功能可以进一步增强仪表盘的灵活性。例如,可以通过模板变量来选择不同的交换机或接口标签,实现多维度的数据展示和比较。 整个过程需要细致的配置和测试,确保数据的准确性和图表的动态展示效果。《Grafana集成Zabbix:接口流量监控与动态图形展示》一书将为你提供更深入的指导和实际案例分析,帮助你更有效率地完成整个监控系统的搭建和优化。 参考资源链接:[Grafana集成Zabbix:接口流量监控与动态图形展示](https://wenku.youkuaiyun.com/doc/7d9bpiinos?spm=1055.2569.3001.10343)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Halyace

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值