北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

高效监测从零开始:快速搭建Zabbix+Grafana环境实现即时监控

环境说明:

本例假设已有操作系统及docker环境,仅包含环境部署,不含客户端配置。

操作系统:centos7.9

mysql:5.7

zabbix:5.4

grafana:8.4.4

一、镜像准备:

1. 下载mysql5.7镜像

 docker pull mysql:5.7

2. 下载zabbix-server镜像(本例安装的是支持MySQL数据库的Server镜像,选择的是centos-latest版本)

 docker pull zabbix/zabbix-server-mysql:5.4-centos-latest

3. 下载Zabbix-web镜像

这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口
zabbix/zabbix-web-nginx-mysql。这里使用的是latest版本,在linux终端使用

 docker pull zabbix/zabbix-web-nginx-mysql:5.4-centos-latest

4. 下载grafana镜像

 docker pull grafana/grafana:8.4.4

注:Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能

docker pull zabbix/zabbix-java-gateway:latest (按需)

二、运行容器:

1. 创建一个新的 Docker 网络

需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问

docker network create -d bridge zabbix_net --subnet 172.20.1.0/24 --gateway 172.20.1.1

2. 运行mysql容器

 docker run --restart always -dit -p 3306:3306 --name zabbix-mysql \ --network zabbix_net -v /etc/localtime:/etc/localtime \ -v mysql-vol:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:5.7

创建数据库及授权

 docker exec -it zabbix-mysql /bin/bash mysql -uroot -p<password> 
mysql> create database zabbix character set utf8 collate utf8_bin; 
mysql> create user 'zabbix'@'localhost' identified by '<password>'; 
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; 
mysql> quit;

4. 运行zabbix-server-mysql后端

 docker run --restart always -dit -p 10051:10051 \ -v zabbix-server-vol:/etc/zabbix:ro -v /etc/localtime:/etc/localtime \ -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql \ --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" \ -e ZBX_CACHESIZE="128M" \ zabbix/zabbix-server-mysql:5.4-centos-latest

5. 运行zabbix前端

此处的以下内容与 运行mysql 镜像,创建mysql容器设置的内容要一致

 docker run --restart always -dit -p 8080:8080 -v /etc/localtime:/etc/localtime \ --name zabbix-web-nginx-mysql --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" \ -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:5.4-centos-latest

6. 启动 grafana (默认账号密码:adamin/admin)

 docker run --restart always -d --network zabbix_net --name=grafana2 -p 3000:3000 \ -v grafana-data:/var/lib/grafana grafana/grafana:8.4.4

7. grafana配置:

#安装 zabbix 插件

docker exec -it -u root grafana2 /bin/bash grafana-cli plugins install alexanderzobnin-zabbix-app #重启容器 docker restart grafana2

备注:

a).在grafana的插件中,出现 zabbix 说明 zabbix 插件安装成功,页面plugins-zabbix-config,点enable。

b). 在grafana的Data Sources中新增Zabbix数据源 .

数据源配置:type=Zabbix、url、Zabbix 的账号、Zabbix 的密码

url格式为:http://ip:8080/zabbix-web-nginx-mysql/api_jsonrpc.php

c). 在
https://grafana.com/dashboards 中提供很多第三方模版 , 使用 Dashboard Servers Linux 这个模版

复制模版id,于grafana中配置模版信息。

8. zabbix浏览

http://ip:8080,默认用户名密码:admin/zabbix

9. grafana浏览

http://ip:3000,默认用户名密码:admin/admin

10.大屏效果展示范例

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言