Zabbix server,zabbix agent docker 容器化部署

1、环境介绍

目的:安装docker zabbix 监控环境

Docker版本:Docker version 1.13.1, build 0be3e21/1.13.1

系统版本:CentOS Linux release 7.9.2009 (Core)

一、环境准备

编辑配置文件选择国内的源

/etc/docker/daemon.json 

[root@localhost~]# cat /etc/docker/daemon.json

{

“registry-mirrors”: [“https://nsodgxr5.mirror.aliyuncs.com”]

}

systemctl restart docker

(1)安装服务

docker pull mysql:5.7

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

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

docker pull zabbix/zabbix-java-gateway:latest

docker pull zabbix/zabbix-agent:latest

(2)检查镜像

docker images

#保存下载镜像至本地(保存包适用于后续离线安装)示例:

              自定义包名             IMAGE ID

docker save -o zabbix_java_gateway.tar 3092947373a4

二、部署

1、创建docker 网络

docker network create -d bridge zabbix_net

2、运行mysql 镜像,创建mysql容器。

docker run -dit -p 3308:3306 –name zabbix_mysql –network zabbix_net –restart always -v /etc/localtime:/etc/localtime -e MYSQL_DATABASE=”zabbix” -e MYSQL_USER=”zabbix” -e MYSQL_PASSWORD=”zabbix1 23″ -e MYSQL_ROOT_PASSWORD=” Z12345678 ” mysql:5.7

#参数解释

MYSQL_DATABASE=”zabbix”                 在msql中创建的数据库的名

MYSQL_USER=”zabbix”              创建msql的登录账户名

MYSQL_PASSWORD=”zabbix123″      设置创建msql的登录账户的密码

MYSQL_ROOT_PASSWORD=” Z12345678 ”   设置msql数据库root 的密码

–network zabbix_net是将容器加入到zabbix_net网络中,

-v /etc/localtime:/etc/localtime是同步服务器和容器内部的时区,

–restart always设置自启动,

-e MYSQL_DATABASE=”zabbix”,创建环境变量。

–name zabbix-mysql,给容器命名。

#测试登录&检查zabbix 数据库创建

mysql -uroot -P3308 -h127.0.0.1 -pZ12345678

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:latest

(1)运行zabbix-server-mysql镜像,创建zabbix-server-mysql容器。

(2)创建数据卷。

docker volume create zabbix-server-volume

(3)启动zabbix-server-mysql容器。

    docker run  -dit -p 10051:10051 -v zabbix-server-volume:/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=” Z12345678 ” -e ZBX_JAVAGATEWAY=”zabbix-java-gateway” zabbix/zabbix-server-mysql:centos-latest

#参数说明

-v zabbix-server-volume:/etc/zabbix 提供持续化存储,即使容器重启文件也还在,此目录为zabbix server 服务配置文件目录

(4)运行zabbix-web-nginx-mysql镜像,创建zabbix-web-nginx-mysql容器。

   docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime –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=” Z12345678 ” -e ZBX_SERVER_HOST=”zabbix_server_mysql” zabbix/zabbix-web-nginx-mysql:latest

#参数说明

-e ZBX_SERVER_HOST=”zabbix_server_mysql” 为zabbix-server-mysql 容器名如果提现错误界面会出现告警zabbix服务端是否运行的告警

#地址:http://192.168.31.152:8080/zabbix.php

#密码登录 Admin/zabbix

三、解决zabbix server不在线问题

1、本机安装zabbix_agent (查找 zabbix_server_mysql 容器ip)

#创建存储

 docker volume create zabbix-agent-volume

docker run -dit –network zabbix_net –restart always –name zabbix_agent  -v zabbix-agent-volume:/etc/zabbix –link 172.19.0.4:zabbix-server  -e ZBX_HOSTNAME=”Zabbix server” -e ZBX_SERVER_PORT=”10051″ -e ZBX_SERVER_HOST=”172.19.0.4″ -p 10050:10050 -d zabbix/zabbix-agent:latest

2、修改模板名称

将 模板 Zabbix Server 修改成 Zabbix Server1

3、修改主机的IP

#找到本机安装zabbix_agent 容器IP

#界面zabbix server 主机的地址做修改

#重启 zabbix server

docker restart zabbix_server_mysql

四、异机安装zabbix  agent

1、直接容器化安装zabbix agent

#创建存储

 docker volume create zabbix-agent-volume

#创建容器

docker run -dit –restart always –name zabbix_agent -v zabbix-agent-volume:/etc/zabbix  -e ZBX_HOSTNAME=”zabbixagent01″ -e ZBX_SERVER_PORT=”10051″ -e ZBX_SERVER_HOST=”192.168.31.152″ -p 10050:10050 -d zabbix/zabbix-agent:latest

#参数说明

ZBX_HOSTNAME=”zabbixagent01″  自定义主机名web界面配置需要

ZBX_SERVER_HOST=”192.168.31.152″ zabbix server 宿主机ip地址

ZBX_SERVER_PORT=”10051″ zabbix agent 端口

-p 10050:10050  将本机端口10050映射至容器 10050 端口

#web界面添加主机 配置>主机>新建主机

2、关联模板(如果不关联监控模板,zbx 可用性图标会一直不亮)

五、处理图形界面字符乱码问题

1、查看图形字符乱码

2、找到相关docker服务 zabbix-web-nginx-mysql

#在Windows 系统中这个目录找到字体(示例:STLITI.TTF)

#存放字体文件目录

/usr/share/zabbix/assets/fonts

docker cp STLITI.TTF zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf

3、查看页面字体已经恢复正常

发表评论

电子邮件地址不会被公开。 必填项已用*标注