二、通过docker安装部署zabbix监控平台
zabbix的安装部署非常简单,官方提供了四种安装途径,分别是二进制rpm包安装方式、源码安装方式、容器安装方式和虚拟机镜像安装方式,根据学习方式和运维经验,这里推荐大家用docker容器安装zabbix-server、zabbix-web,而通过rpm包方式安装zabbix agent/agent2。
Zabbix web端是基于HTTP服务器和PHP脚本语言进行构建的,HTTP服务器可以是nginx或apache,zabbix的数据存储支持多种数据库,可以是MySQL、Oracle、PostgreSQL、SQLite等,这里我们选择MySQL数据库作为后端存储。
采用docker安装zabbix,需要下载多个镜像,分别是:Mysql镜像、zabbix-server镜像、Zabbix web镜像、zabbix-java-gateway镜像以及zabbix-agent镜像。这些镜像都可以从docker官方镜像站https://hub.docker.com/下载,分别对应的镜像名字为:
zabbix-server镜像:zabbix-server-mysql 地址:https://hub.docker.com/r/zabbix/zabbix-server-mysql
Zabbix web镜像: zabbix-web-nginx-mysql 地址:https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql
Zabbix agent镜像: zabbix-agent 地址:https://hub.docker.com/r/zabbix/zabbix-agent
Zabbix agent2镜像: zabbix-agent2 地址: https://hub.docker.com/r/zabbix/zabbix-agent2
MySQL镜像: mysql 地址: https://hub.docker.com/_/mysql
zabbix-java-gateway镜像: zabbix-java-gateway 地址:https://hub.docker.com/r/zabbix/zabbix-java-gateway
1、安装docker引擎
(1): 安装必要的一些系统工具
[root@dockerserver ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
(2): 添加软件源信息
[root@dockerserver ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3): 更新并安装 Docker-CE
[root@dockerserver ~]# yum makecache fast
[root@dockerserver ~]# yum -y install docker-ce
(4): 开启Docker服务
[root@dockerserver ~]# systemctl start docker
2、下载镜像
(1)、拉取mysql镜像
这里使用8.0版本,在linux终端拉取8.0.23镜像
docker pull mysql:8.0.23
(2)、下载zabbix-server镜像
zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。
打开zabbix-server-mysql的docker hub,大家会发现,zabbix-server-mysql有多个版本,可根据自己的环境选择合适版本。因为我的服务器是centos7版本,所以选择的是centos版本,zabbix版本我也选择最新版5.2.4,所以下载镜像方式如下:
docker pull zabbix/zabbix-server-mysql:centos-5.2.4
如果你要使用最新版本的zabbix-server镜像,也可以直接执行如下方式下载镜像:
docker pull zabbix/zabbix-server-mysql:centos-latest
(3)、下载Zabbix web镜像
这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。这里我用的是centos-5.2.4版本:
docker pull zabbix/zabbix-web-nginx-mysql:centos-5.2.4
要用最新版本,也可直接用latest版本
docker pull zabbix/zabbix-web-nginx-mysql:latest
(4)、下载zabbix-java-gateway镜像
Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。这里我们使用centos-5.2.4版本,在linux终端执行如下命令:
docker pull zabbix/zabbix-java-gateway:centos-5.2.4
3、运行镜像
(1)、创建docker网络
启动zabbix等镜像之前,需要先创建一个新的Docker网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。在终端使用下面命令创建。
docker network create -d bridge zabbix_net
创建后,可以查看是否创建成功。
docker network ls
(2)、 运行mysql镜像,创建mysql容器
docker run -itd -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/db:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:8.0.23 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin
3、运行镜像
(3)、运行zabbix-java-gateway镜像
创建zabbix-java-gateway容器,执行如下命令:
docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:centos-5.2.4
(4)、运行zabbix-server-mysql镜像
创建zabbix-server-mysql容器之前,首先创建数据卷zabbix-server-vol,通过命令
docker volume create zabbix-server-vol
接着,启动zabbix-server-mysql容器。
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --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_JAVAGATEWAY="zabbix-java-gateway" -e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAYPORT=10052 zabbix/zabbix-server-mysql:centos-5.2.4
(5)、 运行zabbix-web-nginx-mysql镜像
创建zabbix-web-nginx-mysql容器,可执行如下命令:
docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf --name zabbix-web-nginx-mysql --restart=always --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:centos-5.2.4
(6)、运行zabbix-agent镜像
本地agent的安装:
docker run -dit --name zabbix-agent -p 10050:10050 --network zabbix_net -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server-mysql" -e ZBX_SERVER_PORT=10051 zabbix/zabbix-agent:centos-5.2.4
zabbix-agent2:
docker run -dit --name zabbix-agent2 -p 10050:10050 -v /var/run/docker.sock:/var/run/docker.sock --network zabbix_net -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server-mysql" -e ZBX_SERVER_PORT=10051 --privileged zabbix/zabbix-agent2:latest
4、通过docker-compose一键安装zabbix
docker-compose是用来做docker的多容器控制,有了docker-compose,我们可以把所有繁琐的docker操作全都一条命令,自动化的完成。
通过编写一个docker-compose.yml文件,只需要写好后,运行一句:
docker-compose up -d
就可以完成zabbix的部署了。
要使用docker-compose,需要安装一个工具docker-compose,可直接从官方:https://github.com/docker/compose/releases 处下载编译好的二进制文件即可。
curl -L https://github.com/docker/compose/releases/download/1.28.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
vim docker-compose.yml
version: '3'
services:
zabbix-web-nginx-mysql:
images: zabbix/zabbix-web-nginx-mysql:centos-5.2.4
restart: always
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
- ZBX_SERVER_HOST=zabbix-server-mysql
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime
- /data2/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
networks
- zabbix_net
depends_on:
- zabbix-mysql
- zabbix-server-mysql
zabbix-mysql:
images: mysql:8.0.23
restart: always
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
command:
- mysqld
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_bin
volumes:
- /etc/localtime:/etc/localtime
- /dockerdata/zabbix/db:/var/lib/mysql
ports:
- 3306:330
networks
- zabbix_net
zabbix-java-gateway:
images: zabbix/zabbix-java-gateway:centos-5.2.4
restart: always
volumes:
- /etc/localtime:/etc/localtime
networks
- zabbix_net
zabbix-server-mysql:
images:zabbix/zabbix-server-mysql:centos-5.2.4
restart: always
volumes:
- zabbix-server-vol:/etc/zabbix
- /data2/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- /etc/localtime:/etc/localtime
ports:
- 10051:10051
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_ROOT_PASSWORD=root123
- MYSQL_PASSWORD=zabbix123
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAYPORT=10052
depends_on:
- zabbix-mysql
networks:
- zabbix_net
zabbix-agent2:
images: zabbix/zabbix-agent2:centos-5.2.4
restart: always
ports:
- 10050:10050
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=zabbix-server-mysq
- ZBX_SERVER_PORT=10051
networks:
- zabbix_net
networks
zabbix_net:
driver:bridge
volumes:
zabbix-server-vol:
本文来自博客园,作者:看啥,转载请注明原文链接:https://www.cnblogs.com/jykn92/p/15149299.html
原文地址:https://www.cnblogs.com/jykn92/p/15149299.html
- 中关村成为北京“高精尖”产业发展主阵地
- jquery-barcode:js实现的条码打印
- 页面json 格式化+颜色高亮
- Python 里 and、or 的计算规则
- Python中赋值、浅拷贝与深拷贝
- git 简易使用说明
- 开发篇-MySQL分区(一)
- Establishing SSL connection without server's identity verification is not recommended. According to
- Django-认证系统
- javascript:双链表-插入排序
- javascript:二叉搜索树 实现
- 自然语言处理 语言模型介绍
- 口水先擦干!从大数据看外卖如何拯救“忙”与“宅”
- javascript:巧用eval函数组装表单输入项为json对象
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Confluence 如何查看页面树
- 聊聊claudb的pubsub command
- Nginx证书和Tomcat证书能相互转化吗,请看这里
- 你真的理解 Webpack?请回答下列问题
- docker浅入深出3
- 绘图代码|多组学数据可视化的高端玩法
- Java单元测试——Mock技术配置
- 简单的场景分析LinearLayout 源码
- 避免栽坑之掌握Jenkins工作原理
- 如何检测JavaScript中的死循环?
- vue插槽2.6.0+
- 聊聊claudb的transaction command
- Lombok 的作者,成功讨伐 IntelliJ IDEA!
- springboot2之优雅处理返回值
- 通过NVM管理Node.js多版本