环境准备:一台server端,两台agent端

server端部署zabbix-server和mariadb服务

agent端部署zabbix-agent服务

 

一、docker容器里下载zabbix和mariadb

docker pull mariadb 

docker pull zabbix

[root@localhost cmp_mariadb]# docker pull mariadb
Using default tag: latest
latest: Pulling from library/mariadb
。。。
Digest: sha256:31cf9574e8e4043022e7f6260d77a08ab33bba1ab04a074ccaa077f3cf50b9e3
Status: Downloaded newer image for mariadb:latest

 

二、cd到/opt目录下,上传cmp_mariadb.zip  和  cmp_zabbix_server.zip压缩包,并分别解压

[root@localhost opt]# ls
cmp_mariadb  cmp_mariadb.zip  cmp_zabbix_server  cmp_zabbix_server.zip

 

三、进入cmp_mariadb的目录

[root@localhost cmp_mariadb]# ls
docker-compose.yml  mysqlconf  mysqllib  mysqllog

 

编辑一个docker-compose.yml的文件,并写入必要的信息

注意此文件名是不可变动的。

 

四、编辑此文件

[root@localhost cmp_mariadb]# cat docker-compose.yml 
mysql:
    image: mariadb:latest
    ports:
        - "3306:3306"            #端口映射
    volumes:                  #编辑宿主机与容器的数据卷映射
        - ./mysqllib:/var/lib/mysql
        - ./mysqlconf:/etc/mysql
        - ./mysqllog:/var/log/mysql
    environment:              #数据库的密码,库名等
        - MYSQL_USER=zabbix
        - MYSQL_DATABASE=zabbix
        - MYSQL_PASSWORD=zabbix
        - MYSQL_ROOT_PASSWORD=123321
        - LANG=en_US.utf8
        - TZ=Asia/Shanghai
    restart: always

 

五、同理进入cmp_zabbix_server目录

[root@localhost cmp_zabbix_server]# ls
docker-compose.yml  zabbixconfig  zabbix-scripts

 

六、编辑一个名为docker-compose.yml的文件,写入必要的脚本命令

 

[root@localhost cmp_zabbix_server]# cat docker-compose.yml
version: '3'
services:
zabbix-server:
container_name: zabbix-server        #容器名
image: zabbix/zabbix-server-mysql:latest    #建立容器的镜像
restart: always
network_mode: host              #建立容器的网络模式
# ports:
# - "10051:10051"
environment:
- DB_SERVER_HOST=192.168.253.9      #数据库地址
- MYSQL_USER=zabbix
- MYSQL_DATABASE=zabbix
- MYSQL_PASSWORD=zabbix
- DB_SERVER_ROOT_USER=root
- DB_SERVER_ROOT_PASS=123321
- TZ='Asia/Shanghai'
volumes:
- /etc/localtime:/etc/localtime:ro
- ./zabbix-scripts:/usr/lib/zabbix
- ./zabbixconfig:/etc/zabbix
zabbix-web-nginx:
image: zabbix/zabbix-web-nginx-mysql:latest
restart: always
network_mode: bridge
ports:              
- "8081:80"                #端口映射
- "8444:443"
environment:
- DB_SERVER_HOST=192.168.253.9
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=123321
- ZBX_SERVER_HOST=192.168.253.9
- PHP_TZ="Asia/Shanghai"
- TZ='Asia/Shanghai'
zabbix-agent:
image: zabbix/zabbix-agent:latest
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=127.0.0.1
- ZBX_SERVER_PORT=10051
- TZ='Asia/Shanghai'
network_mode: host
# ports:
# - "10050:10050"
restart: always
privileged: true
# links:
# - zabbix-server:zabbixhost

 

 

七、编辑完后,在各自目录下执行以下命令启动容器。

docker-compose up -d

  执行以下命令查看容器状态。

docker-compose ps

[root@localhost cmp_zabbix_server]# docker-compose up -d
[root@localhost cmp_zabbix_server]# docker-compose ps 
               Name                             Command                 State                         Ports                   
------------------------------------------------------------------------------------------------------------------------------
cmpzabbixserver_zabbix-agent_1       /sbin/tini -- /usr/bin/doc ...   up                                             
cmpzabbixserver_zabbix-web-nginx_1   docker-entrypoint.sh             Up           0.0.0.0:8444->443/tcp, 0.0.0.0:8081->80/tcp
zabbix-server                        /sbin/tini -- /usr/bin/doc ...   Up                                                      

 

八、再另外的节点部署zabbix-agent.

[root@compute opt]# ls
docker-compose.yml
[root@compute opt]# cat docker-compose.yml 
version: '3'
services:
  zabbix-agent:
    image: zabbix/zabbix-agent:latest
    container_name: zabbix-agent        #容器名
    environment:
      - ZBX_HOSTNAME=node2
- ZBX_SERVER_HOST=192.168.253.9        #server服务端ip
      - ZBX_SERVER_PORT=10051            #server服务的端口
      - TZ='Asia/Shanghai'
    network_mode: bridge
    ports:
      - "10050:10050"          #端口映射
    restart: always
    privileged: true

 

九、在此目录下执行以下命令启动容器。

docker-compose up -d

  执行以下命令查看容器状态。

docker-compose ps

[root@compute opt]# docker-compose ps
    Name                  Command               State            Ports          
--------------------------------------------------------------------------------
zabbix-agent   /sbin/tini -- /usr/bin/doc ...   Up      0.0.0.0:10050->10050/tcp

 

如果需要停止容易或者删除容器,执行以下命令

  docker-compose stop 容器名

  docker-comopse rm 容器名

 

十、到web页面输入ip地址:端口访问zabbix。

 然后把node1和node2节点主机添加进入。

如果报错:

 

 这是因为数据库版本导致,进入容器数据库更新版本到所需的3040000。

mysql> show databases;
mysql> use zabbix;
mysql> update dbversion set mandatory=3040000;
mysql> flush privileges;

 

然后输入登陆用户与密码。

 

posted on 2019-06-19 14:13  猪肉佬!  阅读(1512)  评论(0编辑  收藏  举报