Zabbix5系列-接入Grafana面板
一、参考
- Zabbix5系列
- Zabbix5专栏
- Centos7安装Docker
- Centos8安装Docker
- Debian10安装Docker
- Zabbix5系列-Docker安装zabbix5.4 (一)
- Zabbix5系列-监控华为、H3C交换机(snmpv2c/snmpv3/snmptrap) (二)
- Zabbix5系列-监控Windows主机 (三)
- Zabbix5系列-监控Linux主机 (四)
- Zabbix5系列-Linux/Windows磁盘SMART监控 (五)
- Zabbix5系列-监控惠普服务器iLO管理口 (六)
- Zabbix5系列-监控海康威视摄像头 (七)
- Zabbix5系列-使用SNMP监控Linux (八)
- Zabbix5系列-监控docker (九)
- Zabbix5系列-监控mysql(5.7/5.8/mariadb) (十)
- Zabbix5系列-监控redis (十一)
- Zabbix5系列-监控nginx (十二)
- Zabbix5系列-制作拓扑图 (十三)
- Zabbix5系列-声音告警、邮件告警 (十四)
- Zabbix5系列-钉钉告警 (十五)
- Zabbix5系列-创建自动发现模板 (十六)
- Zabbix5系列-接入Grafana面板 (十七)
- Zabbix5系列-报表工具ZbxTable (十八)
- 用户手册: https://www.zabbix.com/documentation/current/zh/manual
- 官方模板参考: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates?at=refs%2Fheads%2Frelease%2F5.4
- Zabbix模板库: https://share.zabbix.com
- Zabbix容器: https://hub.docker.com/u/zabbix
- Zabbix Agent下载页: https://www.zabbix.com/cn/download_agents
- MIB浏览器下载: http://www.ireasoning.com/download.shtml
- 华为MIB查询: https://support.huawei.com/mibtoolweb/enterpriseMibInfo/zh
- 华为 VRP V200R021C00SPC100 MIB文件: https://support.huawei.com/enterprise/zh/software/253350229-ESW2000397776
- H3C Comware MIB文件: https://www.h3c.com/cn/d_200905/635750_30003_0.htm
- 华为图标 百度云盘 提取码mzhx: https://pan.baidu.com/s/1S6p96p3gNrv78Z2yJxrhaQ
- zabbix报表工具: https://zbxtable.cactifans.com/
- Grafana面板: https://grafana.com/docs/grafana/latest/installation/docker/
- Grafana-cn面板: https://hub.docker.com/r/w958660278/grafana-cn
二、环境
参考以下三篇安装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 查看图形
六、汉化版
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