利用Dock快速部署zabbix

OS
RHEL 7.3
Docker版本
18.09
Zabbix版本
4.0

一、安装docker

1、以rpm包方式安装docker

下载rpm包并使用yum localinstall安装,以18.09为例,需安装以下rpm包

containerd.io-1.2.5-3.1.el7.x86_64.rpm 
docker-ce-18.09.6-3.el7.x86_64.rpm 
docker-ce-cli-18.09.6-3.el7.x86_64.rpm

下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages

2、YUM方式安装docker(参考https://cloud.tencent.com/developer/labs/lab/10054

a、首先安装 Docker 必要依赖包 :

yum install -y yum-utils device-mapper-persistent-data lvm2

b、由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

c、用 yum 安装 Docker:

yum install -y docker-ce
 

二、镜像下载、导出、导入

国内连接docker.io速度不稳定,用稳定的方式获取镜像再导入本地比较稳妥。

镜像拉取

docker pull zabbix/zabbix-java-gateway:alpine-4.0-latest
docker pull zabbix/zabbix-server-mysql:alpine-4.0-latest
docker pull zabbix/zabbix-web-nginx-mysql:alpine-4.0-latest

镜像导出

docker save  docker.io/zabbix/zabbix-java-gateway:alpine-4.0-latest -o /tmp/zabbix-java-gateway-4.0.tar
docker save  docker.io/zabbix/zabbix-server-mysql:alpine-4.0-latest -o /tmp/zabbix-server-4.0.tar
docker save  docker.io/zabbix/zabbix-web-nginx-mysql:alpine-4.0-latest -o /tmp/zabbix-web-4.0.tar

镜像导入

docker load -i zabbix-java-gateway-4.0.tar
docker load -i zabbix-server-4.0.tar
docker load -i zabbix-web-4.0.tar

三、容器安装及运行

1、安装mysql

##先创建持久化存储目录
mkdir -p /data/mysql/date
##部署mysql容器
docker run --name mysql -v /data/mysql/date:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -v /etc/localtime:/etc/localtime:ro -p 3306:3306
-d mysql:latest

2、如需接入jmx监控,要先安装zabbix-java-gateway

docker run --name zabbix-java-gateway 
    -p 10052:10052 
    -v /etc/localtime:/etc/localtime:ro 
    -d zabbix/zabbix-java-gateway:alpine-4.0-latest

3、再运行zabbix-server

docker run --name zabbix-server -t 
      -e DB_SERVER_HOST="mysql_ip" 
      -e MYSQL_DATABASE="zabbix" 
      -e MYSQL_USER="root" 
      -e MYSQL_PASSWORD="password" 
      -e MYSQL_ROOT_PASSWORD="password" 
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" 
      -e ZBX_DEBUGLEVEL="3" 
      -e ZBX_JAVAGATEWAY_ENABLE="true" 
      -v /etc/localtime:/etc/localtime:ro 
      -p 10051:10051 
      --link zabbix-java-gateway 
      -d zabbix/zabbix-server-mysql:alpine-4.0-latest

4、最后运行zabbix-web

docker run --name zabbix-web -t 
      -e DB_SERVER_HOST="mysql_ip" 
      -e MYSQL_DATABASE="zabbix" 
      -e MYSQL_USER="root" 
      -e MYSQL_PASSWORD="password" 
      -e MYSQL_ROOT_PASSWORD="password" 
      -e PHP_TZ="Asia/Shanghai" 
      -v /etc/localtime:/etc/localtime:ro 
      --link zabbix-server 
      -p 80:80 
      -d zabbix/zabbix-web-nginx-mysql:alpine-4.0-latest 
PHP_TZ务必设置,因为在容器里面更改的时区是无效的,无论是改了php.ini的date.timezone,还是改nginx的autoindex_localtime为on都没用

四、验证
访问宿主机80端口即可访问zabbix
初始账号:Admin
初始密码:zabbix

五、zabbix-agent配置
#zabbix服务端IP(必改)
Server=192.168.1.1 
#客户端监听地址(默认10050)
ListenPort=10050
#主动获取模式zabbix服务端IP
ServerActive=192.168.1.1
#客户端所在主机名称,必须与web中配置的名称(Name)一致(必改)
Hostname=agent-name 

                                     
原文地址:https://www.cnblogs.com/victorfrost/p/11378250.html