docker搭建zabbixx,保姆级安装教程

安装阿里的docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum makecache fast
安装系统需要的工具
yum install -y bind-utils net-tools wget unzip 
yum install -y yum-utils device-mapper-persistent-data lvm2

1、下载zabbix-server的镜像。
docker pull zabbix/zabbix-server-mysql:centos-latest

2. 下载Zabbix web镜像,这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。这里是用的是latest版本,在linux终端使用
docker pull zabbix/zabbix-web-nginx-mysql:latest

3. 下载zabbix-java-gateway镜像, Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。这里我们使用latest版本,在linux终端使用
docker pull zabbix/zabbix-java-gateway:latest


容器运行
4.  启动zabbix等镜像之前,需要先创建一个新的 Docker 网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。在终端使用下面命令创建。
docker network create -d bridge zabbix_net

5. 运行mysql 镜像,创建mysql容器。

docker run -dit -p 3306: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="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:5.7

说明:MYSQL_DATABASE="zabbix"                 在msql中创建的数据库的名

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

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

MYSQL_ROOT_PASSWORD="root123"   设置msql数据库root 的密码

其中-p 是将容器中的3306端口映射到服务器的3306端口,

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

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

--restart always设置自启动,

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

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

6. 运行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

7. 运行zabbix-server-mysql镜像,创建zabbix-server-mysql容器。此为zabbix主服务

首先创建数据卷zabbix-server-vol,通过命令

docker volume create zabbix-server-vol

启动zabbix-server-mysql容器。

此处的以下内容与 运行mysql 镜像,创建mysql容器设置的内容要一致

MYSQL_DATABASE="zabbix" 

MYSQL_USER="zabbix"

MYSQL_PASSWORD="zabbix123"

MYSQL_ROOT_PASSWORD="root123"

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  -e DB_SERVER_HOST="192.168.0.118"  -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_JAVAGATEWAY="zabbix-java-gateway"  zabbix/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" zabbix/zabbix-server-mysql


 --network zabbix_net

需要悉知各个配置
5. 运行zabbix-web-nginx-mysql镜像,创建zabbix-web-nginx-mysql容器。

此处的以下内容与 运行mysql 镜像,创建mysql容器设置的内容要一致

MYSQL_DATABASE="zabbix" 

MYSQL_USER="zabbix"

MYSQL_PASSWORD="zabbix123"

MYSQL_ROOT_PASSWORD="root123"

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="root123" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:latest

zabbix所需容器已经全部启动


6. 在浏览器中输入http://192.168.0.118:8080/zabbix/,打开zabbix首页,其中用户名密码分别是admin/zabbix。

出现下面页面,zabbix搭建成功。是不是比自己创建数据库,搭建zabbix-server简单很多。

2.docker-compose

        1.创建挂载文件

        

          mkdir -p /data/docker/mysql-data

          mkdir -p /data/docker/zabbix

    2.compose.yml文件

               

version: '3'
services: 
 
  zabbix_mysql:
    container_name: "zabbix_mysql"
    restart: "always"
    image: mariadb
    ports:
      - "3306:3306"
    volumes:
      - /data/docker/mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "mysqlpss123"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "mysqlpss123"
      MYSQL_DATABASE: "zabbix"
 
  zabbix_server:
    container_name: "zabbix_server"
    restart: "always"
    image: zabbix/zabbix-server-mysql
    ports:
      - "10051:10051"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /data/docker/zabbix:/usr/lib/zabbix
    depends_on:
      - zabbix_mysql
    links:
      - zabbix_mysql:mysql
    environment:
      DB_SERVER_HOST: "mysql"
      MYSQL_USER: "zabbix"
      MYSQL_DATABASE: "zabbix"
      MYSQL_PASSWORD: "mysqlpss123"
 
  zabbix_nginx_web:
    container_name: "zabbix_nginx_web"
    restart: "always"
    image: zabbix/zabbix-web-nginx-mysql
    ports:
      - "8443:443"
      - "80:8080"
    depends_on:
      - zabbix_mysql
      - zabbix_server
    links:
      - zabbix_mysql:mysql
      - zabbix_server:zabbix_server
    environment:
      DB_SERVER_HOST: "mysql"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "mysqlpss123"
      MYSQL_DATABASE: "zabbix"
      ZBX_SERVER_HOST: "zabbix_server"
      PHP_TZ: "Asia/Shanghai"
  zabbix-agent-a:
    image: zabbix/zabbix-agent
    links: 
      - zabbix_server:zabbix_server
    container_name: zabbix-agent-a
    restart: always
    depends_on:
      - zabbix_server
    environment:
      - ZBX_HOSTNAME=zabbix-agent-a  
      - ZBX_SERVER_HOST=zabbix_server 

你可能感兴趣的:(docker,容器,运维)