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